r20517: re-add cleaned-up webapps
authorDerrell Lipman <derrell@samba.org>
Wed, 3 Jan 2007 20:17:37 +0000 (20:17 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:36:09 +0000 (14:36 -0500)
(This used to be commit 5a3d6ad0b7cf0ecf8b57b4088b19f7d4291c990b)

2573 files changed:
webapps/images/core/alpha.gif [new file with mode: 0644]
webapps/images/core/blank.gif [new file with mode: 0644]
webapps/images/core/brightness.jpg [new file with mode: 0644]
webapps/images/core/brightnesshandle.gif [new file with mode: 0644]
webapps/images/core/dotted.gif [new file with mode: 0644]
webapps/images/core/huesaturation.jpg [new file with mode: 0644]
webapps/images/core/huesaturationhandle.gif [new file with mode: 0644]
webapps/images/favicon.ico [new file with mode: 0644]
webapps/images/linkpad.gif [new file with mode: 0644]
webapps/images/logo.png [new file with mode: 0644]
webapps/images/stripes.png [new file with mode: 0644]
webapps/index.esp [new file with mode: 0644]
webapps/install/index.esp [new file with mode: 0644]
webapps/install/newuser.esp [new file with mode: 0644]
webapps/install/provision.esp [new file with mode: 0644]
webapps/install/samba3.esp [new file with mode: 0644]
webapps/install/vampire.esp [new file with mode: 0644]
webapps/login.esp [new file with mode: 0644]
webapps/logout.esp [new file with mode: 0644]
webapps/menu.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/AUTHORS [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/LICENSE [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/README [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/RELEASENOTES [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/TODO [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/Makefile [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/api/Makefile [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/class/api/ClassViewer.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/class/api/InfoViewer.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/class/api/TreeUtil.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/class/api/Viewer.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/index.html [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/css/apiviewer.css [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_abstract18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_abstract_warning18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_static18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_static_warning18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_warning18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/close.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/constant18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/constructor18.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/event18.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/method_protected18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/method_public18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/nextlevel.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/open.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_abstract18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_constructor18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_error18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_inherited18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_overridden18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_static18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_warning18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/package18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/package_warning18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/property18.gif [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/Makefile [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/at-a-glance/AtAGlance.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/at-a-glance/index.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Atom_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Atom_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Atom_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ButtonView_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ButtonView_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Button_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/CheckBox_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ColorPopup_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ColorSelector_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ColorSelector_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ComboBoxEx_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ComboBox_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Command_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Command_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/DateChooser_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Drag_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fields_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Flash_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1/fsm.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1/gui.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1/main.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/GalleryList_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Gallery_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/GroupBox_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/GroupBox_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/GroupBox_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Iframe_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Inline_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ListView_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ListView_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ListView_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ListView_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/List_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Menu_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/NativeWindow_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/RadioButton_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/RepeatButton_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Resizer_1.html [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/RpcTreeFullControl_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Spinner_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/SplitPane_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/SplitPane_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TabView_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TabView_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Table_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Table_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ToolBar_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ToolBar_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ToolBar_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ToolBar_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ToolTip_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TreeFullControl_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TreeFullControl_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TreeFullControl_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TreeFullControl_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Tree_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Window_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file1.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file10.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file2.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file3.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file4.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file5.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file6.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file7.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file8.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file9.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/fo_tester.fla [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/fo_tester.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/index.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ArrayCreate_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ArrayCreate_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/GlobalObject_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/GlobalObject_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/GlobalObject_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/GlobalObject_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/LocalObject_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/LocalObject_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/LocalObject_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/LocalObject_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/LocalObject_5.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/NumberCreate_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectCreate_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectCreate_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectLevel_1.html [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectLevel_2.html [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectLevel_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectSize_1.html [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/Qooxdoo_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/StringConcat_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/StringConcat_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/StringConcat_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/TypeCheck_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/index.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/showcase/Showcase_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/showcase/index.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_5.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_6.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_7.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_8.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_9.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Border_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/BoxLayout_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/BoxLayout_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_2.xml [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_3.xml [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Button_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CSS_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CanvasLayout_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CanvasLayout_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CanvasLayout_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CanvasLayout_5.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Clipping_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Clone_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Clone_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ColorTheme_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ColorTheme_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ColorTheme_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ComboBox_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ComboBox_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ComboBox_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ComboBox_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Compile_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Compile_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Compile_2.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CookieStorage_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CookieStorage_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Cookie_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CrossBrowser_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CrossBrowser_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_5.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_6.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DragAndDropManager_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DragAndDropManager_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/EnabledDisabled_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FieldSet_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Fields_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FlowLayout_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FlowLayout_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FlowLayout_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FocusManager_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Font_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FormUtils_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Gallery_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Gallery_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Generate_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_10.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_11.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_5.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_6.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_7.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_8.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_9.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/HorizontalBoxLayout_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/HorizontalBoxLayout_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/HorizontalBoxLayout_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/HtmlTable_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/HtmlTable_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/IconHtml_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Image_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Image_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Image_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Image_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Keyhandler_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Label_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Label_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Label_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Label_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Leak_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Link_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_10.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_5.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_6.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_7.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_8.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_9.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/List_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/List_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/List_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Menu_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Menu_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Node_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Pollution_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Popups_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Popups_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/RPC_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/RPC_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/RPC_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/RPC_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/RPC_5.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/SplitPane_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Table_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Table_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Table_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Table_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Table_5.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ToolBar_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ToolBar_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ToolBar_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ToolBar_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_5.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_6.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_5.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_6.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_7.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Umlauts_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/VerticalBoxLayout_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/VerticalBoxLayout_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/VerticalBoxLayout_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_1.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_2.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_3.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_4.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_5.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_6.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/bigFont.css [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/boldFont.css [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/cssQuery-p.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/filesize/4000kb.xml [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/filesize/400kb.xml [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/filesize/40kb.xml [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/anita.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/anita.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/anita.txt [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/anita.xml [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/harald.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/harald.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/harald.txt [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/harald.xml [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/lisbeth.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/lisbeth.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/lisbeth.txt [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/lisbeth.xml [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/paul.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/paul.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/paul.txt [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/paul.xml [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file1.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file10.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file2.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file3.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file4.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file5.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file6.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file7.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file8.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file9.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/fo_tester.fla [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/fo_tester.swf [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/grid_dialog_box.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/index.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/index.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/resource/css/layout.css [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/resource/css/layout_ie.css [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/tool/layout.js.in [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/demo/tool/layout.sh [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/Makefile [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/OO.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/Settings.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/Builder.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/Command.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/History.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/NativeWindow.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/Timer.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/AbstractApplication.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/AbstractComponent.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/DummyApplication.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/init/AbstractInitComponent.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/init/BasicInitComponent.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/init/InterfaceInitComponent.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Init.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Object.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Target.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Version.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/Pollution.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/TimeTracker.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/AlertAppender.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/Appender.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/DefaultFilter.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/DivAppender.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/Filter.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/FireBugAppender.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/ForwardAppender.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/LogEventProcessor.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/Logger.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/RingBufferAppender.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/WindowAppender.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Dimension.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Element.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/ElementFromPoint.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/EventRegistration.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Iframe.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Location.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Node.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Offset.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Scroll.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/ScrollIntoView.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Style.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/StyleSheet.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Window.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/DragAndDropHandler.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/EventHandler.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/FocusHandler.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/KeyEventHandler.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/DataEvent.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/DomEvent.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/DragEvent.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/Event.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/FocusEvent.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/KeyEvent.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/MouseEvent.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/Json.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/image/Preloader.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/image/PreloaderSystem.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/local/CookieApi.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/local/CookieTransport.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/AbstractRemoteTransport.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Exchange.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/IframeTransport.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Request.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/RequestQueue.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Response.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Rpc.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/ScriptTransport.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/XmlHttpTransport.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Array.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Core.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Generics.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/MshtmlEmu.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Number.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Object.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Prototypes.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/String.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/XmlEmu.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/AliasManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/AppearanceManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ColorManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/IframeManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ImageManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ImagePreloaderManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/MenuManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ObjectManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/PopupManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ToolTipManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/WindowManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/DomSelectionManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/RadioManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/SelectionManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/TreeFullControlSelectionManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/TreeSelectionManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/VirtualSelectionManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/net/Http.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/net/Protocol.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/Border.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/BorderCache.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/BorderObject.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/BorderPresets.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/color/Color.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/color/ColorCache.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/color/ColorObject.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/font/Font.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/font/FontCache.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/font/FontObject.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/CanvasLayoutImpl.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/DockLayoutImpl.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/FlowLayoutImpl.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/GridLayoutImpl.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/HorizontalBoxLayoutImpl.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/LayoutImpl.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuButtonLayoutImpl.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuLayoutImpl.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/VerticalBoxLayoutImpl.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/AppearanceTheme.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/ColorTheme.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/IconTheme.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/WidgetTheme.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/sys/Client.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/appearance/Classic.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/System.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsClassic.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaBlue.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaGreen.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaSilver.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsRoyale.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/icon/CrystalSvg.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/icon/Nuvola.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/widget/Windows.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Range.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Selection.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/StringBuilder.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Version.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Atom.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/HorizontalSpacer.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Image.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Inline.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Label.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Terminator.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/VerticalSpacer.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/component/ColorPopup.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/component/ColorSelector.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/component/DateChooser.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/ClientDocument.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/ClientDocumentBlocker.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/Parent.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/ScrollBar.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/Widget.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/Flash.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/Gallery.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/GalleryList.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/HtmlEmbed.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/IconHtmlEmbed.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/Iframe.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/LinkEmbed.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/NodeEmbed.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/TextEmbed.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/Button.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/ComboBox.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/InputCheckSymbol.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/List.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/ListItem.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/PasswordField.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/RadioButton.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/RepeatButton.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/Spinner.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/TextArea.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/TextField.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/groupbox/CheckGroupBox.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/groupbox/GroupBox.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/groupbox/RadioGroupBox.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/BoxLayout.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/CanvasLayout.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/DockLayout.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/FlowLayout.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/GridLayout.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/HorizontalBoxLayout.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/VerticalBoxLayout.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellHtml.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellIconHtml.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellImage.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellLink.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellText.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/Header.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/HeaderCell.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/HeaderSeparator.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ListView.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ListViewPane.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Button.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/CheckBox.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Layout.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Menu.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/RadioButton.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Separator.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menubar/Button.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menubar/MenuBar.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractBar.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractButton.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPage.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPageView.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPane.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Bar.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Button.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/ButtonView.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Page.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Pane.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Bar.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Button.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Page.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Pane.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/TabView.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/popup/Popup.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/popup/PopupAtom.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/popup/ToolTip.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/resizer/Resizer.js [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/splitpane/HorizontalSplitPane.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/splitpane/SplitPane.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/splitpane/VerticalSplitPane.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/AbstractDataCellRenderer.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/AbstractTableModel.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/BooleanDataCellRenderer.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/CellEditorFactory.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/CheckBoxCellEditorFactory.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DataCellRenderer.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DataRowRenderer.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DefaultDataCellRenderer.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DefaultDataRowRenderer.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DefaultHeaderCellRenderer.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/HeaderCellRenderer.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/IconDataCellRenderer.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/IconHeaderCellRenderer.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/RemoteTableModel.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/SelectionManager.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/SelectionModel.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/SimpleTableModel.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/Table.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TableColumnModel.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TableModel.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePane.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePaneHeader.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePaneModel.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePaneScroller.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TextFieldCellEditorFactory.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/Button.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/CheckBox.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/MenuButton.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/Part.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/PartHandle.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/RadioButton.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/Separator.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/ToolBar.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/AbstractTreeElement.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/Tree.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/TreeFile.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/TreeFolder.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/AbstractTreeElement.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/Tree.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeFile.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeFolder.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeRowStructure.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/window/Window.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/ColorUtil.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Compare.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/FormUtil.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Normalization.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Return.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Textile.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Validation.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/format/DateFormat.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/format/Format.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/format/NumberFormat.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/fsm/FiniteStateMachine.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/fsm/State.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/fsm/Transition.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/fsm/example.txt [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/xml/Core.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/xml/Namespace.js [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/README [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/3d.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/adobe-reader.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/antivirus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/babelfish.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/back.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/background.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/bell.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/bitmapgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/block-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/bug.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/cache.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/camera.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/cdrom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/char-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/chart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/clock.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/colors.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/control-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/core.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/date.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/desktop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/dictionary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/display.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/down.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/email.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/encrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/energy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/error.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/exec.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/favourite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/file-print.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/floppy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/flowchart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-favorite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-locked.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/fonts.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/forward.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/graphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/harddrive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/hardware-info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/help-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/home.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/joystick.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/keyboard-layout.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/locale.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/look-and-feel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mac.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-archive.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-binary.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-calendar.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-card.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-document.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-html.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-image.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-manual.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-multimedia.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-pdf.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-quicktime.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-rpm.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-script.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-shellscript.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-sourcecode.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-spreadsheet.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-text.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-video.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/modem.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mouse.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/movieplayer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mycomputer.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/netscape.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/network.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/notes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/organizer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/paint.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/partitions.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/password.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/pda.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/penguin.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/presentation.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/printer.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/reload.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/scanner.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/services.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/settings.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/tablet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/terminal.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/toys.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/trashcan-empty.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/trashcan-full.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/tux.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/tv.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/up.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/user.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/utilities.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/vectorgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/wordprocessor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/3d.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/accessibility.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/adobe-reader.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/alarm.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/antivirus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/appearance.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/applications.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/apply.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/appointment.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/attach.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/babelfish.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/back.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/background.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bell.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bitmapgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/block-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark-add.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark-folder.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark-toolbar.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bug.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/button-cancel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/button-ok.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cache.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/calculator.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cam.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/camera.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cancel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cdrom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/char-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/chart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/clipboard.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/clock.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/color-fill.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/color-line.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/colors.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/comment.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/configure.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/connect-creating.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/connect-established.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/connect-no.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/contents.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/context-help.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/control-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cookie.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/core.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/database.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/date.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/decrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table-cell.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table-col.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table-row.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/desktop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/devices.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/dictionary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/display.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/documentinfo.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/down.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-copy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-cut.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-delete.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-paste.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/editor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/email.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/emoticon.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/encrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/energy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/error.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/exec.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/exit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/favorites.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/favourite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-find.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-manager.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-new.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-print.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-save-as.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-save.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/fileshare.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/find.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/flag.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/floppy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/flowchart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-favorite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-locked.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/font-size-down.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/font-size-up.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/fonts.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/format-decrease-indent.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/format-increase-indent.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/forward.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/funct.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/games.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/goto.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/graphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/group-event.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/harddrive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/hardware-info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/hardware.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/help-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/help.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/history-clear.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/history.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/home.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/icons.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/iconthemes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/idea.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/inbox.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/insert-table-col.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/insert-table-row.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/insert-table.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/instant-available.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/instant-away.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/joystick.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/keyboard-layout.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/launch.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/locale.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/look-and-feel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mac.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/magnifier.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-delete.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-find.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-forward.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-get.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-new.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-reply-all.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-reply.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-send.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/memory.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-archive.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-binary.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-calendar.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-card.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-color.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-document.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-html.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-image.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-manual.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-multimedia.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-pdf.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-quicktime.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-rpm.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-script.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-shellscript.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-sourcecode.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-spreadsheet.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-text.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-video.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/misc.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mixer.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/modem.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mouse.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mousecursor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/movieplayer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mycomputer.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/netscape.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/network.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/no.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/notes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/notify.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/ok.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/opera.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/organizer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/outbox.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/paint.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/partitions.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/password.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/pda.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/penguin.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/pipe.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/presentation.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/printer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/queue.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/redo.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/reload.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/remove-comment.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/rotate.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/run.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/scanner.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/search.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/server.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/services.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/settings.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/signature.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/sound.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/spellcheck.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/stop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/style.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/system.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-duplicate.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-new-raised.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-new.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-remove.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tablet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/terminal.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-bottom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-color.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-strike.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-sub.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-super.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-top.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/themes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/toys.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/trash.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/trashcan-empty.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/trashcan-full.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tux.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tv.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/undo.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/up.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/user.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/utilities.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/vectorgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-bottom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-choose.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-detailed.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-icon.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-left-right.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-multicolumn.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-remove.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-right.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-sidetree.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-text.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-top-bottom.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-tree.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-fit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-minus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-original.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-plus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/wizard.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/wordprocessor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/adobe-reader.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/alarm.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/antivirus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/appearance.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/appointment.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/attach.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/babelfish.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/back.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/background.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bell.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bitmapgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/block-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bookmark-add.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bookmark.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/button-cancel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/button-ok.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/cache.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/camera.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/cancel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/cdrom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/char-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/clock.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/color-fill.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/color-line.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/colors.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/configure.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/connect-creating.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/connect-established.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/connect-no.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/contents.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/control-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/core.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/date.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/decrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/delete-table-col.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/delete-table-row.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/desktop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/dictionary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/display.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/down.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-copy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-cut.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-delete.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-paste.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/effect.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/email.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/encrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/energy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/error.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/exec.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/exit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/favourite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-find.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-new.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-print.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-save-as.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-save.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/find.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/floppy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/flowchart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-favorite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-locked.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/font-size-down.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/font-size-up.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/fonts.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/format-decrease-indent.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/format-increase-indent.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/forward.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/funct.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/graphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/harddrive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/hardware-info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/help-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/help.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/history.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/home.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/idea.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/inbox.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/insert-table-col.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/insert-table-row.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/instant-available.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/instant-away.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/joystick.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/keyboard-layout.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/launch.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/locale.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/look-and-feel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mac.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-delete.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-find.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-forward.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-get.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-new.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-reply-all.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-reply.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-send.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-archive.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-binary.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-calendar.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-card.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-document.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-html.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-image.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-manual.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-multimedia.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-pdf.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-quicktime.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-rpm.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-script.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-shellscript.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-sourcecode.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-spreadsheet.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-text.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-video.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/misc.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/modem.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mouse.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/movieplayer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mycomputer.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/netscape.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/network.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/ok.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/outbox.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/paint.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/partitions.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/password.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/pda.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/penguin.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/printer.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/queue.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/redo.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/reload.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/run.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/scanner.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/search.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/server.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/services.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/settings.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/signature.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/spellcheck.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/stop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/tablet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/terminal.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/text-strike.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/toys.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/trashcan-empty.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/trashcan-full.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/tux.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/tv.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/undo.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/up.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/user.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/utilities.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/vectorgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-bottom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-choose.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-detailed.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-icon.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-left-right.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-multicolumn.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-remove.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-right.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-sidetree.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-text.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-top-bottom.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-tree.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-fit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-minus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-original.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-plus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/wizard.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/3d.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/accessibility.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/adobe-reader.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/alarm.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/antivirus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/appearance.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/applications.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/appointment.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/attach.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/babelfish.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/back.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/background.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bell.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bitmapgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/block-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bookmark-add.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bookmark.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bug.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/button-cancel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/button-ok.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cache.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/calculator.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cam.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/camera.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cdrom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/char-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/chart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/clipboard.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/clock.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/colors.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/configure.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/connect-creating.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/connect-established.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/connect-no.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/contents.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/control-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cookie.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/core.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/date.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/decrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/delete-table-col.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/delete-table-row.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/desktop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/devices.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/dictionary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/display.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/down.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-copy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-cut.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-delete.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-paste.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/editor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/email.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/encrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/energy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/error.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/exec.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/exit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/favorites.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/favourite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-find.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-manager.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-new.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-print.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-save-as.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-save.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/fileshare.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/find.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/floppy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/flowchart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-favorite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-locked.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/fonts.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/forward.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/funct.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/games.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/goto.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/graphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/harddrive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/hardware-info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/hardware.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/help-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/help.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/home.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/icons.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/iconthemes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/inbox.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/insert-table-col.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/insert-table-row.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/instant-available.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/instant-away.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/joystick.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/keyboard-layout.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/launch.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/locale.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/look-and-feel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mac.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/magnifier.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-delete.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-find.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-get.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-new.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-send.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/memory.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-archive.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-binary.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-calendar.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-card.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-document.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-html.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-image.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-manual.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-multimedia.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-pdf.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-quicktime.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-rpm.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-script.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-shellscript.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-sourcecode.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-spreadsheet.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-text.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-video.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/misc.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mixer.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/modem.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mouse.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/movieplayer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mycomputer.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/netscape.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/network.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/notes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/notify.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/opera.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/organizer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/outbox.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/paint.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/partitions.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/password.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/pda.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/penguin.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/pipe.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/presentation.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/printer.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/queue.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/redo.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/reload.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/run.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/scanner.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/search.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/server.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/services.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/settings.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/sound.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/stop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/style.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/system.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/tablet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/terminal.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/themes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/toys.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/trashcan-empty.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/trashcan-full.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/tux.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/tv.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/undo.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/up.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/user.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/utilities.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/vectorgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-bottom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-choose.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-detailed.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-icon.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-left-right.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-multicolumn.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-remove.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-right.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-sidetree.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-text.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-top-bottom.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-tree.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-fit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-minus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-original.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-plus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/wordprocessor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/3d.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/accessibility.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/adobe-reader.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/alarm.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/antivirus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/applications.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/babelfish.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/back.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/background.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/bell.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/bitmapgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/block-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/bug.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/cache.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/calculator.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/camera.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/cdrom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/char-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/chart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/clipboard.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/clock.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/colors.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/control-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/core.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/date.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/desktop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/devices.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/dictionary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/display.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/down.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/editor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/email.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/encrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/energy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/error.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/exec.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/favorites.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/favourite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/file-manager.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/file-print.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/fileshare.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/floppy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/flowchart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-favorite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-locked.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/fonts.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/forward.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/games.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/graphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/harddrive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/hardware-info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/hardware.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/help-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/home.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/icons.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/iconthemes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/inbox.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/instant-available.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/instant-away.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/joystick.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/keyboard-layout.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/locale.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/look-and-feel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mac.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/magnifier.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/memory.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-archive.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-binary.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-calendar.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-card.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-document.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-html.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-image.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-manual.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-multimedia.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-pdf.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-quicktime.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-rpm.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-script.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-shellscript.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-sourcecode.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-spreadsheet.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-text.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-video.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mixer.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/modem.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mouse.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/movieplayer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mycomputer.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/netscape.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/network.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/notes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/notify.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/opera.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/organizer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/outbox.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/paint.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/partitions.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/password.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/pda.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/penguin.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/pipe.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/presentation.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/printer.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/reload.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/scanner.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/server.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/services.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/settings.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/style.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/system.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/tablet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/terminal.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/themes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/toys.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/trashcan-empty.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/trashcan-full.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/tux.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/tv.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/up.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/user.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/utilities.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/vectorgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/wordprocessor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/3d.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/adobe-reader.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/antivirus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/applications.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/babelfish.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/back.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/background.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/bell.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/bitmapgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/block-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/bug.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/cache.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/calculator.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/camera.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/cdrom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/char-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/chart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/clipboard.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/clock.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/colors.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/control-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/core.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/date.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/desktop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/devices.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/dictionary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/display.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/down.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/editor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/email.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/encrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/energy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/error.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/exec.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/favourite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/file-manager.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/file-print.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/fileshare.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/floppy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/flowchart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-favorite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-locked.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/fonts.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/forward.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/games.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/graphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/harddrive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/hardware-info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/hardware.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/help-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/home.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/icons.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/joystick.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/keyboard-layout.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/locale.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/look-and-feel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mac.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/magnifier.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/memory.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-archive.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-binary.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-calendar.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-card.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-document.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-html.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-image.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-manual.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-multimedia.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-pdf.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-quicktime.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-rpm.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-script.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-shellscript.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-sourcecode.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-spreadsheet.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-text.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-video.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mixer.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/modem.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mouse.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/movieplayer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mycomputer.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/netscape.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/network.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/notes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/notify.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/organizer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/paint.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/partitions.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/password.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/pda.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/penguin.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/pipe.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/presentation.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/printer.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/reload.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/scanner.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/services.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/settings.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/style.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/system.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/tablet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/terminal.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/themes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/toys.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/trashcan-empty.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/trashcan-full.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/tux.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/tv.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/up.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/user.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/utilities.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/vectorgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/wordprocessor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/adobe-reader.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/background.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/bell.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/bitmapgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/bug.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/cache.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/camera.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/cdrom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/char-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/chart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/clock.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/colors.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/control-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/core.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/date.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/desktop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/dictionary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/display.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/email.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/encrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/energy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/error.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/exec.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/floppy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/flowchart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-favorite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-locked.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/fonts.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/graphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/harddrive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/hardware-info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/help-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/joystick.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/keyboard-layout.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/locale.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/look-and-feel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-archive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-binary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-calendar.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-card.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-document.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-html.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-image.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-manual.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-pdf.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-quicktime.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-rpm.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-script.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-shellscript.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-sourcecode.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-spreadsheet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-text.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-video.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/modem.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mouse.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/movieplayer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mycomputer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/netscape.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/network.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/notes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/organizer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/paint.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/partitions.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/password.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/pda.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/presentation.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/printer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/scanner.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/services.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/settings.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/tablet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/terminal.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/toys.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/trashcan-empty.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/trashcan-full.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/tv.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/user.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/utilities.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/wordprocessor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/accessibility.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/adobe-reader.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/alarm.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/applications.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/apply.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/attach.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/back.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/background.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bell.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bitmapgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark-add.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark-folder.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark-toolbar.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bug.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/button-cancel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/button-ok.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cache.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/calculator.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/camera.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cancel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cdrom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/char-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/chart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/clipboard.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/clock.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/color-fill.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/color-line.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/colors.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/configure.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/connect-creating.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/connect-established.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/connect-no.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/control-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cookie.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/core.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/date.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/decrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/desktop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/devices.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/dictionary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/display.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/down.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-copy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-cut.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-delete.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-paste.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/editor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/email.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/encrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/energy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/error.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/exec.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/exit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-manager.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-new.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-print.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-save-as.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-save.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/find.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/floppy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/flowchart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-favorite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-locked.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/fonts.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/forward.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/games.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/graphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/harddrive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/hardware-info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/help-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/help.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/history-clear.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/history.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/home.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/icons.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/iconthemes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/joystick.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/keyboard-layout.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/locale.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/look-and-feel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/magnifier.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-delete.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-find.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-forward.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-get.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-new.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-reply-all.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-reply.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-send.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/memory.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-archive.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-binary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-calendar.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-card.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-color.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-document.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-html.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-image.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-manual.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-pdf.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-quicktime.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-rpm.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-script.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-shellscript.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-sourcecode.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-spreadsheet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-text.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-video.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/misc.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mixer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/modem.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mouse.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/movieplayer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mycomputer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/netscape.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/network.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/no.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/notes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/notify.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/ok.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/opera.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/organizer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/paint.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/partitions.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/password.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/pda.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/pipe.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/presentation.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/printer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/queue.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/redo.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/reload.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/rotate.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/run.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/scanner.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/services.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/settings.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/signature.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/spellcheck.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/stop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/style.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/system.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-duplicate.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-new-raised.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-new.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-remove.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tablet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/terminal.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/themes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/toys.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/trashcan-empty.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/trashcan-full.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tv.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/undo.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/up.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/user.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/utilities.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-bottom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-choose.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-detailed.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-icon.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-left-right.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-multicolumn.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-remove.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-right.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-sidetree.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-text.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-top-bottom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-tree.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-fit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-minus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-original.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-plus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/wizard.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/wordprocessor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/adobe-reader.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/alarm.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/attach.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/back.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/background.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bell.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bitmapgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bookmark-add.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bookmark.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/button-cancel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/button-ok.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/cache.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/camera.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/cancel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/cdrom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/char-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/clock.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/color-fill.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/color-line.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/colors.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/configure.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/connect-creating.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/connect-established.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/connect-no.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/control-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/core.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/date.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/decrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/desktop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/dictionary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/display.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/down.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-copy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-cut.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-delete.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-paste.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/email.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/encrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/energy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/error.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/exec.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/exit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-new.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-print.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-save-as.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-save.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/find.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/floppy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-favorite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-locked.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/fonts.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/forward.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/graphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/harddrive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/hardware-info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/help-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/help.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/history.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/home.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/joystick.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/keyboard-layout.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/locale.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-delete.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-find.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-forward.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-get.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-new.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-reply-all.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-reply.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-send.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-archive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-binary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-calendar.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-card.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-document.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-html.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-image.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-manual.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-pdf.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-quicktime.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-rpm.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-script.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-shellscript.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-sourcecode.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-spreadsheet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-text.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-video.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/misc.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/modem.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mouse.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mycomputer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/netscape.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/network.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/ok.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/paint.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/partitions.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/password.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/pda.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/printer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/queue.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/redo.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/reload.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/run.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/scanner.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/settings.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/signature.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/spellcheck.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/stop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/tablet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/terminal.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/toys.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/trashcan-empty.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/trashcan-full.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/tv.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/undo.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/up.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/user.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/utilities.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-bottom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-choose.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-detailed.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-icon.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-left-right.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-multicolumn.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-remove.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-right.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-sidetree.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-text.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-top-bottom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-tree.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-fit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-minus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-original.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-plus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/wizard.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/accessibility.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/adobe-reader.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/alarm.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/applications.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/attach.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/back.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/background.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bell.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bitmapgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bookmark-add.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bookmark.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bug.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/button-cancel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/button-ok.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/cache.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/calculator.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/camera.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/cdrom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/char-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/chart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/clipboard.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/clock.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/colors.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/configure.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/connect-creating.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/connect-established.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/connect-no.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/contents.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/control-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/cookie.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/core.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/date.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/decrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/desktop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/devices.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/dictionary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/display.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/down.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-copy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-cut.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-delete.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-paste.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/editor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/email.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/encrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/energy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/error.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/exec.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/exit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-manager.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-new.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-print.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-save-as.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-save.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/find.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/floppy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/flowchart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-favorite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-locked.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/fonts.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/forward.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/games.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/graphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/harddrive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/hardware-info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/help-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/help.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/home.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/icons.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/iconthemes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/joystick.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/keyboard-layout.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/locale.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/look-and-feel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/magnifier.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-delete.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-find.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-get.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-new.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-send.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/memory.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-archive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-binary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-calendar.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-card.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-document.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-html.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-image.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-manual.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-pdf.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-quicktime.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-rpm.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-script.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-shellscript.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-sourcecode.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-spreadsheet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-text.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-video.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/misc.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mixer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/modem.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mouse.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/movieplayer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mycomputer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/netscape.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/network.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/notes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/notify.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/opera.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/organizer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/paint.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/partitions.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/password.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/pda.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/pipe.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/presentation.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/printer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/queue.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/redo.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/reload.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/run.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/scanner.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/services.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/settings.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/stop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/style.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/system.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/tablet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/terminal.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/themes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/toys.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/trashcan-empty.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/trashcan-full.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/tv.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/undo.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/up.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/user.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/utilities.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-bottom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-choose.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-detailed.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-icon.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-left-right.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-multicolumn.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-remove.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-right.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-sidetree.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-text.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-top-bottom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-tree.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-fit.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-minus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-original.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-plus.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/wordprocessor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/accessibility.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/adobe-reader.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/alarm.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/applications.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/back.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/background.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/bell.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/bitmapgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/bug.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/cache.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/calculator.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/camera.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/cdrom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/char-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/chart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/clipboard.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/clock.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/colors.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/control-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/core.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/date.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/desktop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/devices.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/dictionary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/display.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/down.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/editor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/email.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/encrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/energy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/error.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/exec.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/file-manager.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/file-print.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/floppy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/flowchart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-favorite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-locked.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/fonts.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/forward.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/games.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/graphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/harddrive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/hardware-info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/help-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/home.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/icons.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/iconthemes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/joystick.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/keyboard-layout.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/locale.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/look-and-feel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/magnifier.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/memory.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-archive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-binary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-calendar.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-card.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-document.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-html.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-image.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-manual.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-pdf.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-quicktime.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-rpm.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-script.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-shellscript.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-sourcecode.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-spreadsheet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-text.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-video.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mixer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/modem.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mouse.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/movieplayer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mycomputer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/netscape.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/network.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/notes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/notify.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/opera.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/organizer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/paint.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/partitions.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/password.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/pda.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/pipe.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/presentation.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/printer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/reload.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/scanner.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/services.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/settings.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/style.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/system.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/tablet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/terminal.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/themes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/toys.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/trashcan-empty.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/trashcan-full.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/tv.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/up.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/user.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/utilities.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/wordprocessor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/adobe-reader.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/applications.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/background.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/bell.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/bitmapgraphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/bug.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/cache.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/calculator.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/camera.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/cdrom.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/char-device.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/chart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/clipboard.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/clock.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/colors.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/control-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/core.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/date.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/desktop.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/devices.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/dictionary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/display.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/editor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/email.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/encrypted.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/energy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/error.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/exec.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/file-manager.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/floppy.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/flowchart.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-favorite.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-locked.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-open.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/fonts.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/games.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/graphics.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/harddrive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/hardware-info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/help-center.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/icons.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/important.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/info.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/joystick.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/keyboard-layout.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/locale.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/look-and-feel.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/magnifier.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/memory.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-archive.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-binary.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-calendar.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-card.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-document.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-html.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-image.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-manual.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-pdf.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-quicktime.png [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-rpm.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-script.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-shellscript.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-sourcecode.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-spreadsheet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-text.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-video.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mixer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/modem.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mouse.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/movieplayer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/multimedia.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mycomputer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/netscape.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/network.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/notes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/notify.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/organizer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/paint.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/partitions.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/password.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/pda.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/pipe.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/presentation.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/printer.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/scanner.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/services.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/settings.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/style.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/system.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/tablet.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/terminal.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/themes.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/toys.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/trashcan-empty.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/trashcan-full.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/tv.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/user.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/utilities.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/wordprocessor.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/static/history/historyHelper.html [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/static/image/blank.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/static/image/dotted_white.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/down.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/down_small.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/down_tiny.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/first.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/forward.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/last.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/left.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/minimize.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/next.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/previous.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/rewind.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/right.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/up.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/up_small.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/up_tiny.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-field.jpg [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-handle.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-field.jpg [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-handle.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/alias.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/copy.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/move.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/nodrop.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastMonth.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastYear.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextMonth.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextYear.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/menu/checkbox.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/menu/menu-blank.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/menu/radiobutton.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-horizontal.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-vertical.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/ascending.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/boolean-false.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/boolean-true.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/descending.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/selectColumnOrder.png [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/cross.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/cross_minus.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/cross_plus.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/end.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/end_minus.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/end_plus.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/line.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/minus.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/only_minus.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/only_plus.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/plus.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/start_minus.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/start_plus.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/close.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/maximize.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/minimize.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/restore.gif [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/find.sh [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/generator.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/massreplace.sh [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.5.2/info/01-changes.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.1/info/01-windowevents.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.1/patches/01-xml.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.1/patches/02-application.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.2/info/01-nativewindow.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.2/info/02-functionextension.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.2/patches/01-parent.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/01-constants.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/02-oo.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/03-widget.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/04-nativewindow.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/05-font.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/06-border.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/07-color.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/08-image.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/09-tree.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/10-table.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/11-embed.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/12-label.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/13-window.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/14-colorselector.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/15-datechooser.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/16-button.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/17-selection.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/40-classnames.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/info/01-prototypes.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/info/02-obsolete.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/01-classnames.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/02-domapi.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/03-const.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/04-events.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/05-util.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/06-main.dat [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.7/patch.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/api.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/api.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/comment.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/comment.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/compiler.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/compiler.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/config.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/config.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/filetool.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/filetool.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/loader.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/loader.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/mapper.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/mapper.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/migrator.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/migrator.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/obfuscator.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/obfuscator.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/optparseext.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/optparseext.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/resources.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/resources.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/settings.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/settings.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/stringoptimizer.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/stringoptimizer.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tagtool.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/textile.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/textile.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/textutil.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/textutil.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tokenizer.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tokenizer.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tree.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tree.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/treegenerator.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/treegenerator.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/variableoptimizer.py [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/variableoptimizer.pyc [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/presets/core.dat [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/presets/packages.dat [new file with mode: 0755]
webapps/qooxdoo-0.6.3-sdk/frontend/skeleton/sample1.tar.gz [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/skeleton/sample2.tar.gz [new file with mode: 0644]
webapps/qooxdoo-0.6.3-sdk/frontend/skeleton/sample3.tar.gz [new file with mode: 0644]
webapps/scripting/client/call.js [new file with mode: 0644]
webapps/scripting/client/desktop.js [new file with mode: 0644]
webapps/scripting/client/encoder.js [new file with mode: 0644]
webapps/scripting/client/js_scripts.js [new file with mode: 0644]
webapps/scripting/client/regedit.js [new file with mode: 0644]
webapps/scripting/client/status.js [new file with mode: 0644]
webapps/scripting/common.js [new file with mode: 0644]
webapps/scripting/footer_columns.esp [new file with mode: 0644]
webapps/scripting/footer_desktop.esp [new file with mode: 0644]
webapps/scripting/footer_plain.esp [new file with mode: 0644]
webapps/scripting/forms.js [new file with mode: 0644]
webapps/scripting/general_calls.esp [new file with mode: 0644]
webapps/scripting/header_columns.esp [new file with mode: 0644]
webapps/scripting/header_desktop.esp [new file with mode: 0644]
webapps/scripting/header_plain.esp [new file with mode: 0644]
webapps/scripting/menus.js [new file with mode: 0644]
webapps/scripting/preauth.esp [new file with mode: 0644]
webapps/scripting/server/regedit.esp [new file with mode: 0644]
webapps/scripting/server/status.esp [new file with mode: 0644]
webapps/scripting/test.ejs [new file with mode: 0644]
webapps/scripting/test.esp [new file with mode: 0644]
webapps/style/columns.css [new file with mode: 0644]
webapps/style/common.css [new file with mode: 0644]
webapps/style/swat.css [new file with mode: 0644]
webapps/style/wide.css [new file with mode: 0644]
webapps/swat/Makefile [new file with mode: 0644]
webapps/swat/source/.ignore [new file with mode: 0644]
webapps/swat/source/class/swat/main/Gui.js [new file with mode: 0644]
webapps/swat/source/class/swat/main/Main.js [new file with mode: 0644]
webapps/swat/source/class/swat/module/AbstractModule.js [new file with mode: 0644]
webapps/swat/source/class/swat/module/AbstractModuleFsm.js [new file with mode: 0644]
webapps/swat/source/class/swat/module/Module.js [new file with mode: 0644]
webapps/swat/source/class/swat/module/documentation/Documentation.js [new file with mode: 0644]
webapps/swat/source/class/swat/module/documentation/Fsm.js [new file with mode: 0644]
webapps/swat/source/class/swat/module/ldbbrowse/Fsm.js [new file with mode: 0644]
webapps/swat/source/class/swat/module/ldbbrowse/Gui.js [new file with mode: 0644]
webapps/swat/source/class/swat/module/ldbbrowse/LdbBrowse.js [new file with mode: 0644]
webapps/swat/source/class/swat/module/statistics/Fsm.js [new file with mode: 0644]
webapps/swat/source/class/swat/module/statistics/Gui.js [new file with mode: 0644]
webapps/swat/source/class/swat/module/statistics/Statistics.js [new file with mode: 0644]
webapps/swat/source/index.html [new file with mode: 0644]

diff --git a/webapps/images/core/alpha.gif b/webapps/images/core/alpha.gif
new file mode 100644 (file)
index 0000000..ab8c332
Binary files /dev/null and b/webapps/images/core/alpha.gif differ
diff --git a/webapps/images/core/blank.gif b/webapps/images/core/blank.gif
new file mode 100644 (file)
index 0000000..75b945d
Binary files /dev/null and b/webapps/images/core/blank.gif differ
diff --git a/webapps/images/core/brightness.jpg b/webapps/images/core/brightness.jpg
new file mode 100644 (file)
index 0000000..008984d
Binary files /dev/null and b/webapps/images/core/brightness.jpg differ
diff --git a/webapps/images/core/brightnesshandle.gif b/webapps/images/core/brightnesshandle.gif
new file mode 100644 (file)
index 0000000..7cf8022
Binary files /dev/null and b/webapps/images/core/brightnesshandle.gif differ
diff --git a/webapps/images/core/dotted.gif b/webapps/images/core/dotted.gif
new file mode 100644 (file)
index 0000000..467da46
Binary files /dev/null and b/webapps/images/core/dotted.gif differ
diff --git a/webapps/images/core/huesaturation.jpg b/webapps/images/core/huesaturation.jpg
new file mode 100644 (file)
index 0000000..36d2d79
Binary files /dev/null and b/webapps/images/core/huesaturation.jpg differ
diff --git a/webapps/images/core/huesaturationhandle.gif b/webapps/images/core/huesaturationhandle.gif
new file mode 100644 (file)
index 0000000..2fcaaec
Binary files /dev/null and b/webapps/images/core/huesaturationhandle.gif differ
diff --git a/webapps/images/favicon.ico b/webapps/images/favicon.ico
new file mode 100644 (file)
index 0000000..ef903ba
Binary files /dev/null and b/webapps/images/favicon.ico differ
diff --git a/webapps/images/linkpad.gif b/webapps/images/linkpad.gif
new file mode 100644 (file)
index 0000000..613b4f5
Binary files /dev/null and b/webapps/images/linkpad.gif differ
diff --git a/webapps/images/logo.png b/webapps/images/logo.png
new file mode 100644 (file)
index 0000000..6df4ace
Binary files /dev/null and b/webapps/images/logo.png differ
diff --git a/webapps/images/stripes.png b/webapps/images/stripes.png
new file mode 100644 (file)
index 0000000..5c5941f
Binary files /dev/null and b/webapps/images/stripes.png differ
diff --git a/webapps/index.esp b/webapps/index.esp
new file mode 100644 (file)
index 0000000..1924e40
--- /dev/null
@@ -0,0 +1,30 @@
+<% page_header("columns", "Server Status", "main");
+  libinclude("base.js");
+  libinclude("management.js");
+  libinclude("provision.js");
+
+  if (install_ok(session.authinfo.session_info, session.authinfo.credentials) == false) {
+         redirect("/install/");
+  }
+
+%>
+
+<h1>Server Status</h1>
+
+<%
+var servers = new Array("nbt_server", "smb_server", "ldap_server", "cldap_server", "kdc_server");
+var i;
+var info = new Object();
+
+info["NBT Server"]      = server_status("nbt");
+info["WINS Server"]     = server_status("wins");
+info["CLDAP Server"]    = server_status("cldap");
+info["Kerberos Server"] = server_status("kdc");
+info["SMB Server"]      = stream_server_status("smb");
+info["LDAP Server"]     = stream_server_status("ldap");
+info["RPC Server"]      = stream_server_status("rpc");
+
+simple_table(info);
+%>
+
+<% page_footer(); %>
diff --git a/webapps/install/index.esp b/webapps/install/index.esp
new file mode 100644 (file)
index 0000000..5a73b77
--- /dev/null
@@ -0,0 +1,20 @@
+<% page_header("columns", "Server Installation", "install"); 
+%>
+
+<h1>Installation</h1>
+
+Welcome to Samba4 installation. Before proceeding, you will need to
+know:
+
+<ul>
+<li>The domain name you will use
+<li>The realm name you will use
+</ul>
+
+After you have decided on those, choose the 'Provisioning' menu item
+on the left, and fill in the form.<p>
+
+<b>Warning!</b> When you provision, your existing user database is
+wiped and replaced with a new one.
+
+<% page_footer(); %>
diff --git a/webapps/install/newuser.esp b/webapps/install/newuser.esp
new file mode 100644 (file)
index 0000000..1b341ff
--- /dev/null
@@ -0,0 +1,50 @@
+<% page_header("columns", "Add a user", "install"); 
+
+  include("/scripting/forms.js");
+  libinclude("base.js");
+  libinclude("provision.js");
+%>
+
+<h1>Add a user</h1>
+
+<%
+var f = FormObj("newuser", 0, 2);
+var i;
+var rand = random_init();
+
+f.add("USERNAME", "User Name");
+f.add("UNIXNAME", "Unix Name");
+f.add("PASSWORD", "Password", "password");
+f.add("CONFIRM", "Confirm Password", "password");
+f.submit[0] = "Add";
+f.submit[1] = "Cancel";
+
+if (form['submit'] == "Cancel") {
+       redirect("/");
+}
+
+
+if (form['submit'] == "Add" && 
+    form.USERNAME != undefined) {
+       var goodpass = (form.CONFIRM == form.PASSWORD);
+
+       if (!goodpass) {
+               write("<h3>Passwords don't match.  Please try again.</h3>");
+               f.display();
+       } else {
+               if (form.UNIXNAME == undefined) {
+                       form.UNIXNAME = form.USERNAME;
+               }
+               if (form.PASSWORD == undefined) {
+                       form.PASSWORD = rand.randpass();
+               }
+               newuser(form.USERNAME, form.UNIXNAME, form.PASSWORD, writefln, 
+                       session.authinfo.session_info, session.authinfo.credentials);
+       }
+} else {
+       f.display();
+}
+%>
+
+
+<% page_footer(); %>
diff --git a/webapps/install/provision.esp b/webapps/install/provision.esp
new file mode 100644 (file)
index 0000000..ee9673d
--- /dev/null
@@ -0,0 +1,79 @@
+<% page_header("columns", "Provisioning", "install"); 
+
+  include("/scripting/forms.js");
+  libinclude("base.js");
+  libinclude("provision.js");
+%>
+
+<h1>Samba4 provisioning</h1>
+
+<%
+var f = FormObj("Provisioning", 0, 2);
+var i;
+var lp = loadparm_init();
+
+if (lp.get("realm") == "") {
+       lp.set("realm", lp.get("workgroup") + ".example.com");
+}
+
+
+var subobj = provision_guess();
+/* Don't supply default password for web interface */
+subobj.ADMINPASS = "";
+
+f.add("REALM", "DNS Domain Name");
+f.add("DOMAIN", "NetBIOS Domain Name");
+f.add("HOSTNAME", "Hostname");
+f.add("ADMINPASS", "Administrator Password", "password");
+f.add("CONFIRM", "Confirm Password", "password");
+f.add("DOMAINSID", "Domain SID");
+f.add("HOSTIP", "Host IP");
+f.add("DEFAULTSITE", "Default Site");
+f.submit[0] = "Provision";
+f.submit[1] = "Cancel";
+
+if (form['submit'] == "Cancel") {
+       redirect("/");
+}
+
+if (form['submit'] == "Provision") {
+       for (r in form) {
+               subobj[r] = form[r];
+       }
+}
+
+for (i=0;i<f.element.length;i++) {
+       f.element[i].value = subobj[f.element[i].name];
+}
+
+if (form['submit'] == "Provision") {
+       lp.set("realm", subobj.REALM);
+       var goodpass = (subobj.CONFIRM == subobj.ADMINPASS);
+
+       if (!goodpass) {
+               write("<h3>Passwords don't match.  Please try again.</h3>");
+               f.display();
+       } else if (subobj.ADMINPASS == "") {
+               write("<h3>You must choose an administrator password.  Please try again.</h3>");
+               f.display();
+       } else if (!provision_validate(subobj, writefln)) {
+               f.display();
+       } else {
+               var paths = provision_default_paths(subobj);
+               if (!provision(subobj, writefln, false, paths, 
+                              session.authinfo.session_info, session.authinfo.credentials)) {
+                       writefln("Provision failed!");
+               } else if (!provision_dns(subobj, writefln, paths,
+                                         session.authinfo.session_info, session.authinfo.credentials)) {
+                       writefln("DNS Provision failed!");
+               } else {
+                       writefln("Provision Complete!");
+               }
+       }
+} else {
+       f.display();
+}
+%>
+
+
+<% page_footer(); %>
diff --git a/webapps/install/samba3.esp b/webapps/install/samba3.esp
new file mode 100644 (file)
index 0000000..31857c0
--- /dev/null
@@ -0,0 +1,106 @@
+<% page_header("columns", "Upgrade", "install"); 
+
+ /* frontend to Samba3 upgrade.
+       Based on provision.esp
+       (C) Jelmer Vernooij 2005
+       Published under the GNU GPL
+  */
+
+  include("/scripting/forms.js");
+  libinclude("base.js");
+  libinclude("provision.js");
+  libinclude("upgrade.js");
+%>
+
+<h1>Import from Samba3</h1>
+
+<%
+if (form['submit'] == "Cancel") {
+       redirect("/");
+}
+
+function confirm_form()
+{
+       var samba3 = samba3_read(form['LIBDIR'], form['SMBCONF']);
+
+       var subobj = upgrade_provision(samba3);
+       var f = FormObj("Import from Samba3", 0, 2);
+       subobj.ADMINPASS = "";
+
+       f.add("REALM", "Realm");
+       f.add("DOMAIN", "Domain Name");
+       f.add("HOSTNAME", "Hostname");
+       f.add("ADMINPASS", "Administrator Password", "password");
+       f.add("CONFIRM", "Confirm Password", "password");
+       f.add("DOMAINSID", "Domain SID");
+       f.add("HOSTGUID", "Host GUID");
+       f.add("HOSTIP", "Host IP");
+       f.add("DEFAULTSITE", "Default Site");
+
+       for (i=0;i<f.element.length;i++) {
+               f.element[i].value = subobj[f.element[i].name];
+       }
+
+       f.add("SMBCONF", "", "hidden", form['SMBCONF']);
+       f.add("LIBDIR", "", "hidden", form['LIBDIR']);
+
+       f.submit[0] = "Continue";
+       f.submit[1] = "Cancel";
+       f.display();    
+}
+
+if (form['submit'] == "Import") {
+       confirm_form();
+} else if (form['submit'] == "Continue") {
+       var samba3 = samba3_read(form['LIBDIR'], form['SMBCONF']);
+       assert(samba3 != undefined);
+       var subobj = upgrade_provision(samba3);
+       for (r in form) {
+               subobj[r] = form[r];
+       }
+
+       var goodpass = (subobj.CONFIRM == subobj.ADMINPASS);
+
+       if (!goodpass) {
+               write("<h3>Passwords don't match.  Please try again.</h3>");
+               confirm_form();
+       } else if (subobj.ADMINPASS == "") {
+               write("<h3>You must choose an administrator password.  Please try again.</h3>");
+               confirm_form();
+       } else {
+               var paths = provision_default_paths(subobj);
+               if (!provision(subobj, writefln, true, paths, 
+                              session.authinfo.session_info, session.authinfo.credentials)) {
+                       writefln("Provision failed!");
+               } else { 
+                       var ret = upgrade(subobj,samba3,message,paths,
+                                         session.authinfo.session_info, session.authinfo.credentials);
+                       if (ret > 0) {
+                               writefln("Failed to import %d entries\n", ret);
+                       } else {
+                               if (!provision_dns(subobj, writefln, paths,
+                                                  session.authinfo.session_info, session.authinfo.credentials)) {
+                                       writefln("DNS Provision failed!");
+                               } else {
+                                       writefln("Reloading smb.conf\n");
+                                       var lp = loadparm_init();
+                                       lp.reload();
+                                       writefln("Upgrade Complete!");
+                               }
+                       }
+               }
+       }
+} else {
+       var f = FormObj("Import from Samba3", 0, 2);
+
+       f.add("SMBCONF", "smb.conf file", "text", "/etc/samba/smb.conf");
+       f.add("LIBDIR", "Lib directory", "text", "/var/lib/samba");
+       f.submit[0] = "Import";
+       f.submit[1] = "Cancel";
+
+       write('<p>Warning: This will erase your current configuration!</p>');
+       f.display();
+}
+%>
+
+<% page_footer(); %>
diff --git a/webapps/install/vampire.esp b/webapps/install/vampire.esp
new file mode 100644 (file)
index 0000000..9ce874c
--- /dev/null
@@ -0,0 +1,120 @@
+<% page_header("columns", "Windows to Samba Migration", "install"); 
+
+  include("/scripting/forms.js");
+  libinclude("base.js");
+  libinclude("provision.js");
+
+  var misc = misc_init();
+%>
+
+<h1>Windows to Samba4 domain migration</h1>
+
+<%
+var f = FormObj("Provisioning", 0, 2);
+var i;
+var lp = loadparm_init();
+
+if (lp.get("realm") == "") {
+       lp.set("realm", lp.get("workgroup") + ".example.com");
+}
+
+
+var subobj = provision_guess();
+/* Don't supply default password for web interface */
+subobj.ADMINPASS = "";
+
+f.add("REALM", "DNS Domain Name");
+f.add("DOMAIN", "NetBIOS Domain Name");
+f.add("ADMIN", "Administrator Username");
+f.add("ADMINPASS", "Administrator Password", "password");
+f.add("HOSTNAME", "My Hostname");
+f.add("HOSTIP", "My Host's IP");
+f.add("DEFAULTSITE", "Default Site");
+f.submit[0] = "Migrate";
+f.submit[1] = "Cancel";
+
+if (form['submit'] == "Cancel") {
+       redirect("/");
+}
+
+if (form['submit'] == "Migrate") {
+       for (r in form) {
+               subobj[r] = form[r];
+       }
+}
+
+for (i=0;i<f.element.length;i++) {
+       f.element[i].value = subobj[f.element[i].name];
+}
+
+if (form['submit'] == "Migrate") {
+       lp.set("realm", subobj.REALM);
+       if (subobj.ADMINPASS == "") {
+               write("<h3>We need the administrator password for the " + subobj.DOMAIN + " domain to proceed.  Please try again.</h3>");
+               f.display();
+       } else if (!provision_validate(subobj, writefln)) {
+               f.display();
+       } else if (strupper(lp.get("server role")) == "PDC") {
+               writefln("You need to set 'server role' to 'member server' before starting the migration process");
+       } else {
+               var creds = credentials_init();
+               var samdb;
+               creds.set_username(form.ADMIN);
+               creds.set_password(form.ADMINPASS);
+               creds.set_domain(form.DOMAIN);
+               creds.set_realm(form.REALM);
+
+               var info = new Object();
+               var paths = provision_default_paths(subobj);
+               var session_info = session.authinfo.session_info;
+               var credentials = session.authinfo.credentials;
+
+               info.credentials = credentials;
+               info.session_info = session_info;
+               info.message = writefln;
+               info.subobj = subobj;
+
+               /* Setup a basic database structure, but don't setup any users */
+               if (!provision(subobj, writefln, true, paths,
+                              session_info, credentials)) {
+                       writefln("Provision failed!");
+
+               /* Join domain */
+               } else if (!join_domain(form.DOMAIN, form.HOSTNAME, misc.SEC_CHAN_BDC, creds, writefln)) {
+                       writefln("Domain Join failed!");
+                       
+                /* Vampire */
+               } else if (!vampire(form.DOMAIN, session.authinfo.session_info, 
+                                           session.authinfo.credentials, writefln)) {
+                       writefln("Failed to syncronsise remote domain into local database!");
+               } else if (!provision_dns(subobj, writefln, paths,
+                                         session.authinfo.session_info, session.authinfo.credentials)) {
+                       writefln("DNS Provision failed!");
+               } else if (!(samdb = open_ldb(info, paths.samdb, false))) {
+                       writefln("Opening " + paths.samdb + " failed!");
+                       info.samdb = samdb;
+               } else if (!setup_name_mappings(info, samdb)) {
+                       writefln("Setup of name mappings failed!");                     
+               } else {
+                       var zonepath = paths.dns;
+                       %>
+<h3>Database migrated!</h3>
+
+You need to do the following to complete the process:
+
+<ul>
+<li>Install the <b>@@zonepath</b> zone file into your bind install, and restart bind
+<li>Change your smb.conf to set "server role = pdc"
+<li>Shutdown your existing PDC and any other DCs
+<li>Restart smbd
+</ul>
+                       <%
+               }
+       }
+} else {
+       f.display();
+}
+%>
+
+
+<% page_footer(); %>
diff --git a/webapps/login.esp b/webapps/login.esp
new file mode 100644 (file)
index 0000000..8d6c049
--- /dev/null
@@ -0,0 +1,59 @@
+<% page_header("plain", "SWAT Login", "");
+   libinclude("auth.js");
+   include("/scripting/forms.js");
+
+if (request['SESSION_EXPIRED'] == "True") {
+   write("<b>Your session has expired - please authenticate again<br /></b>\n");
+}
+
+var f = FormObj("login", 3, 1);
+f.element[0].label = "Username";
+f.element[0].value = form['Username'];
+f.element[1].label = "Password";
+f.element[1].value = form['Password'];
+f.element[1].type  = "password";
+f.element[2].label = "Domain";
+f.element[2].type  = "select";
+f.element[2].list  = getDomainList();
+f.submit[0] = "Login";
+
+f.display();
+%>
+
+<%
+       if (request.REQUEST_METHOD == "POST") {
+               var creds = credentials_init();
+               creds.set_username(form.Username);
+               creds.set_password(form.Password);
+               creds.set_domain(form.Domain);
+               creds.set_workstation(request['REMOTE_HOST']);
+
+               auth = userAuth(creds, request['REMOTE_SOCKET_ADDRESS']);
+               if (auth == undefined) {
+                       write("<b>Invalid login - please try again<br /></b>\n");
+               } else if (auth.result) {
+                       session.AUTHENTICATED = true;
+                       session.authinfo = new Object();
+
+                       session.authinfo.username = auth.username;
+                       session.authinfo.domain = auth.domain;
+                       session.authinfo.credentials = creds;
+                       session.authinfo.session_info = auth.session_info;
+                       
+                       /* if the user was asking for the login page, then now
+                          redirect them to the main page. Otherwise just
+                          redirect them to the current page, which will now
+                          show its true content */
+                       if (request.REQUEST_URI == "/login.esp") {
+                          redirect(session_uri("/"));
+                       } else {
+                          redirect(session_uri(request.REQUEST_URI));
+                       }
+               } else if (auth.report == undefined) {
+                       write("<b>Login failed - please try again<br /></b>\n");
+               } else {
+                       write("<b>Login failed: " + auth.report + " - please try again<br /></b>\n");
+               }
+       }
+%>
+<% page_footer(); %>
diff --git a/webapps/logout.esp b/webapps/logout.esp
new file mode 100644 (file)
index 0000000..d0d971d
--- /dev/null
@@ -0,0 +1,8 @@
+<% 
+page_header("plain", "Logging out", ""); 
+
+session.AUTHENTICATED = false;
+redirect("/login.esp");
+
+page_footer(); 
+%>
diff --git a/webapps/menu.js b/webapps/menu.js
new file mode 100644 (file)
index 0000000..f752c1f
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+  the menu hierarchy for SWAT
+*/
+
+include("/scripting/menus.js");
+
+swat_menus = new Object();
+
+swat_menus.main = simple_menu(
+       "Main Menu",
+       "Servers",            session_uri("/?menu=servers"),
+       "Installation",       session_uri("/install/"),
+       "ESP Tests",          session_uri("/esptest/"),
+       "Preview of new SWAT",session_uri("/index.html"));
+
+swat_menus.servers = simple_menu(
+       "Servers",
+       "LDAP Server",        session_uri("/ldap_server/"),
+       "CLDAP Server",       session_uri("/cldap_server/"),
+       "RPC Server",         session_uri("/rpc_server/"),
+       "NBT Server",         session_uri("/nbt_server/"),
+       "WINS Server",        session_uri("/wins_server/"),
+       "Kerberos Server",    session_uri("/kdc_server/"));
+
+swat_menus.esptest = simple_menu(
+       "ESP Tests",
+       "ldb database",          session_uri("/esptest/ldb.esp"),
+       "samr calls",            session_uri("/esptest/samr.esp"),
+       "html forms",            session_uri("/esptest/formtest.esp"),
+       "esp includes",          session_uri("/esptest/include.esp"),
+       "session variables",     session_uri("/esptest/session.esp"),
+       "loadparm access",       session_uri("/esptest/loadparm.esp"),
+       "exception handling",    session_uri("/esptest/exception.esp"),
+       "environment variables", session_uri("/esptest/showvars.esp"),
+       "registry",              session_uri("/esptest/registry.esp"));
+
+swat_menus.json = simple_menu(
+       "JSON Tests",
+       "ldb browser",          session_uri("/apps/samba/utils/ldbbrowse.html"),
+       "admin console",        session_uri("/apps/samba/utils/admin_console.html"));
+
+
+swat_menus.install = simple_menu(
+       "Installation",
+       "Provisioning",       session_uri("/install/provision.esp"),
+       "New User",           session_uri("/install/newuser.esp"),
+       "Import from Samba3", session_uri("/install/samba3.esp"),
+       "Import from Windows", session_uri("/install/vampire.esp"));
+
+
+swat_menus.nbt_server = simple_menu(
+       "NBT Server",
+       "Statistics",          session_uri("/nbt_server/index.esp"));
+
+
+swat_menus.docs = simple_menu(
+       "Links",
+       "Samba4 development", "http://devel.samba.org/",
+       "Recent Checkins", "http://build.samba.org/?tree=samba4;function=Recent+Checkins",
+       "Recent Builds", "http://build.samba.org/?tree=samba4;function=Recent+Builds",
+       "EJS Information", "http://www.appwebserver.org/products/ejs/ejs.html",
+       "ESP Information", "http://www.appwebserver.org/products/esp/esp.html",
+       "XHTML Spec", "http://www.w3.org/TR/xhtml1/",
+       "JavaScript Spec", "http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf",
+       "CSS Specs", "http://www.w3.org/Style/CSS/#specs",
+       "CSS1/2 Reference", "http://www.w3schools.com/css/css_reference.asp");
+
diff --git a/webapps/qooxdoo-0.6.3-sdk/AUTHORS b/webapps/qooxdoo-0.6.3-sdk/AUTHORS
new file mode 100644 (file)
index 0000000..da3a56b
--- /dev/null
@@ -0,0 +1,2 @@
+Please point your browser to:
+http://qooxdoo.org/about/developers
diff --git a/webapps/qooxdoo-0.6.3-sdk/LICENSE b/webapps/qooxdoo-0.6.3-sdk/LICENSE
new file mode 100644 (file)
index 0000000..b1e3f5a
--- /dev/null
@@ -0,0 +1,504 @@
+                 GNU LESSER GENERAL PUBLIC LICENSE
+                      Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+\f
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+\f
+                 GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+\f
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+\f
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+\f
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+\f
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+\f
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+\f
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                           NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/webapps/qooxdoo-0.6.3-sdk/README b/webapps/qooxdoo-0.6.3-sdk/README
new file mode 100644 (file)
index 0000000..5da218a
--- /dev/null
@@ -0,0 +1,2 @@
+Please point your browser to:
+http://qooxdoo.org/documentation/user_manual
diff --git a/webapps/qooxdoo-0.6.3-sdk/RELEASENOTES b/webapps/qooxdoo-0.6.3-sdk/RELEASENOTES
new file mode 100644 (file)
index 0000000..232d4e0
--- /dev/null
@@ -0,0 +1,2 @@
+Please point your browser to:
+http://qooxdoo.org/about/release_notes
diff --git a/webapps/qooxdoo-0.6.3-sdk/TODO b/webapps/qooxdoo-0.6.3-sdk/TODO
new file mode 100644 (file)
index 0000000..7884daa
--- /dev/null
@@ -0,0 +1,2 @@
+Please point your browser to:
+http://qooxdoo.org/community/bugs
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/Makefile b/webapps/qooxdoo-0.6.3-sdk/frontend/Makefile
new file mode 100644 (file)
index 0000000..4b40fed
--- /dev/null
@@ -0,0 +1,294 @@
+###################################################################################
+# VARIABLES
+###################################################################################
+
+VERSION = 0.6.3
+
+NICE=10
+NICE_CALL = nice -n $(NICE)
+
+RELEASE_BUILD_UNIX = release/temp/build/unix/qooxdoo-$(VERSION)-build
+RELEASE_BUILD_DOS = release/temp/build/dos/qooxdoo-$(VERSION)-build
+
+RELEASE_SDK_UNIX = release/temp/sdk/unix/qooxdoo-$(VERSION)-sdk
+RELEASE_SDK_DOS = release/temp/sdk/dos/qooxdoo-$(VERSION)-sdk
+
+FIX_FILES = -name "*.py" -o -name "*.sh" -o -name "*.js" -o -name "*.html" -o -name "*.css" -o -name "*.xml" -o -name Makefile -o -name AUTHORS -o -name LICENSE -o -name README -o -name RELEASENOTES -o -name TODO
+
+RSYNC_BUILD_OPT = --recursive --archive --delete
+RSYNC_SDK_OPT = $(RSYNC_BUILD_OPT) --exclude script --exclude .svn
+
+RSYNC_BUILD_EXEC = @$(NICE_CALL) rsync $(RSYNC_BUILD_OPT)
+RSYNC_SDK_EXEC = @$(NICE_CALL) rsync $(RSYNC_SDK_OPT)
+
+ANY2DOS = | xargs framework/tool/modules/textutil.py --command any2Dos
+ANY2UNIX = | xargs framework/tool/modules/textutil.py --command any2Unix
+
+
+
+###################################################################################
+# DEFAULT TARGET
+###################################################################################
+
+all: build
+
+
+
+###################################################################################
+# COMMON TARGETS
+###################################################################################
+
+build:
+       @$(MAKE) -C api build
+       @$(MAKE) -C demo build
+       @$(MAKE) -C framework build
+
+source:
+       @$(MAKE) -C api source
+       @$(MAKE) -C demo source
+       @$(MAKE) -C framework source
+
+api-build:
+       @$(MAKE) -C api build
+
+demo-build:
+       @$(MAKE) -C demo build
+
+framework-build:
+       @$(MAKE) -C framework build
+
+api-source:
+       @$(MAKE) -C api source
+
+demo-source:
+       @$(MAKE) -C demo source
+
+framework-source:
+       @$(MAKE) -C framework source
+
+skeleton-archives:
+       @$(MAKE) -C skeleton archives
+
+demo-sync:
+       @$(MAKE) -C demo sync
+
+api-sync:
+       @$(MAKE) -C api sync
+
+framework-debug:
+       @$(MAKE) -C framework debug
+
+
+
+###################################################################################
+# CLEANUP TARGETS
+###################################################################################
+
+clean:
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES"
+       @echo "----------------------------------------------------------------------------"
+       @$(MAKE) -C api clean
+       @$(MAKE) -C demo clean
+       @$(MAKE) -C framework clean
+       @$(MAKE) -C skeleton clean
+
+realclean:
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES (REAL)"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @$(MAKE) -C api realclean
+       @$(MAKE) -C demo realclean
+       @$(MAKE) -C framework realclean
+       @$(MAKE) -C skeleton realclean
+
+       @echo "  * Deleting release temp data..."
+       @$(NICE_CALL) rm -rf release/temp
+
+distclean:
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES (DIST)"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @$(MAKE) -C api distclean
+       @$(MAKE) -C demo distclean
+       @$(MAKE) -C framework distclean
+       @$(MAKE) -C skeleton distclean
+
+       @echo "  * Deleting cache..."
+       @$(NICE_CALL) rm -rf .cache
+
+       @echo "  * Deleting release archives..."
+       @$(NICE_CALL) rm -rf release
+
+
+
+
+
+
+###################################################################################
+# RELEASE TARGETS
+###################################################################################
+
+release: release-build release-sdk
+release-fast: release-build-fast release-sdk-fast
+
+
+
+
+release-build: build release-build-fast
+release-build-fast: release-build-sync release-build-compress
+
+release-build-sync:
+       @echo
+       @echo "  SYNCHRONISATION OF UNIX BUILD RELEASE"
+       @echo "----------------------------------------------------------------------------"
+
+       @echo "  * Copying info files..."
+       @mkdir -p $(RELEASE_BUILD_UNIX)
+       @find ../ -maxdepth 1 -type f -name "[A-Z]*" -exec cp -f {} $(RELEASE_BUILD_UNIX) \;
+
+       @echo "  * Synchronizing Unix build folders..."
+       @mkdir -p $(RELEASE_BUILD_UNIX)/frontend/api
+       $(RSYNC_BUILD_EXEC) api/build/* $(RELEASE_BUILD_UNIX)/frontend/api
+       @mkdir -p $(RELEASE_BUILD_UNIX)/frontend/demo
+       $(RSYNC_BUILD_EXEC) demo/build/* $(RELEASE_BUILD_UNIX)/frontend/demo
+       @mkdir -p $(RELEASE_BUILD_UNIX)/frontend/framework
+       $(RSYNC_BUILD_EXEC) framework/build/* $(RELEASE_BUILD_UNIX)/frontend/framework
+
+       @echo "  * Fixing line-breaks..."
+       @$(NICE_CALL) find $(RELEASE_BUILD_UNIX) $(FIX_FILES) $(ANY2UNIX)
+
+       @echo
+       @echo "  SYNCHRONISATION OF DOS BUILD RELEASE"
+       @echo "----------------------------------------------------------------------------"
+
+       @echo "  * Copying info files..."
+       @mkdir -p $(RELEASE_BUILD_DOS)
+       @find ../ -maxdepth 1 -type f -name "[A-Z]*" -exec cp -f {} $(RELEASE_BUILD_DOS) \;
+
+       @echo "  * Synchronizing DOS build folders..."
+       @mkdir -p $(RELEASE_BUILD_DOS)/frontend/api
+       $(RSYNC_BUILD_EXEC) api/build/* $(RELEASE_BUILD_DOS)/frontend/api
+       @mkdir -p $(RELEASE_BUILD_DOS)/frontend/demo
+       $(RSYNC_BUILD_EXEC) demo/build/* $(RELEASE_BUILD_DOS)/frontend/demo
+       @mkdir -p $(RELEASE_BUILD_DOS)/frontend/framework
+       $(RSYNC_BUILD_EXEC) framework/build/* $(RELEASE_BUILD_DOS)/frontend/framework
+
+       @echo "  * Fixing line-breaks..."
+       @$(NICE_CALL) find $(RELEASE_BUILD_DOS) $(FIX_FILES) $(ANY2DOS)
+
+release-build-compress:
+       @echo
+       @echo "  COMPRESSION OF BUILD RELEASE"
+       @echo "----------------------------------------------------------------------------"
+
+       @echo "  * Generating gzip (Unix) archive..."
+       @cd release/temp/build/unix; rm -f qooxdoo-$(VERSION)-build.tar.gz; $(NICE_CALL) tar cfzp ../../../qooxdoo-$(VERSION)-build.tar.gz qooxdoo-$(VERSION)-build
+
+       @echo "  * Generating zip (DOS) archive..."
+       @cd release/temp/build/dos; rm -f qooxdoo-$(VERSION)-build.zip; $(NICE_CALL) zip -rq ../../../qooxdoo-$(VERSION)-build.zip qooxdoo-$(VERSION)-build
+
+
+
+
+
+
+
+release-sdk: source skeleton-archives release-sdk-fast
+release-sdk-fast: release-sdk-sync release-sdk-compress
+
+release-sdk-sync:
+       @echo
+       @echo "  SYNCHRONISATION OF UNIX SDK RELEASE"
+       @echo "----------------------------------------------------------------------------"
+
+       @echo "  * Copying info files..."
+       @mkdir -p $(RELEASE_SDK_UNIX)
+       @find ../ -maxdepth 1 -type f -name "[A-Z]*" -exec cp -f {} $(RELEASE_SDK_UNIX) \;
+
+       @echo "  * Copying Makefiles..."
+       @mkdir -p $(RELEASE_SDK_UNIX)/frontend
+       @cp -f Makefile $(RELEASE_SDK_UNIX)/frontend
+       @mkdir -p $(RELEASE_SDK_UNIX)/frontend/api
+       @cp -f api/Makefile $(RELEASE_SDK_UNIX)/frontend/api
+       @mkdir -p $(RELEASE_SDK_UNIX)/frontend/demo
+       @cp -f demo/Makefile $(RELEASE_SDK_UNIX)/frontend/demo
+       @mkdir -p $(RELEASE_SDK_UNIX)/frontend/framework
+       @cp -f framework/Makefile $(RELEASE_SDK_UNIX)/frontend/framework
+
+       @echo "  * Synchronizing source folders..."
+       @mkdir -p $(RELEASE_SDK_UNIX)/frontend/api/source
+       $(RSYNC_SDK_EXEC) api/source/* $(RELEASE_SDK_UNIX)/frontend/api/source
+       @mkdir -p $(RELEASE_SDK_UNIX)/frontend/demo/source
+       $(RSYNC_SDK_EXEC) demo/source/* $(RELEASE_SDK_UNIX)/frontend/demo/source
+       @mkdir -p $(RELEASE_SDK_UNIX)/frontend/framework/source
+       $(RSYNC_SDK_EXEC) framework/source/* $(RELEASE_SDK_UNIX)/frontend/framework/source
+
+       @echo "  * Synchronizing skeleton folder..."
+       @mkdir -p $(RELEASE_SDK_UNIX)/frontend/skeleton
+       $(RSYNC_BUILD_EXEC) skeleton/build/*.tar.gz $(RELEASE_SDK_UNIX)/frontend/skeleton
+
+       @echo "  * Synchronizing tool folders..."
+       @mkdir -p $(RELEASE_SDK_UNIX)/frontend/demo/tool
+       $(RSYNC_SDK_EXEC) demo/tool/* $(RELEASE_SDK_UNIX)/frontend/demo/tool
+       @$(NICE_CALL) find $(RELEASE_SDK_UNIX)/frontend/demo/tool -name "*.sh" -o -name "*.py" | xargs chmod a+rx
+       @mkdir -p $(RELEASE_SDK_UNIX)/frontend/framework/tool
+       $(RSYNC_SDK_EXEC) framework/tool/* $(RELEASE_SDK_UNIX)/frontend/framework/tool
+       @$(NICE_CALL) find $(RELEASE_SDK_UNIX)/frontend/framework/tool -name "*.sh" -o -name "*.py" | xargs chmod a+rx
+
+       @echo "  * Fixing line-breaks..."
+       @$(NICE_CALL) find $(RELEASE_SDK_UNIX) $(FIX_FILES) $(ANY2UNIX)
+
+       @echo
+       @echo "  SYNCHRONISATION OF DOS SDK RELEASE"
+       @echo "----------------------------------------------------------------------------"
+
+       @echo "  * Copying info files..."
+       @mkdir -p $(RELEASE_SDK_DOS)
+       @find ../ -maxdepth 1 -type f -name "[A-Z]*" -exec cp -f {} $(RELEASE_SDK_DOS) \;
+
+       @echo "  * Copying Makefiles..."
+       @mkdir -p $(RELEASE_SDK_DOS)/frontend
+       @cp -f Makefile $(RELEASE_SDK_DOS)/frontend
+       @mkdir -p $(RELEASE_SDK_DOS)/frontend/api
+       @cp -f api/Makefile $(RELEASE_SDK_DOS)/frontend/api
+       @mkdir -p $(RELEASE_SDK_DOS)/frontend/demo
+       @cp -f demo/Makefile $(RELEASE_SDK_DOS)/frontend/demo
+       @mkdir -p $(RELEASE_SDK_DOS)/frontend/framework
+       @cp -f framework/Makefile $(RELEASE_SDK_DOS)/frontend/framework
+
+       @echo "  * Synchronizing source folders..."
+       @mkdir -p $(RELEASE_SDK_DOS)/frontend/api/source
+       $(RSYNC_SDK_EXEC) api/source/* $(RELEASE_SDK_DOS)/frontend/api/source
+       @mkdir -p $(RELEASE_SDK_DOS)/frontend/demo/source
+       $(RSYNC_SDK_EXEC) demo/source/* $(RELEASE_SDK_DOS)/frontend/demo/source
+       @mkdir -p $(RELEASE_SDK_DOS)/frontend/framework/source
+       $(RSYNC_SDK_EXEC) framework/source/* $(RELEASE_SDK_DOS)/frontend/framework/source
+
+       @echo "  * Synchronizing skeleton folder..."
+       @mkdir -p $(RELEASE_SDK_DOS)/frontend/skeleton
+       $(RSYNC_BUILD_EXEC) skeleton/build/*.zip $(RELEASE_SDK_DOS)/frontend/skeleton
+
+       @echo "  * Synchronizing tool folders..."
+       @mkdir -p $(RELEASE_SDK_DOS)/frontend/demo/tool
+       $(RSYNC_SDK_EXEC) demo/tool/* $(RELEASE_SDK_DOS)/frontend/demo/tool
+       @$(NICE_CALL) find $(RELEASE_SDK_DOS)/frontend/demo/tool -name "*.sh" -o -name "*.py" | xargs chmod a+rx
+       @mkdir -p $(RELEASE_SDK_DOS)/frontend/framework/tool
+       $(RSYNC_SDK_EXEC) framework/tool/* $(RELEASE_SDK_DOS)/frontend/framework/tool
+       @$(NICE_CALL) find $(RELEASE_SDK_DOS)/frontend/framework/tool -name "*.sh" -o -name "*.py" | xargs chmod a+rx
+
+       @echo "  * Fixing line-breaks..."
+       @$(NICE_CALL) find $(RELEASE_SDK_DOS) $(FIX_FILES) $(ANY2DOS)
+
+release-sdk-compress:
+       @echo
+       @echo "  COMPRESSION OF SDK RELEASE"
+       @echo "----------------------------------------------------------------------------"
+
+       @echo "  * Generating gzip (Unix) archive..."
+       @cd release/temp/sdk/unix; rm -f qooxdoo-$(VERSION)-sdk.tar.gz; $(NICE_CALL) tar cfzp ../../../qooxdoo-$(VERSION)-sdk.tar.gz qooxdoo-$(VERSION)-sdk
+
+       @echo "  * Generating zip (DOS) archive..."
+       @cd release/temp/sdk/dos; rm -f qooxdoo-$(VERSION)-sdk.zip; $(NICE_CALL) zip -rq ../../../qooxdoo-$(VERSION)-sdk.zip qooxdoo-$(VERSION)-sdk
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/Makefile b/webapps/qooxdoo-0.6.3-sdk/frontend/api/Makefile
new file mode 100755 (executable)
index 0000000..2994475
--- /dev/null
@@ -0,0 +1,180 @@
+###################################################################################
+# VARIABLES
+###################################################################################
+
+FRAMEWORK=../framework
+GENERATOR=$(FRAMEWORK)/tool/generator.py
+CACHE=$(FRAMEWORK)/.cache
+SOURCELOADER=
+NICE=10
+
+ifneq ($(SOURCELOADER),)
+  SOURCELDR = --source-loader-type $(SOURCELOADER)
+else
+  SOURCELDR =
+endif
+
+
+###################################################################################
+# DEFAULT TARGET
+###################################################################################
+
+all: build
+
+
+
+###################################################################################
+# COMMON TARGETS
+###################################################################################
+
+source: generate-script-source generate-data-source
+build: generate-script-build generate-data-build copy-index-file fix-build-rights
+sync: build sync-qooxdoo-org
+pretty: generate-pretty
+fix: generate-fix
+
+
+
+###################################################################################
+# CLEANUP TARGETS
+###################################################################################
+
+clean:
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @rm -f source/script/api.js source/script/data.js
+       @rm -f build/script/api.js build/script/data.js
+       @rm -rf build/xml source/xml
+
+realclean: clean
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES (REAL)"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @nice -n $(NICE) rm -rf build source/script
+
+distclean: realclean
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES (DIST)"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @nice -n $(NICE) find . -name "*~" -o -name "*.bak" -o -name "*.old" | xargs rm -rf
+       @nice -n $(NICE) rm -rf $(CACHE)
+
+
+
+###################################################################################
+# GENERATOR TARGETS
+###################################################################################
+
+generate-script-source:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --source-script-path ../$(FRAMEWORK)/source/class \
+         --script-input source/class \
+         --source-script-path class \
+         --include api \
+         --generate-source-script $(SOURCELDR) \
+         --source-script-file source/script/api.js \
+         --define-runtime-setting qx.manager.object.AliasManager.resourceUri:../$(FRAMEWORK)/source/resource \
+         --cache-directory $(CACHE)
+
+generate-script-build:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --resource-input $(FRAMEWORK)/source/resource \
+         --resource-output build/resource/qooxdoo \
+         --script-input source/class \
+         --resource-input source/resource \
+         --resource-output build/resource \
+         --include api \
+         --generate-compiled-script \
+         --compiled-script-file build/script/api.js \
+         --optimize-strings \
+         --optimize-variables \
+         --define-runtime-setting qx.manager.object.AliasManager.resourceUri:resource/qooxdoo \
+         --copy-resources \
+         --cache-directory $(CACHE)
+
+generate-data-source:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --generate-api-documentation \
+         --api-documentation-json-file source/script/data.js \
+         --cache-directory $(CACHE)
+
+generate-data-build:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --generate-api-documentation \
+         --api-documentation-json-file build/script/data.js \
+         --cache-directory $(CACHE)
+
+generate-data-source-xml:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --generate-api-documentation \
+         --api-documentation-xml-file source/xml/data.xml \
+         --cache-directory $(CACHE)
+
+generate-data-build-xml:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --generate-api-documentation \
+         --api-documentation-xml-file build/xml/data.xml \
+         --cache-directory $(CACHE)
+
+generate-pretty:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --script-input $(FRAMEWORK)/source/class \
+         --include-without-dependencies api.* \
+         --pretty-print \
+         --cache-directory $(CACHE)
+
+generate-fix:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --script-input $(FRAMEWORK)/source/class \
+         --include-without-dependencies api.* \
+         --fix-source \
+         --cache-directory $(CACHE)
+
+
+
+###################################################################################
+# FILE RELATED TARGETS
+###################################################################################
+
+copy-index-file:
+       @echo
+       @echo "  CREATE COPY OF HTML FILE"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Copying file..."
+       @cp -f source/index.html build/index.html
+
+fix-build-rights:
+       @echo
+       @echo "  FIX RIGHTS ON BUILD FILES"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Fixing file rights..."
+       @nice -n $(NICE) find build -type d | xargs chmod a+rx
+       @nice -n $(NICE) find build -type f | xargs chmod a+r
+
+
+
+
+
+
+###################################################################################
+# ONLINE TARGETS
+###################################################################################
+
+sync-qooxdoo-org:
+       @echo
+       @echo "  SYNC FILES TO HOMEPAGE"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Syncing..."
+       @nice -n $(NICE) rsync --checksum --recursive --archive --delete --verbose build/* root@qooxdoo.org:/var/www/qooxdoo/api
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/class/api/ClassViewer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/class/api/ClassViewer.js
new file mode 100755 (executable)
index 0000000..20e110b
--- /dev/null
@@ -0,0 +1,1589 @@
+/*
+#module(api)
+*/
+
+/**
+ * Shows the class details.
+ */
+qx.OO.defineClass("api.ClassViewer", qx.ui.embed.HtmlEmbed,
+function() {
+  qx.ui.embed.HtmlEmbed.call(this);
+
+  this.setOverflow("auto");
+  this.setPadding(20);
+  this.setEdge(0);
+  this.setHtmlProperty("id", "ClassViewer");
+  this.setVisibility(false);
+
+  api.ClassViewer.instance = this;
+});
+
+
+qx.Proto._fixLinks = function(el)
+{
+  var a = el.getElementsByTagName("a");
+  for (var i=0; i<a.length; i++)
+  {
+    if (typeof a[i].href == "string" && a[i].href.indexOf("http://") == 0) {
+      a[i].target = "_blank";
+    }
+  }
+}
+
+/**
+ * Initializes the content of the embedding DIV. Will be called by the
+ * HtmlEmbed element initialization routine.
+ */
+qx.Proto._syncHtml = function() {
+  var ClassViewer = api.ClassViewer;
+
+  document._detailViewer = this;
+
+  this._infoPanelHash = {};
+
+  var html = "";
+
+  // Add title
+  html += '<h1></h1>';
+
+  // Add description
+  html += ClassViewer.DIV_START + ClassViewer.DIV_END;
+
+  // Add constructor info
+  html += this._createInfoPanel(ClassViewer.NODE_TYPE_CONSTRUCTOR,
+    "constructor", "constructor", this._createMethodInfo,
+    this._methodHasDetails, false, true);
+
+  // Add properties info
+  html += this._createInfoPanel(ClassViewer.NODE_TYPE_PROPERTY,
+    "properties", "properties", this._createPropertyInfo,
+    qx.util.Return.returnTrue, true, true);
+
+  // Add event info
+  html += this._createInfoPanel(ClassViewer.NODE_TYPE_EVENT,
+    "events", "events", this._createEventInfo,
+    this._eventHasDetails, true, true);
+
+  // Add public methods info
+  html += this._createInfoPanel(ClassViewer.NODE_TYPE_METHOD_PUBLIC,
+    "methods-pub", "public methods", this._createMethodInfo,
+    this._methodHasDetails, true, true);
+
+  // Add protected methods info
+  html += this._createInfoPanel(ClassViewer.NODE_TYPE_METHOD_PROTECTED,
+    "methods-prot", "protected methods", this._createMethodInfo,
+    this._methodHasDetails, true, false);
+
+  // Add static public methods info
+  html += this._createInfoPanel(ClassViewer.NODE_TYPE_METHOD_STATIC_PUBLIC,
+    "methods-static-pub", "static public methods", this._createMethodInfo,
+    this._methodHasDetails, false, true);
+
+  // Add static protected methods info
+  html += this._createInfoPanel(ClassViewer.NODE_TYPE_METHOD_STATIC_PROTECTED,
+    "methods-static-prot", "static protected methods", this._createMethodInfo,
+    this._methodHasDetails, false, false);
+
+  // Add constants info
+  html += this._createInfoPanel(ClassViewer.NODE_TYPE_CONSTANT,
+    "constants", "constants", this._createConstantInfo,
+    this._constantHasDetails, false, true);
+
+
+  // Set the html
+  // doc.body.innerHTML = html;
+  this.getElement().innerHTML = html;
+  this._fixLinks(this.getElement());
+
+  // Extract the main elements
+  var divArr = this.getElement().childNodes;
+  this._titleElem = divArr[0];
+  this._classDescElem = divArr[1];
+  this._infoPanelHash[ClassViewer.NODE_TYPE_CONSTRUCTOR].infoElem             = divArr[2];
+  this._infoPanelHash[ClassViewer.NODE_TYPE_PROPERTY].infoElem                = divArr[3];
+  this._infoPanelHash[ClassViewer.NODE_TYPE_EVENT].infoElem                   = divArr[4];
+  this._infoPanelHash[ClassViewer.NODE_TYPE_METHOD_PUBLIC].infoElem           = divArr[5];
+  this._infoPanelHash[ClassViewer.NODE_TYPE_METHOD_PROTECTED].infoElem        = divArr[6];
+  this._infoPanelHash[ClassViewer.NODE_TYPE_METHOD_STATIC_PUBLIC].infoElem    = divArr[7];
+  this._infoPanelHash[ClassViewer.NODE_TYPE_METHOD_STATIC_PROTECTED].infoElem = divArr[8];
+  this._infoPanelHash[ClassViewer.NODE_TYPE_CONSTANT].infoElem                = divArr[9];
+
+  // Get the child elements
+  for (var nodeType in this._infoPanelHash) {
+    var typeInfo = this._infoPanelHash[nodeType];
+    typeInfo.infoTitleElem = typeInfo.infoElem.firstChild;
+    typeInfo.infoBodyElem = typeInfo.infoElem.lastChild;
+  }
+
+  // Update the view
+  if (this._currentClassDocNode) {
+    // NOTE: We have to set this._currentClassDocNode to null beore, because
+    //       otherwise showClass thinks, there's nothing to do
+    var classDocNode = this._currentClassDocNode;
+    this._currentClassDocNode = null;
+    this.showClass(classDocNode);
+  }
+}
+
+
+/**
+ * Creates an info panel. An info panel shows the information about one item
+ * type (e.g. for public methods).
+ *
+ * @param nodeType {int} the node type to create the info panel for.
+ * @param listName {string} the name of the node list in the class doc node where
+ *        the items shown by this info panel are stored.
+ * @param labelText {string} the label text describing the node type.
+ * @param infoFactory {function} the factory method creating the HTML for one
+ *        item.
+ * @param hasDetailDecider {function} a function returning <code>true</code>
+ *        when a item has details.
+ * @param addInheritedCheckBox {boolean} whether to add a "show inherited ..."
+ *        checkbox.
+ * @param isOpen {boolean} whether the info panel is open by default.
+ * @return {string} the HTML for the info panel.
+ */
+qx.Proto._createInfoPanel = function(nodeType, listName, labelText, infoFactory,
+  hasDetailDecider, addInheritedCheckBox, isOpen)
+{
+  var uppercaseLabelText = labelText.charAt(0).toUpperCase() + labelText.substring(1);
+
+  typeInfo = { listName:listName, labelText:labelText, infoFactory:infoFactory,
+    hasDetailDecider:hasDetailDecider, isOpen:isOpen,
+    hasInheritedCheckBox:addInheritedCheckBox }
+  this._infoPanelHash[nodeType] = typeInfo;
+
+  var html = '<div class="infoPanel"><h2>';
+
+  if (addInheritedCheckBox) {
+    html += '<span class="inheritCheck"><input type="checkbox" id="chk_' + nodeType + '" '
+      + 'onclick="document._detailViewer._onInheritedCheckBoxClick(' + nodeType + ')"></input>'
+      + '<label for="chk_' + nodeType + '">Show inherited</label></span>';
+  }
+
+  html += '<img class="openclose" src="'
+    + qx.manager.object.AliasManager.getInstance().resolvePath('api/' + (isOpen ? 'close.gif' : 'open.gif')) + '"'
+    + " onclick=\"document._detailViewer._onShowInfoPanelBodyClicked(" + nodeType + ")\"/> "
+    + '<span '
+    + " onclick=\"document._detailViewer._onShowInfoPanelBodyClicked(" + nodeType + ")\">"
+    + uppercaseLabelText
+    + '</span>';
+
+  html += '</h2><div></div></div>';
+
+  return html;
+}
+
+
+/**
+ * Shows the information about a class.
+ *
+ * @param classNode {Map} the doc node of the class to show.
+ */
+qx.Proto.showClass = function(classNode) {
+  if (this._currentClassDocNode == classNode) {
+    // Nothing to do
+    return;
+  }
+
+  this._currentClassDocNode = classNode;
+
+  if (!this._titleElem) {
+    // _initContentDocument was not called yet
+    // -> Do nothing, the class will be shown in _initContentDocument.
+    return;
+  }
+
+  var ClassViewer = api.ClassViewer;
+
+  var titleHtml = "";
+
+  titleHtml += '<div class="packageName">' + classNode.attributes.packageName + '</div>';
+
+  titleHtml += '<span class="typeInfo">';
+
+  if (classNode.attributes.isAbstract) {
+    titleHtml += "Abstract ";
+  } else if (classNode.attributes.isStatic) {
+    titleHtml += "Static ";
+  }
+
+  titleHtml += "Class ";
+  titleHtml += '</span>';
+  titleHtml += classNode.attributes.name;
+
+  this._titleElem.innerHTML = titleHtml;
+
+  var classHtml = "";
+
+   // Add the class description
+  var ctorList = api.TreeUtil.getChild(classNode, "constructor");
+  if (ctorList) {
+    var desc = this._createDescHtml(ctorList.children[0], classNode, true);
+
+    if (desc != "")
+    {
+      classHtml += '<div class="classDescription">' + desc + '</div>';
+      classHtml += "<br/>";
+    }
+  }
+
+  // Create the class hierarchy
+  classHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Inheritance hierarchy:" + ClassViewer.DIV_END;
+
+  var classHierarchy = [];
+  var currClass = classNode;
+  while (currClass != null) {
+    classHierarchy.push(currClass);
+    currClass = this._getClassDocNode(currClass.attributes.superClass);
+  }
+  this._currentClassHierarchy = classHierarchy;
+
+  // Add the class hierarchy
+  classHtml += ClassViewer.createImageHtml("api/class18.gif") + "Object<br/>";
+  var indent = 0;
+  for (var i = classHierarchy.length - 1; i >= 0; i--) {
+    classHtml += ClassViewer.createImageHtml("api/nextlevel.gif", null, "margin-left:" + indent + "px")
+      + ClassViewer.createImageHtml(api.TreeUtil.getIconUrl(classHierarchy[i]));
+    if (i != 0) {
+      classHtml += this._createItemLinkHtml(classHierarchy[i].attributes.fullName, null, false);
+    } else {
+      classHtml += classHierarchy[i].attributes.fullName;
+    }
+    classHtml += "<br/>";
+    indent += 18;
+  }
+
+  classHtml += '<br/>';
+
+  // Add child classes
+  if (classNode.attributes.childClasses) {
+    classHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Direct subclasses:" + ClassViewer.DIV_END
+      + ClassViewer.DIV_START_DETAIL_TEXT;
+
+    var classNameArr = classNode.attributes.childClasses.split(",");
+    for (var i = 0; i < classNameArr.length; i++) {
+      if (i != 0) {
+        classHtml += ", ";
+      }
+      classHtml += this._createItemLinkHtml(classNameArr[i], null, true, false);
+    }
+
+    classHtml += ClassViewer.DIV_END;
+    classHtml += '<br/>';
+  }
+
+  // Add @see attributes
+  if (ctorList) {
+    classHtml += this._createSeeAlsoHtml(ctorList.children[0], classNode);
+    classHtml += '<br/>';
+  }
+
+  this._classDescElem.innerHTML = classHtml;
+  this._fixLinks(this._classDescElem);
+
+  // Refresh the info viewers
+  for (var nodeType in this._infoPanelHash) {
+    this._updateInfoPanel(parseInt(nodeType));
+  }
+
+  // Scroll to top
+  this.getElement().scrollTop = 0;
+}
+
+qx.Proto.showInfo = function(classNode) {
+  if (this._currentClassDocNode == classNode) {
+    // Nothing to do
+    return;
+  }
+
+  this._currentClassDocNode = classNode;
+
+  if (!this._titleElem) {
+    // _initContentDocument was not called yet
+    // -> Do nothing, the class will be shown in _initContentDocument.
+    return;
+  }
+
+  var ClassViewer = api.ClassViewer;
+
+  this._titleElem.innerHTML = "Info View";
+  this._classDescElem.innerHTML = "";
+
+  // Scroll to top
+  this.getElement().scrollTop = 0;
+}
+
+/**
+ * Highlights an item (property, method or constant) and scrolls it visible.
+ *
+ * @param itemName {string} the name of the item to highlight.
+ */
+qx.Proto.showItem = function(itemName) {
+  var itemNode = api.TreeUtil.getItemDocNode(this._currentClassDocNode, itemName);
+  if (! itemNode) {
+    alert("Item '" + itemName + "' not found");
+  }
+
+  var nodeType = this._getTypeForItemNode(itemNode);
+  var elem = this._getItemElement(nodeType, itemNode.attributes.name).parentNode.parentNode;
+
+  // Handle mark
+  if (this._markedElement) {
+    this._markedElement.className = "";
+  }
+
+  elem.className = "marked";
+  this._markedElement = elem;
+
+  // Scroll the element visible
+  var top = qx.dom.Location.getPageBoxTop(elem);
+  var height = elem.offsetHeight;
+
+  var doc = this.getElement();
+  var scrollTop = doc.scrollTop;
+  var clientHeight = doc.offsetHeight;
+
+  if (scrollTop > top) {
+    doc.scrollTop = top;
+  } else if (scrollTop < top + height - clientHeight) {
+    doc.scrollTop = top + height - clientHeight;
+  }
+}
+
+
+/**
+ * Updates an info panel.
+ *
+ * @param nodeType {int} the node type of which to update the info panel.
+ */
+qx.Proto._updateInfoPanel = function(nodeType) {
+  var ClassViewer = api.ClassViewer;
+
+  var typeInfo = this._infoPanelHash[nodeType];
+
+  // Get the nodes to show
+  var nodeArr = null;
+  var fromClassHash = null;
+  if (typeInfo.isOpen && this._currentClassDocNode) {
+    if (typeInfo.showInherited) {
+      nodeArr = [];
+      fromClassArr = [];
+      fromClassHash = {};
+      var currClassNode = this._currentClassDocNode;
+      while (currClassNode != null) {
+        var currParentNode = api.TreeUtil.getChild(currClassNode, typeInfo.listName);
+        var currNodeArr = currParentNode ? currParentNode.children : null;
+        if (currNodeArr) {
+          // Add the nodes from this class
+          for (var i = 0; i < currNodeArr.length; i++) {
+            var name = currNodeArr[i].attributes.name;
+            if (fromClassHash[name] == null) {
+              fromClassHash[name] = currClassNode;
+              nodeArr.push(currNodeArr[i]);
+            }
+          }
+        }
+
+        var superClassName = currClassNode.attributes.superClass;
+        currClassNode = superClassName ? this._getClassDocNode(superClassName) : null;
+      }
+
+      // Sort the nodeArr by name
+      nodeArr.sort(function(obj1, obj2) {
+        return (obj1.attributes.name.toLowerCase() < obj2.attributes.name.toLowerCase()) ? -1 : 1;
+      });
+    } else {
+      var parentNode = api.TreeUtil.getChild(this._currentClassDocNode, typeInfo.listName);
+      nodeArr = parentNode ? parentNode.children : null;
+    }
+  }
+
+  // Show the nodes
+  if (nodeArr && nodeArr.length != 0)
+  {
+    var html = '<table cellspacing="0" cellpadding="0" class="info" width="100%">';
+
+    for (var i = 0; i < nodeArr.length; i++)
+    {
+      var node = nodeArr[i];
+      var fromClassNode = fromClassHash ? fromClassHash[node.attributes.name] : null;
+      if (fromClassNode == null) {
+        fromClassNode = this._currentClassDocNode;
+      }
+
+      var info = typeInfo.infoFactory.call(this, node, nodeType, fromClassNode, false);
+      var inherited = fromClassNode && (fromClassNode != this._currentClassDocNode);
+      var iconUrl = api.TreeUtil.getIconUrl(node, inherited);
+
+      // Create the title row
+      html += '<tr>';
+
+        html += '<td class="icon">' + ClassViewer.createImageHtml(iconUrl) + '</td>';
+        html += '<td class="type">' + ((info.typeHtml.length != 0) ? (info.typeHtml + "&nbsp;") : "") + '</td>';
+
+        html += '<td class="toggle">';
+        if (typeInfo.hasDetailDecider.call(this, node, nodeType, fromClassNode))
+        {
+          // This node has details -> Show the detail button
+          html += '<img src="' + qx.manager.object.AliasManager.getInstance().resolvePath("api/open.gif") + '"'
+            + " onclick=\"document._detailViewer._onShowItemDetailClicked(" + nodeType + ",'"
+            + node.attributes.name + "'"
+            + ((fromClassNode != this._currentClassDocNode) ? ",'" + fromClassNode.attributes.fullName + "'" : "")
+            + ")\"/>";
+        }
+        else
+        {
+          html += "&#160;";
+        }
+        html += '</td>';
+
+        html += '<td class="text">';
+
+          // Create headline
+          html += '<h3';
+
+          if (typeInfo.hasDetailDecider.call(this, node, nodeType, fromClassNode))
+          {
+            html += " onclick=\"document._detailViewer._onShowItemDetailClicked(" + nodeType + ",'"
+              + node.attributes.name + "'"
+              + ((fromClassNode != this._currentClassDocNode) ? ",'" + fromClassNode.attributes.fullName + "'" : "")
+              + ")\">";
+          }
+          else
+          {
+            html += '>';
+          }
+
+          html += info.titleHtml;
+          html += '</h3>';
+
+          // Create content area
+          html += '<div _itemName="' + nodeArr[i].attributes.name + '">';
+            html += info.textHtml;
+          html += '</div>';
+
+        html += '</td>';
+      html += '</tr>';
+    }
+
+    html += '</table>';
+
+    typeInfo.infoBodyElem.innerHTML = html;
+    this._fixLinks(typeInfo.infoBodyElem);
+    typeInfo.infoBodyElem.style.display = "";
+  }
+  else
+  {
+    if (typeInfo.isOpen)
+    {
+      typeInfo.infoBodyElem.innerHTML = '<div class="empty-info-body">This class has no ' + typeInfo.labelText + '</div>';
+      typeInfo.infoBodyElem.style.display = "";
+    }
+    else
+    {
+      typeInfo.infoBodyElem.style.display = "none";
+    }
+  }
+}
+
+
+/**
+ * Event handler. Called when the user clicked a button for showing/hiding the
+ * details of an item.
+ *
+ * @param nodeType {int} the node type of the item to show/hide the details.
+ * @param name {string} the name of the item.
+ * @param fromClassName {string} the name of the class the item the item was
+ *        defined in.
+ */
+qx.Proto._onShowItemDetailClicked = function(nodeType, name, fromClassName) {
+  try {
+    var typeInfo = this._infoPanelHash[nodeType];
+    var textDiv = this._getItemElement(nodeType, name);
+
+    if (!textDiv) {
+      throw Error("Element for name '" + name + "' not found!");
+    }
+
+    var showDetails = textDiv._showDetails ? !textDiv._showDetails : true;
+    textDiv._showDetails = showDetails;
+
+    var fromClassNode = this._currentClassDocNode;
+    if (fromClassName) {
+      fromClassNode = this._getClassDocNode(fromClassName);
+    }
+
+    var listNode = api.TreeUtil.getChild(fromClassNode, typeInfo.listName);
+    var node;
+    if (nodeType == api.ClassViewer.NODE_TYPE_CONSTRUCTOR) {
+      node = listNode.children[0];
+    } else {
+      node = api.TreeUtil.getChildByAttribute(listNode, "name", name);
+    }
+
+    // Update the close/open image
+    var opencloseImgElem = textDiv.parentNode.previousSibling.firstChild;
+    opencloseImgElem.src = qx.manager.object.AliasManager.getInstance().resolvePath(showDetails ? 'api/close.gif' : 'api/open.gif');
+
+    // Update content
+    var info = typeInfo.infoFactory.call(this, node, nodeType, fromClassNode, showDetails);
+    textDiv.innerHTML = info.textHtml;
+    this._fixLinks(textDiv);
+  } catch (exc) {
+    this.error("Toggling item details failed", exc);
+  }
+}
+
+
+/**
+ * Event handler. Called when the user clicked on a "show inherited ..."
+ * checkbox.
+ *
+ * @param nodeType {int} the node type of which the inherited-checkbox was
+ *        clicked.
+ */
+qx.Proto._onInheritedCheckBoxClick = function(nodeType) {
+  try {
+    var typeInfo = this._infoPanelHash[nodeType];
+    var checkboxElem = typeInfo.infoTitleElem.getElementsByTagName("input")[0];
+
+    typeInfo.showInherited = checkboxElem.checked;
+
+    this._updateInfoPanel(nodeType);
+  } catch (exc) {
+    this.error("Handling inherited checkbox click failed", exc);
+  }
+}
+
+
+/**
+ * Event handler. Called when the user clicked a button for showing/hiding the
+ * body of an info panel.
+ *
+ * @param nodeType {int} the node type of which the show/hide-body-button was
+ *        clicked.
+ */
+qx.Proto._onShowInfoPanelBodyClicked = function(nodeType) {
+  try {
+    var typeInfo = this._infoPanelHash[nodeType];
+    typeInfo.isOpen = !typeInfo.isOpen;
+
+    var imgElem = typeInfo.infoTitleElem.getElementsByTagName("img")[0];
+    imgElem.src = qx.manager.object.AliasManager.getInstance().resolvePath(typeInfo.isOpen ? 'api/close.gif' : 'api/open.gif');
+
+    this._updateInfoPanel(nodeType);
+  } catch (exc) {
+    this.error("Toggling info body failed", exc);
+  }
+}
+
+
+/**
+ * Gets the HTML element showing the details of an item.
+ *
+ * @param nodeType {int} the node type of the item.
+ * @param name {string} the item's name.
+ * @return {Element} the HTML element showing the details of the item.
+ */
+qx.Proto._getItemElement = function(nodeType, name) {
+  var typeInfo = this._infoPanelHash[nodeType];
+  var elemArr = typeInfo.infoBodyElem.getElementsByTagName("TBODY")[0].childNodes;
+
+  for (var i = 0; i < elemArr.length; i++) {
+    // ARRG, should be implemented in a more fault-tolerant way
+    // iterate over tr's, look inside the third "td" and there the second element
+    if (elemArr[i].childNodes[3].childNodes[1].getAttribute("_itemName") == name) {
+      return elemArr[i].childNodes[3].childNodes[1];
+    }
+  }
+}
+
+
+/**
+ * Selects an item.
+ *
+ * @param itemName {string} the name of the item.
+ * @see ApiViewer#selectItem
+ */
+qx.Proto._selectItem = function(itemName) {
+  try {
+    api.Viewer.instance.selectItem(itemName);
+    qx.ui.core.Widget.flushGlobalQueues();
+  } catch (exc) {
+    this.error("Selecting item '" + itemName + "' failed", exc);
+  }
+}
+
+
+/**
+ * Gets the doc node of a class.
+ *
+ * @param className {string} the name of the class.
+ * @return {Map} the doc node of the class.
+ */
+qx.Proto._getClassDocNode = function(className) {
+  if (className) {
+    return api.TreeUtil.getClassDocNode(api.Viewer.instance.getDocTree(), className);
+  } else {
+    return null;
+  }
+}
+
+
+/**
+ * Creates the HTML showing the information about a property.
+ *
+ * @param node {Map} the doc node of the property.
+ * @param nodeType {int} the node type of the property.
+ * @param fromClassNode {Map} the doc node of the class the property was defined.
+ * @param showDetails {boolean} whether to show the details.
+ * @return {string} the HTML showing the information about the property.
+ */
+qx.Proto._createPropertyInfo = function(node, nodeType, fromClassNode, showDetails) {
+  var ClassViewer = api.ClassViewer;
+
+  var info = {}
+
+  var typeInfo = this._infoPanelHash[nodeType];
+
+  // Get the property node that holds the documentation
+  var docClassNode = fromClassNode;
+  var docNode = node;
+  if (node.attributes.docFrom) {
+    docClassNode = this._getClassDocNode(node.attributes.docFrom);
+    var listNode = api.TreeUtil.getChild(docClassNode, typeInfo.listName);
+    docNode = api.TreeUtil.getChildByAttribute(listNode, "name", node.attributes.name);
+  }
+
+  // Add the title
+  info.typeHtml = this._createTypeHtml(node, fromClassNode, "var");
+  info.titleHtml = node.attributes.name;
+
+  // Add the description
+  info.textHtml = this._createDescHtml(docNode, fromClassNode, showDetails);
+
+  if (showDetails) {
+    // Add allowed values
+    var allowedValue = null;
+    if (node.attributes.possibleValues) {
+      allowedValue = node.attributes.possibleValues;
+    } else if (node.attributes.classname) {
+      allowedValue = "instances of " + node.attributes.classname;
+    } else if (node.attributes.instance) {
+      allowedValue = "instances of " + node.attributes.instance + " or sub classes";
+    } else if (node.attributes.unitDetection) {
+      allowedValue = "units: " + node.attributes.unitDetection;
+    } else if (node.attributes.type) {
+      allowedValue = "any " + node.attributes.type;
+    }
+
+    if (allowedValue) {
+      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Allowed values:" + ClassViewer.DIV_END
+        + ClassViewer.DIV_START_DETAIL_TEXT;
+
+      if (node.attributes.allowNull != "false") {
+        info.textHtml += "null, ";
+      }
+      info.textHtml += allowedValue + ClassViewer.DIV_END;
+    }
+
+    // Add default value
+    info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Default value:" + ClassViewer.DIV_END
+      + ClassViewer.DIV_START_DETAIL_TEXT
+      + (node.attributes.defaultValue ? node.attributes.defaultValue : "null")
+      + ClassViewer.DIV_END;
+
+    // Add get alias
+    if (node.attributes.getAlias) {
+      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Get alias:" + ClassViewer.DIV_END
+        + ClassViewer.DIV_START_DETAIL_TEXT + node.attributes.getAlias + ClassViewer.DIV_END;
+    }
+
+    // Add set alias
+    if (node.attributes.setAlias) {
+      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Set alias:" + ClassViewer.DIV_END
+        + ClassViewer.DIV_START_DETAIL_TEXT + node.attributes.setAlias + ClassViewer.DIV_END;
+    }
+
+    // Add inherited from or overridden from
+    if (fromClassNode && fromClassNode != this._currentClassDocNode) {
+      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Inherited from:" + ClassViewer.DIV_END
+        + ClassViewer.DIV_START_DETAIL_TEXT
+        + this._createItemLinkHtml(fromClassNode.attributes.fullName)
+        + ClassViewer.DIV_END;
+    } else if (node.attributes.overriddenFrom) {
+      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Overridden from:" + ClassViewer.DIV_END
+        + ClassViewer.DIV_START_DETAIL_TEXT
+        + this._createItemLinkHtml(node.attributes.overriddenFrom)
+        + ClassViewer.DIV_END;
+    }
+
+    // Add @see attributes
+    info.textHtml += this._createSeeAlsoHtml(docNode, docClassNode);
+
+    // Add documentation errors
+    info.textHtml += this._createErrorHtml(docNode, docClassNode);
+  }
+
+  return info;
+}
+
+
+/**
+ * Checks whether an event has details.
+ *
+ * @param node {Map} the doc node of the event.
+ * @param nodeType {int} the node type of the event.
+ * @param fromClassNode {Map} the doc node of the class the event was defined.
+ * @return {boolean} whether the event has details.
+ */
+qx.Proto._eventHasDetails = function(node, nodeType, fromClassNode) {
+  return (fromClassNode != this._currentClassDocNode) // event is inherited
+    || this._hasSeeAlsoHtml(node)
+    || this._hasErrorHtml(node)
+    || this._descHasDetails(node);
+};
+
+
+/**
+ * Creates the HTML showing the information about an event.
+ *
+ * @param node {Map} the doc node of the event.
+ * @param nodeType {int} the node type of the event.
+ * @param fromClassNode {Map} the doc node of the class the event was defined.
+ * @param showDetails {boolean} whether to show the details.
+ * @return {string} the HTML showing the information about the event.
+ */
+qx.Proto._createEventInfo = function(node, nodeType, fromClassNode, showDetails) {
+  var ClassViewer = api.ClassViewer;
+
+  var info = {}
+
+  var typeInfo = this._infoPanelHash[nodeType];
+
+  // Add the title
+  info.typeHtml = this._createTypeHtml(node, fromClassNode, "var");
+  info.titleHtml = node.attributes.name;
+
+  // Add the description
+  info.textHtml = this._createDescHtml(node, fromClassNode, showDetails);
+
+  if (showDetails) {
+    // Add inherited from or overridden from
+    if (fromClassNode && fromClassNode != this._currentClassDocNode) {
+      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Inherited from:" + ClassViewer.DIV_END
+        + ClassViewer.DIV_START_DETAIL_TEXT
+        + this._createItemLinkHtml(fromClassNode.attributes.fullName)
+        + ClassViewer.DIV_END;
+    }
+
+    // Add @see attributes
+    info.textHtml += this._createSeeAlsoHtml(node, fromClassNode);
+
+    // Add documentation errors
+    info.textHtml += this._createErrorHtml(node, fromClassNode);
+  }
+
+  return info;
+};
+
+
+/**
+ * Checks whether a method has details.
+ *
+ * @param node {Map} the doc node of the method.
+ * @param nodeType {int} the node type of the method.
+ * @param fromClassNode {Map} the doc node of the class the method was defined.
+ * @return {boolean} whether the method has details.
+ */
+qx.Proto._methodHasDetails = function(node, nodeType, fromClassNode) {
+  var TreeUtil = api.TreeUtil;
+
+  var typeInfo = this._infoPanelHash[nodeType];
+
+  // Get the method node that holds the documentation
+  var docClassNode = fromClassNode;
+  var docNode = node;
+  if (node.attributes.docFrom) {
+    docClassNode = this._getClassDocNode(node.attributes.docFrom);
+    var listNode = TreeUtil.getChild(docClassNode, typeInfo.listName);
+    docNode = TreeUtil.getChildByAttribute(listNode, "name", node.attributes.name);
+  }
+
+  // Check whether there are details
+  var hasParams = TreeUtil.getChild(docNode, "params") != null;
+  var hasReturn = TreeUtil.getChild(docNode, "return") != null;
+  var isOverridden = fromClassNode != this._currentClassDocNode;
+
+  return (fromClassNode != this._currentClassDocNode) // method is inherited
+    || (node.attributes.overriddenFrom != null)       // method is overridden
+    || (TreeUtil.getChild(docNode, "params") != null) // method has params
+    || (TreeUtil.getChild(docNode, "return") != null) // method has return value
+    || this._hasSeeAlsoHtml(docNode)
+    || this._hasErrorHtml(docNode)
+    || this._descHasDetails(docNode);
+}
+
+
+/**
+ * Creates the HTML showing the information about a method.
+ *
+ * @param node {Map} the doc node of the method.
+ * @param nodeType {int} the node type of the method.
+ * @param fromClassNode {Map} the doc node of the class the method was defined.
+ * @param showDetails {boolean} whether to show the details.
+ * @return {string} the HTML showing the information about the method.
+ */
+qx.Proto._createMethodInfo = function(node, nodeType, fromClassNode, showDetails) {
+  var ClassViewer = api.ClassViewer;
+  var TreeUtil = api.TreeUtil;
+
+  var info = {}
+
+  var typeInfo = this._infoPanelHash[nodeType];
+
+  // Get the method node that holds the documentation
+  var docClassNode = fromClassNode;
+  var docNode = node;
+  if (node.attributes.docFrom) {
+    docClassNode = this._getClassDocNode(node.attributes.docFrom);
+    var listNode = TreeUtil.getChild(docClassNode, typeInfo.listName);
+    docNode = TreeUtil.getChildByAttribute(listNode, "name", node.attributes.name);
+  }
+
+  if (node.attributes.isAbstract) {
+    info.typeHtml = "abstract ";
+  } else {
+    info.typeHtml = "";
+  }
+
+  // Get name, icon and return type
+  var returnNode = TreeUtil.getChild(docNode, "return");
+  if (node.attributes.isCtor) {
+    info.titleHtml = fromClassNode.attributes.name;
+  } else {
+    info.titleHtml = node.attributes.name;
+    info.typeHtml += this._createTypeHtml(returnNode, fromClassNode, "void");
+  }
+
+  // Add the title (the method signature)
+  info.titleHtml += '<span class="methodSignature"> <span class="parenthesis">(</span>';
+  var paramsNode = TreeUtil.getChild(docNode, "params");
+  if (paramsNode) {
+    for (var i = 0; i < paramsNode.children.length; i++) {
+      var param = paramsNode.children[i];
+      if (i != 0) {
+        info.titleHtml += '<span class="separator">,</span> ';
+      }
+      info.titleHtml += '<span class="parameterType">' + this._createTypeHtml(param, fromClassNode, "var") + "</span> "
+        + param.attributes.name;
+      if (param.attributes.defaultValue) {
+        info.titleHtml += "?";
+      }
+    }
+  }
+  info.titleHtml += '<span class="parenthesis">)</span></span>';
+
+  // Add the description
+  if (node.attributes.isCtor) {
+    info.textHtml = "Creates a new instance of " + fromClassNode.attributes.name + ".";
+  } else {
+    info.textHtml = this._createDescHtml(docNode, docClassNode, showDetails);
+  }
+
+
+  if (showDetails) {
+    // Add Parameters
+    var paramsNode = TreeUtil.getChild(docNode, "params");
+    if (paramsNode) {
+      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Parameters:" + ClassViewer.DIV_END;
+      for (var i = 0; i < paramsNode.children.length; i++) {
+        var param = paramsNode.children[i];
+        var paramType = param.attributes.type ? param.attributes.type : "var";
+        var dims = param.attributes.arrayDimensions;
+        if (dims) {
+          for (var i = 0; i < dims; i++) {
+            paramType += "[]";
+          }
+        }
+        var defaultValue = param.attributes.defaultValue;
+
+        info.textHtml += ClassViewer.DIV_START_DETAIL_TEXT;
+        if (defaultValue) {
+          info.textHtml += ClassViewer.SPAN_START_OPTIONAL;
+        }
+        info.textHtml += ClassViewer.SPAN_START_PARAM_NAME + param.attributes.name + ClassViewer.SPAN_END;
+        if (defaultValue) {
+          info.textHtml += " (default: " + defaultValue + ") " + ClassViewer.SPAN_END;
+        }
+
+        var paramDescNode = TreeUtil.getChild(param, "desc");
+        if (paramDescNode) {
+          info.textHtml += " " + this._createDescriptionHtml(paramDescNode.attributes.text, docClassNode);
+        }
+        info.textHtml += ClassViewer.DIV_END;
+      }
+    }
+
+    // Add return value
+    if (returnNode) {
+      var returnDescNode = TreeUtil.getChild(returnNode, "desc");
+      if (returnDescNode) {
+        info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Returns:" + ClassViewer.DIV_END
+          + ClassViewer.DIV_START_DETAIL_TEXT
+          + this._createDescriptionHtml(returnDescNode.attributes.text, docClassNode)
+          + ClassViewer.DIV_END;
+      }
+    }
+
+    // Add inherited from or overridden from
+    if (fromClassNode && fromClassNode != this._currentClassDocNode) {
+      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Inherited from:" + ClassViewer.DIV_END
+        + ClassViewer.DIV_START_DETAIL_TEXT
+        + this._createItemLinkHtml(fromClassNode.attributes.fullName)
+        + ClassViewer.DIV_END;
+    } else if (node.attributes.overriddenFrom) {
+      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Overridden from:" + ClassViewer.DIV_END
+        + ClassViewer.DIV_START_DETAIL_TEXT
+        + this._createItemLinkHtml(node.attributes.overriddenFrom)
+        + ClassViewer.DIV_END;
+    }
+
+    // Add @see attributes
+    info.textHtml += this._createSeeAlsoHtml(docNode, docClassNode);
+
+    // Add documentation errors
+    info.textHtml += this._createErrorHtml(docNode, docClassNode);
+  }
+
+  return info;
+}
+
+
+/**
+ * Checks whether a constant has details.
+ *
+ * @param node {Map} the doc node of the constant.
+ * @param nodeType {int} the node type of the constant.
+ * @param fromClassNode {Map} the doc node of the class the constant was defined.
+ * @return {boolean} whether the constant has details.
+ */
+qx.Proto._constantHasDetails = function(node, nodeType, fromClassNode) {
+  return this._hasSeeAlsoHtml(node) || this._hasErrorHtml(node) || this._descHasDetails(node);
+}
+
+
+/**
+ * Creates the HTML showing the information about a constant.
+ *
+ * @param node {Map} the doc node of the constant.
+ * @param nodeType {int} the node type of the constant.
+ * @param fromClassNode {Map} the doc node of the class the constant was defined.
+ * @param showDetails {boolean} whether to show the details.
+ * @return {string} the HTML showing the information about the constant.
+ */
+qx.Proto._createConstantInfo = function(node, nodeType, fromClassNode, showDetails) {
+  var info = {}
+
+  // Add the title
+  info.typeHtml = this._createTypeHtml(node, fromClassNode, "var");
+  info.titleHtml = node.attributes.name;
+
+  // Add the description
+  info.textHtml = this._createDescHtml(node, fromClassNode, showDetails);
+
+  if (showDetails) {
+    // Add @see attributes
+    info.textHtml += this._createSeeAlsoHtml(node, fromClassNode);
+
+    // Add documentation errors
+    info.textHtml += this._createErrorHtml(node, fromClassNode);
+  }
+
+  return info;
+}
+
+
+/**
+ * Returns whether the description of an item has details (has more than one
+ * sentence).
+ *
+ * @param node {Map} the doc node of the item.
+ * @return {boolean} whether the description of an item has details.
+ */
+qx.Proto._descHasDetails = function(node) {
+  var descNode = api.TreeUtil.getChild(node, "desc");
+  if (descNode) {
+    var desc = descNode.attributes.text;
+    return this._extractFirstSentence(desc) != desc;
+  } else {
+    return false;
+  }
+}
+
+
+/**
+ * Creates the HTML showing the description of an item.
+ *
+ * @param node {Map} the doc node of the item.
+ * @param fromClassNode {Map} the doc node of the class the item was defined.
+ * @param showDetails {boolean} whether to show details. If <code>false</code>
+ *        only the first sentence of the description will be shown.
+ * @return {string} the HTML showing the description.
+ */
+qx.Proto._createDescHtml = function(node, fromClassNode, showDetails) {
+  var descNode = api.TreeUtil.getChild(node, "desc");
+  if (descNode) {
+    var desc = descNode.attributes.text;
+    if (!showDetails) {
+      desc = this._extractFirstSentence(desc);
+    }
+    return api.ClassViewer.DIV_START_DESC
+      + this._createDescriptionHtml(desc, fromClassNode)
+      + api.ClassViewer.DIV_END;
+  } else {
+    return "";
+  }
+}
+
+
+/**
+ * Extracts the first sentence from a text.
+ *
+ * @param text {string} the text.
+ * @return {string} the first sentence from the text.
+ */
+qx.Proto._extractFirstSentence = function(text)
+{
+  var ret = text;
+
+  // Extract first block
+  var pos = ret.indexOf("</p>");
+  if (pos != -1)
+  {
+    ret = ret.substr(0, pos+4);
+
+    var hit = api.ClassViewer.SENTENCE_END_REGEX.exec(ret);
+    if (hit != null) {
+      ret = text.substring(0, hit.index + hit[0].length - 1) + "</p>";
+    }
+  }
+
+  return ret;
+}
+
+
+/**
+ * Checks whether a item has &#64;see attributes.
+ *
+ * @param node {Map} the doc node of the item.
+ * @return {boolean} whether the item has &#64;see attributes.
+ */
+qx.Proto._hasSeeAlsoHtml = function(node) {
+  var TreeUtil = api.TreeUtil;
+
+  var descNode = TreeUtil.getChild(node, "desc");
+  if (descNode) {
+    var attributesNode = TreeUtil.getChild(descNode, "attributes");
+    if (attributesNode) {
+      var seeAttribNode = TreeUtil.getChildByAttribute(attributesNode, "name", "see");
+      if (seeAttribNode) {
+        return true;
+      }
+    }
+  }
+
+  // There is no @see attribute
+  return false;
+}
+
+
+/**
+ * Creates the HTML showing the &#64;see attributes of an item.
+ *
+ * @param node {Map} the doc node of the item.
+ * @param fromClassNode {Map} the doc node of the class the item was defined.
+ * @return {string} the HTML showing the &#64;see attributes.
+ */
+qx.Proto._createSeeAlsoHtml = function(node, fromClassNode) {
+  var ClassViewer = api.ClassViewer;
+
+  var descNode = api.TreeUtil.getChild(node, "desc");
+  if (descNode) {
+    var attributesNode = api.TreeUtil.getChild(descNode, "attributes");
+    if (attributesNode) {
+      var seeAlsoHtml = "";
+      for (var i = 0; i < attributesNode.children.length; i++) {
+        var attribNode = attributesNode.children[i];
+        if (attribNode.attributes.name == "see") {
+          // This is a @see attribute
+          if (seeAlsoHtml.length != 0) {
+            seeAlsoHtml += ", ";
+          }
+          seeAlsoHtml += this._createItemLinkHtml(attribNode.attributes.text, fromClassNode);
+        }
+      }
+
+      if (seeAlsoHtml.length != 0) {
+        // We had @see attributes
+        return ClassViewer.DIV_START_DETAIL_HEADLINE + "See also:" + ClassViewer.DIV_END
+          + ClassViewer.DIV_START_DETAIL_TEXT + seeAlsoHtml + ClassViewer.DIV_END;
+      }
+    }
+  }
+
+  // Nothing found
+  return "";
+}
+
+
+/**
+ * Checks whether a item has documentation errors.
+ *
+ * @param node {Map} the doc node of the item.
+ * @return {boolean} whether the item has documentation errors.
+ */
+qx.Proto._hasErrorHtml = function(node) {
+  var errorNode = api.TreeUtil.getChild(node, "errors");
+  return (errorNode != null);
+}
+
+
+/**
+ * Creates the HTML showing the documentation errors of an item.
+ *
+ * @param node {Map} the doc node of the item.
+ * @param fromClassNode {Map} the doc node of the class the item was defined.
+ * @return {string} the HTML showing the documentation errors.
+ */
+qx.Proto._createErrorHtml = function(node, fromClassNode) {
+  var ClassViewer = api.ClassViewer;
+
+  var errorNode = api.TreeUtil.getChild(node, "errors");
+  if (errorNode) {
+    var html = ClassViewer.DIV_START_ERROR_HEADLINE + "Documentation errors:" + ClassViewer.DIV_END;
+    var errArr = errorNode.children;
+    for (var i = 0; i < errArr.length; i++) {
+      html += ClassViewer.DIV_START_DETAIL_TEXT + errArr[i].attributes.msg + " <br/>";
+      html += "("
+      if (fromClassNode && fromClassNode != this._currentClassDocNode) {
+        html += fromClassNode.attributes.fullName + "; ";
+      }
+      html += "Line: " + errArr[i].attributes.line + ", Column:" + errArr[i].attributes.column + ")" + ClassViewer.DIV_END;
+    }
+    return html;
+  } else {
+    return "";
+  }
+}
+
+
+/**
+ * Creates the HTML showing the type of a doc node.
+ *
+ * @param typeNode {Map} the doc node to show the type for.
+ * @param packageBaseClass {Map} the doc node of the class <code>typeNode</code>
+ *        belongs to.
+ * @param defaultType {string} the type name to use if <code>typeNode</code> is
+ *        <code>null</code> or defines no type.
+ * @param useShortName {boolean,true} whether to use short class names
+ *        (without package).
+ * @return {string} the HTML showing the type.
+ */
+qx.Proto._createTypeHtml = function(typeNode, packageBaseClass, defaultType, useShortName) {
+  if (useShortName == null) {
+    useShortName = true;
+  }
+
+  var types = [];
+  var typeHtml, typeDimensions, typeName, linkText, dims;
+
+  if (typeNode)
+  {
+    // read in children
+    if (typeNode.children && api.TreeUtil.getChild(typeNode, "types"))
+    {
+      for (var i=0, a=api.TreeUtil.getChild(typeNode, "types").children, l=a.length; i<l; i++)
+      {
+        if (a[i].type == "entry")
+        {
+          types.push(a[i].attributes);
+        }
+      }
+    }
+
+    // read from attributes (alternative)
+    if (types.length == 0 && typeNode.attributes)
+    {
+      typeName = typeNode.attributes.instance ? typeNode.attributes.instance : typeNode.attributes.type;
+
+      if (typeName != undefined)
+      {
+        dims = typeNode.attributes.dimensions;
+
+        if (typeof dims == "number" && dims > 0) {
+          types.push({ "type" : typeName, "dimensions" : dims });
+        } else {
+          types.push({ "type" : typeName });
+        }
+      }
+    }
+  }
+
+  if (types.length == 0)
+  {
+    typeHtml = defaultType;
+  }
+  else
+  {
+    typeHtml = "";
+
+    if (types.length > 1) {
+      typeHtml += "("
+    }
+
+    for (var j=0; j<types.length; j++)
+    {
+      if (j>0) {
+        typeHtml += " | ";
+      }
+
+      typeName = types[j].type;
+      typeDimensions = types[j].dimensions;
+
+      if (api.ClassViewer.PRIMITIVES[typeName])
+      {
+        typeHtml += typeName;
+      }
+      else
+      {
+        linkText = typeName;
+        if (useShortName)
+        {
+          var lastDot = typeName.lastIndexOf(".");
+          if (lastDot != -1) {
+            linkText += " " + typeName.substring(lastDot + 1);
+          }
+        }
+        typeHtml += this._createItemLinkHtml(linkText, packageBaseClass, false, true);
+      }
+
+      if (typeDimensions)
+      {
+        for (var i = 0; i < parseInt(typeDimensions); i++) {
+          typeHtml += "[]";
+        }
+      }
+    }
+
+    if (types.length > 1) {
+      typeHtml += ")"
+    }
+  }
+
+  return typeHtml;
+}
+
+
+/**
+ * Creates HTML that replaces all &#64;link-attributes with links.
+ *
+ * @param description {string} the description.
+ * @param packageBaseClass {Map,null} the doc node of the class to use for
+ *        auto-adding packages.
+ */
+qx.Proto._createDescriptionHtml = function(description, packageBaseClass) {
+  var linkRegex = /\{@link([^\}]*)\}/mg;
+
+  var html = "";
+  var hit;
+  var lastPos = 0;
+  while ((hit = linkRegex.exec(description)) != null) {
+    // Add the text before the link
+    html += description.substring(lastPos, hit.index)
+      + this._createItemLinkHtml(hit[1], packageBaseClass);
+
+    lastPos = hit.index + hit[0].length;
+  }
+
+  // Add the text after the last hit
+  html += description.substring(lastPos, description.length);
+
+  return html;
+}
+
+
+/**
+ * Creates the HTML for a link to an item.
+ *
+ * @param linkText {string} the link text
+ *        (e.g. "mypackage.MyClass#myMethod alt text")
+ * @param packageBaseClass {Map,null} the doc node of the class to use when
+ *        auto-adding the package to a class name having no package specified.
+ *        If null, no automatic package addition is done.
+ * @param useIcon {boolean,true} whether to add an icon to the link.
+ * @param useShortName {boolean,false} whether to use the short name.
+ */
+qx.Proto._createItemLinkHtml = function(linkText, packageBaseClass, useIcon,
+  useShortName)
+{
+  if (useIcon == null) {
+    useIcon = true;
+  }
+
+  linkText = qx.lang.String.trim(linkText);
+
+  if (linkText.charAt(0) == '"' || linkText.charAt(0) == '<') {
+    // This is a String or a link to a URL -> Just use it as it is
+    return linkText;
+  } else {
+    // This is a link to another class or method -> Create an item link
+
+    // Separate item name from label
+    var hit = api.ClassViewer.ITEM_SPEC_REGEX.exec(linkText);
+    if (hit == null) {
+      // Malformed item name
+      return linkText;
+    } else {
+      var className = hit[2];
+      var itemName = hit[3];
+      var label = hit[6];
+
+      // Make the item name absolute
+      if (className == null || className.length == 0) {
+        // This is a relative link to a method -> Add the current class
+        className = packageBaseClass.attributes.fullName;
+      } else if (packageBaseClass && className.indexOf(".") == -1) {
+        // The class name has no package -> Use the same package as the current class
+        var name = packageBaseClass.attributes.name;
+        var fullName = packageBaseClass.attributes.fullName;
+        var packageName = fullName.substring(0, fullName.length - name.length);
+        className = packageName + className;
+      }
+
+      // Get the node info
+      if (label == null || label.length == 0) {
+        // We have no label -> Use the item name as label
+        label = hit[1];
+      }
+
+      // Add the right icon
+      if (useIcon) {
+        var classNode = this._getClassDocNode(className);
+        if (classNode) {
+          var itemNode;
+          if (itemName) {
+            // The links points to a item of the class
+            var cleanItemName = itemName.substring(1);
+            var parenPos = cleanItemName.indexOf("(");
+            if (parenPos != -1) {
+              cleanItemName = qx.lang.String.trim(cleanItemName.substring(0, parenPos));
+            }
+            itemNode = api.TreeUtil.getItemDocNode(classNode, cleanItemName);
+          } else {
+            // The links points to the class
+            itemNode = classNode;
+          }
+          if (itemNode) {
+            var iconUrl = api.TreeUtil.getIconUrl(itemNode);
+            var iconCode = api.ClassViewer.createImageHtml(iconUrl);
+          }
+        }
+      }
+
+      // Create a real bookmarkable link
+      // NOTE: The onclick-handler must be added by HTML code. If it
+      //       is added using the DOM element then the href is followed.
+      var fullItemName = className + (itemName ? itemName : "");
+      return (typeof iconCode != "undefined" ? iconCode : "")
+        + '<a href="' + window.location.protocol + '//' +  window.location.pathname
+        + '#' + fullItemName + '" onclick="'
+        + 'document._detailViewer._selectItem(\'' + fullItemName + '\'); return false;"'
+        + ' title="' + fullItemName + '">' + label + '</a>';
+    }
+  }
+}
+
+
+/**
+ * Gets the node type for a doc node.
+ *
+ * @param itemNode {Map} the doc node of the item.
+ * @return {int} the item's node type.
+ */
+qx.Proto._getTypeForItemNode = function(itemNode) {
+  var ClassViewer = api.ClassViewer;
+
+  if (itemNode.type == "constant") {
+    return ClassViewer.NODE_TYPE_CONSTANT;
+  } else if (itemNode.type == "property") {
+    return ClassViewer.NODE_TYPE_PROPERTY;
+  } else if (itemNode.type == "event") {
+    return ClassViewer.NODE_TYPE_EVENT;
+  } else if (itemNode.type == "method") {
+    var name = itemNode.attributes.name;
+    if (name == null) {
+      return ClassViewer.NODE_TYPE_CONSTRUCTOR;
+    } else if (name.charAt(0) == "_") {
+      if (itemNode.attributes.isStatic) {
+        return ClassViewer.NODE_TYPE_METHOD_STATIC_PROTECTED;
+      } else {
+        return ClassViewer.NODE_TYPE_METHOD_PROTECTED;
+      }
+    } else {
+      if (itemNode.attributes.isStatic) {
+        return ClassViewer.NODE_TYPE_METHOD_STATIC_PUBLIC;
+      } else {
+        return ClassViewer.NODE_TYPE_METHOD_PUBLIC;
+      }
+    }
+  }
+}
+
+
+// overridden
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._titleElem = null;
+  this._classDescElem = null;
+  this._markedElement = null;
+
+  for (var nodeType in this._infoPanelHash) {
+    this._infoPanelHash[nodeType].infoElem = null;
+    this._infoPanelHash[nodeType].infoTitleElem = null;
+    this._infoPanelHash[nodeType].infoBodyElem = null;
+  }
+
+  document._detailViewer = null;
+
+  return qx.ui.embed.HtmlEmbed.prototype.dispose.call(this);
+}
+
+
+/** {Map} The primitive types. These types will not be shown with links. */
+qx.Class.PRIMITIVES = { "boolean":true, "string":true, "float":true,
+  "number":true, "int":true, "double":true, "var":true, "void":true,
+  "RegExp":true, "Array":true, "Map":true, "Date":true, "Element":true,
+  "Node":true, "Function":true, "Object":true, "Event":true };
+
+/**
+ * {regexp} The regexp for parsing a item name
+ * (e.g. "mypackage.MyClass#MY_CONSTANT alternative text").
+ */
+qx.Class.ITEM_SPEC_REGEX = /^(([\w\.]+)?(#\w+(\([^\)]*\))?)?)(\s+(.*))?$/;
+
+/** {regexp} The regexp that finds the end of a sentence. */
+qx.Class.SENTENCE_END_REGEX = /[^\.].\.(\s|<)/;
+
+
+/** {int} The node type of a constructor. */
+qx.Class.NODE_TYPE_CONSTRUCTOR = 1;
+/** {int} The node type of a property. */
+qx.Class.NODE_TYPE_PROPERTY = 2;
+/** {int} The node type of an event. */
+qx.Class.NODE_TYPE_EVENT = 3;
+/** {int} The node type of a public method. */
+qx.Class.NODE_TYPE_METHOD_PUBLIC = 4;
+/** {int} The node type of a protected method. */
+qx.Class.NODE_TYPE_METHOD_PROTECTED = 5;
+/** {int} The node type of a static public method. */
+qx.Class.NODE_TYPE_METHOD_STATIC_PUBLIC = 6;
+/** {int} The node type of a static protected method. */
+qx.Class.NODE_TYPE_METHOD_STATIC_PROTECTED = 7;
+/** {int} The node type of a constant. */
+qx.Class.NODE_TYPE_CONSTANT = 8;
+
+/** {string} The start tag of a div. */
+qx.Class.DIV_START = '<div>';
+/** {string} The start tag of a div containing an item description. */
+qx.Class.DIV_START_DESC = '<div class="item-desc">';
+/** {string} The start tag of a div containing the headline of an item detail. */
+qx.Class.DIV_START_DETAIL_HEADLINE = '<div class="item-detail-headline">';
+/** {string} The start tag of a div containing the text of an item detail. */
+qx.Class.DIV_START_DETAIL_TEXT = '<div class="item-detail-text">';
+/** {string} The start tag of a div containing the headline of an item error. */
+qx.Class.DIV_START_ERROR_HEADLINE = '<div class="item-detail-error">';
+/** {string} The end tag of a div. */
+qx.Class.DIV_END = '</div>';
+
+/** {string} The start tag of a span containing an optional detail. */
+qx.Class.SPAN_START_OPTIONAL = '<span class="item-detail-optional">';
+/** {string} The start tag of a span containing a parameter name. */
+qx.Class.SPAN_START_PARAM_NAME = '<span class="item-detail-param-name">';
+/** {string} The end tag of a span. */
+qx.Class.SPAN_END = '</span>';
+
+
+/**
+ * Creates the HTML showing an image.
+ *
+ * @param imgUrl {var} the URL of the image. May be a string or an array of
+ *        strings (for overlay images).
+ * @param tooltip {string} the tooltip to show.
+ * @param styleAttributes {string} the style attributes to add to the image.
+ */
+qx.Class.createImageHtml = function(imgUrl, tooltip, styleAttributes) {
+  if (typeof imgUrl == "string") {
+    return '<img src="' + qx.manager.object.AliasManager.getInstance().resolvePath(imgUrl) + '" class="img"'
+      + (styleAttributes ? ' style="' + styleAttributes + '"' : "") + '/>';
+  } else {
+    if (styleAttributes) {
+      styleAttributes += ";vertical-align:top";
+    } else {
+      styleAttributes = "vertical-align:top";
+    }
+    return api.ClassViewer.createOverlayImageHtml(18, 18, imgUrl, tooltip, styleAttributes);
+  }
+}
+
+
+/**
+ * Creates HTML that shows an overlay image (several images on top of each other).
+ * The resulting HTML will behave inline.
+ *
+ * @param width {int} the width of the images.
+ * @param height {int} the height of the images.
+ * @param imgUrlArr {string[]} the URLs of the images. The last image will be
+ *        painted on top.
+ * @param toolTip {string,null} the tooltip of the icon.
+ * @param styleAttributes {string,null} custom CSS style attributes.
+ * @return {string} the HTML with the overlay image.
+ */
+qx.Class.createOverlayImageHtml
+  = function(width, height, imgUrlArr, toolTip, styleAttributes)
+{
+  var html = '<div style="position:relative;top:0;left:0;width:' + width + 'px;height:' + height + 'px'
+  + ((styleAttributes == null) ? '' : (';' + styleAttributes)) + '">';
+
+  for (var i = 0; i < imgUrlArr.length; i++) {
+    html += '<img';
+    if (toolTip != null) {
+      html += ' title="' + toolTip + '"';
+    }
+    html += ' style="position:absolute;top:0px;left:0px" src="' + qx.manager.object.AliasManager.getInstance().resolvePath(imgUrlArr[i]) + '"/>';
+  }
+
+  html += '</div>';
+
+  /*
+  // NOTE: See testOverlay.html
+  var html = '<table cellpadding="0" cellspacing="0" '
+    + 'style="display:inline;position:relative;border:1px solid blue'
+    + ((styleAttributes == null) ? '' : (';' + styleAttributes)) + '"><tr>'
+    + '<td style="width:' + width + 'px;height:' + height + 'px">';
+  for (var i = 0; i < imgUrlArr.length; i++) {
+    html += '<img';
+    if (toolTip != null) {
+      html += ' title="' + toolTip + '"';
+    }
+    html += ' style="position:absolute;top:0px;left:0px" src="' + imgUrlArr[i] + '"></img>';
+  }
+  html += '</td></tr></table>';
+  */
+
+  return html;
+}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/class/api/InfoViewer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/class/api/InfoViewer.js
new file mode 100644 (file)
index 0000000..f65d1e8
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+#module(api)
+*/
+
+/**
+ * Shows the class details.
+ */
+qx.OO.defineClass("api.InfoViewer", qx.ui.embed.HtmlEmbed,
+function() {
+  qx.ui.embed.HtmlEmbed.call(this);
+
+  this.setOverflow("auto");
+  this.setPadding(20);
+  this.setEdge(0);
+  this.setHtmlProperty("id", "InfoViewer");
+  this.setVisibility(false);
+
+  api.InfoViewer.instance = this;
+});
+
+qx.Proto.showInfo = function(classNode)
+{
+  var vHtml = "";
+
+  // Title
+  vHtml += '<h1>';
+  vHtml += '<div class="pkgtitle">package</div>';
+  vHtml += classNode.attributes.fullName;
+  vHtml += '</h1>';
+
+  // TODO: Overview of classes in this package
+
+  // Apply HTML
+  this.setHtml(vHtml);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/class/api/TreeUtil.js b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/class/api/TreeUtil.js
new file mode 100755 (executable)
index 0000000..bb90bfd
--- /dev/null
@@ -0,0 +1,356 @@
+/*
+#module(api)
+*/
+
+/**
+ * A util class for handling the documentation tree.
+ */
+qx.OO.defineClass("api.TreeUtil", qx.core.Object,
+function () {
+  qx.core.Object.call(this);
+});
+
+
+/**
+ * Gets the child of a doc node having a certain type.
+ *
+ * @param docNode {Map} the doc node to get the child of.
+ * @param childType {string} the type of the child to get.
+ * @return {Map} the wanted child or <code>null</code> if <code>docNode</code>
+ *         is <code>null</code> or has no such child.
+ */
+qx.Class.getChild = function(docNode, childType) {
+  if (docNode != null && docNode.children != null) {
+    for (var i = 0; i < docNode.children.length; i++) {
+      if (docNode.children[i].type == childType) {
+        return docNode.children[i];
+      }
+    }
+  }
+
+  return null;
+}
+
+
+/**
+ * Gets the child of a doc node having a certain attribute value.
+ *
+ * @param docNode {Map} the doc node to get the child of.
+ * @param attributeName {string} the name of the attribute the wanted child must have.
+ * @param attributeValue {string} the value of the attribute the wanted child must have.
+ * @return {Map} the wanted child or <code>code</code> if there is no such child.
+ */
+qx.Class.getChildByAttribute = function(docNode, attributeName, attributeValue) {
+  if (docNode.children != null) {
+    for (var i = 0; i < docNode.children.length; i++) {
+      var node = docNode.children[i];
+      if (node.attributes && node.attributes[attributeName] == attributeValue) {
+        return node;
+      }
+    }
+  }
+
+  return null;
+}
+
+
+/**
+ * Searches the doc node of a item. Only use this method if you don't know the
+ * type of the item.
+ *
+ * @param classNode {Map} the class node the item belongs to.
+ * @param itemName {string} the name of the item to search.
+ * @return {Map} the doc node of the item or <code>null</code> if the class has
+ *         no such item.
+ */
+qx.Class.getItemDocNode = function(classNode, itemName) {
+  var TreeUtil = api.TreeUtil;
+
+  // Go through the item lists and check whether one contains the wanted item
+  for (var i = 0; i < TreeUtil.ITEM_LIST_ARR.length; i++) {
+    var listNode = TreeUtil.getChild(classNode, TreeUtil.ITEM_LIST_ARR[i]);
+    if (listNode) {
+      var itemNode = TreeUtil.getChildByAttribute(listNode, "name", itemName);
+      if (itemNode) {
+        return itemNode;
+      }
+    }
+  }
+
+  // Nothing found
+  return null;
+}
+
+
+/**
+ * Gets the doc node of a class.
+ *
+ * @param docTree {Map} the documentation tree.
+ * @param className {string} the name of the class.
+ * @return {Map} the doc node of the class.
+ */
+qx.Class.getClassDocNode = function(docTree, className) {
+  var splits = className.split(".");
+  var currNode = docTree;
+  for (var i = 0; i < splits.length && currNode != null; i++) {
+    if (i < splits.length - 1) {
+      // The current name is a package name
+      var packages = this.getChild(currNode, "packages");
+      currNode = packages ? this.getChildByAttribute(packages, "name", splits[i]) : null;
+    } else {
+      // The current name is a class name
+      var classes = this.getChild(currNode, "classes");
+      currNode = classes ? this.getChildByAttribute(classes, "name", splits[i]) : null;
+    }
+  }
+
+  return currNode;
+}
+
+
+/**
+ * Gets the icon URL of a doc node.
+ *
+ * @param node {Map} the node to get the icon for.
+ * @param inherited {boolean,false} whether the node was inherited.
+ * @return {var} the URL of the icon. May be a string or an array of string
+ *         (in case of an overlay icon).
+ */
+qx.Class.getIconUrl = function(node, inherited) {
+  var constName;
+  switch (node.type) {
+    case "package":
+      constName = "ICON_PACKAGE";
+      break;
+    case "class":
+      constName = "ICON_CLASS";
+
+      if (node.attributes.isStatic) {
+        constName += "_STATIC";
+      } else if (node.attributes.isAbstract) {
+        constName += "_ABSTRACT";
+      }
+
+      break;
+    case "property":
+      constName = "ICON_PROPERTY";
+      break;
+    case "event":
+      constName = "ICON_EVENT";
+      break;
+    case "method":
+      var isCtor = node.attributes.name == null;
+      var isPublic = isCtor || (node.attributes.name.charAt(0) != "_");
+
+      constName = "ICON_METHOD" + (isPublic ? "_PUB" : "_PROT");
+
+      if (isCtor) {
+        constName += "_CTOR";
+      } else if (node.attributes.isStatic) {
+        constName += "_STATIC";
+      } else if (node.attributes.isAbstract) {
+        constName += "_ABSTRACT";
+      }
+
+      break;
+    case "constant":
+      constName = "ICON_CONSTANT";
+      break;
+    default: throw new Error("Unknown node type: " + node.type);
+  }
+
+  if (inherited) {
+    constName += "_INHERITED";
+  } else if (node.attributes.overriddenFrom) {
+    constName += "_OVERRIDDEN";
+  }
+
+  if (node.attributes.hasError) {
+    constName += "_ERROR";
+  } else if (node.attributes.hasWarning) {
+    constName += "_WARN";
+  }
+
+  var iconUrl = api.TreeUtil[constName];
+  if (iconUrl == null) {
+    throw new Error("Unknown img constant: " + constName);
+  }
+  return iconUrl;
+}
+
+
+/** {string[]} The names of lists containing items. */
+qx.Class.ITEM_LIST_ARR = [ "constants", "properties", "methods-pub", "methods-pub",
+                        "methods-static-prot", "methods-static-prot" ];
+
+
+/** {string} The URL of the overlay "abstract". */
+qx.Class.OVERLAY_ABSTRACT   = "api/overlay_abstract18.gif";
+/** {string} The URL of the overlay "error". */
+qx.Class.OVERLAY_ERROR      = "api/overlay_error18.gif";
+/** {string} The URL of the overlay "inherited". */
+qx.Class.OVERLAY_INHERITED  = "api/overlay_inherited18.gif";
+/** {string} The URL of the overlay "overridden". */
+qx.Class.OVERLAY_OVERRIDDEN = "api/overlay_overridden18.gif";
+/** {string} The URL of the overlay "static". */
+qx.Class.OVERLAY_STATIC     = "api/overlay_static18.gif";
+/** {string} The URL of the overlay "warning". */
+qx.Class.OVERLAY_WARN       = "api/overlay_warning18.gif";
+
+
+/** {string} The icon URL of a package. */
+qx.Class.ICON_PACKAGE      = "api/package18.gif";
+/** {string} The icon URL of a package with warning. */
+qx.Class.ICON_PACKAGE_WARN = "api/package_warning18.gif";
+
+
+/** {string} The icon URL of a class. */
+qx.Class.ICON_CLASS       = "api/class18.gif";
+/** {string} The icon URL of a class with warning. */
+qx.Class.ICON_CLASS_WARN  = "api/class_warning18.gif";
+/** {string} The icon URL of a class with error. */
+qx.Class.ICON_CLASS_ERROR = "api/class_warning18.gif";
+
+/** {string} The icon URL of a static class. */
+qx.Class.ICON_CLASS_STATIC       = "api/class_static18.gif";
+/** {string} The icon URL of a static class with warning. */
+qx.Class.ICON_CLASS_STATIC_WARN  = "api/class_static_warning18.gif";
+/** {string} The icon URL of a static class with error. */
+qx.Class.ICON_CLASS_STATIC_ERROR = "api/class_static_warning18.gif";
+
+/** {string} The icon URL of an abstract class. */
+qx.Class.ICON_CLASS_ABSTRACT       = "api/class_abstract18.gif";
+/** {string} The icon URL of an abstract class with warning. */
+qx.Class.ICON_CLASS_ABSTRACT_WARN  = "api/class_abstract_warning18.gif";
+/** {string} The icon URL of an abstract class with error. */
+qx.Class.ICON_CLASS_ABSTRACT_ERROR = "api/class_abstract_warning18.gif";
+
+
+/** {string} The icon URL of a property. */
+qx.Class.ICON_PROPERTY       = "api/property18.gif";
+/** {string[]} The icon URL of a property with warning. */
+qx.Class.ICON_PROPERTY_WARN  = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_WARN ];
+/** {string[]} The icon URL of a property with error. */
+qx.Class.ICON_PROPERTY_ERROR = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_ERROR ];
+
+/** {string[]} The icon URL of an inherited property. */
+qx.Class.ICON_PROPERTY_INHERITED       = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_INHERITED ];
+/** {string[]} The icon URL of an inherited property with warning. */
+qx.Class.ICON_PROPERTY_INHERITED_WARN  = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_WARN ];
+/** {string[]} The icon URL of an inherited property with error. */
+qx.Class.ICON_PROPERTY_INHERITED_ERROR = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_ERROR ];
+
+/** {string[]} The icon URL of an overridden property. */
+qx.Class.ICON_PROPERTY_OVERRIDDEN       = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_OVERRIDDEN ];
+/** {string[]} The icon URL of an overridden property with warning. */
+qx.Class.ICON_PROPERTY_OVERRIDDEN_WARN  = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_WARN ];
+/** {string[]} The icon URL of an overridden property with error. */
+qx.Class.ICON_PROPERTY_OVERRIDDEN_ERROR = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_ERROR ];
+
+
+/** {string} The icon URL of an event. */
+qx.Class.ICON_EVENT = "api/event18.gif";
+
+/** {string[]} The icon URL of an inherited event. */
+qx.Class.ICON_EVENT_INHERITED = [ qx.Class.ICON_EVENT, qx.Class.OVERLAY_INHERITED ];
+
+
+/** {string} The icon URL of a public method. */
+qx.Class.ICON_METHOD_PUB       = "api/method_public18.gif";
+/** {string[]} The icon URL of a public method with warning. */
+qx.Class.ICON_METHOD_PUB_WARN  = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ERROR ];
+/** {string[]} The icon URL of a public method with error. */
+qx.Class.ICON_METHOD_PUB_ERROR = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ERROR ];
+
+/** {string[]} The icon URL of an inherited public method. */
+qx.Class.ICON_METHOD_PUB_INHERITED       = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_INHERITED ];
+/** {string[]} The icon URL of an inherited public method with warning. */
+qx.Class.ICON_METHOD_PUB_INHERITED_WARN  = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_WARN ];
+/** {string[]} The icon URL of an inherited public method with error. */
+qx.Class.ICON_METHOD_PUB_INHERITED_ERROR = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_ERROR ];
+
+/** {string[]} The icon URL of an overridden public method. */
+qx.Class.ICON_METHOD_PUB_OVERRIDDEN       = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_OVERRIDDEN ];
+/** {string[]} The icon URL of an overridden public method with warning. */
+qx.Class.ICON_METHOD_PUB_OVERRIDDEN_WARN  = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_WARN ];
+/** {string[]} The icon URL of an overridden public method with error. */
+qx.Class.ICON_METHOD_PUB_OVERRIDDEN_ERROR = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_ERROR ];
+
+/** {string[]} The icon URL of a public static method. */
+qx.Class.ICON_METHOD_PUB_STATIC       = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_STATIC ];
+/** {string[]} The icon URL of a public static method with error. */
+qx.Class.ICON_METHOD_PUB_STATIC_ERROR = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_STATIC, qx.Class.OVERLAY_ERROR ];
+
+/** {string[]} The icon URL of a public abstract method. */
+qx.Class.ICON_METHOD_PUB_ABSTRACT       = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT ];
+/** {string[]} The icon URL of a public abstract method with warning. */
+qx.Class.ICON_METHOD_PUB_ABSTRACT_WARN  = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_WARN ];
+/** {string[]} The icon URL of a public abstract method with error. */
+qx.Class.ICON_METHOD_PUB_ABSTRACT_ERROR = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_ERROR ];
+
+/** {string[]} The icon URL of an overridden public abstract method. */
+qx.Class.ICON_METHOD_PUB_ABSTRACT_OVERRIDDEN       = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_OVERRIDDEN ];
+/** {string[]} The icon URL of an overridden public abstract method with warning. */
+qx.Class.ICON_METHOD_PUB_ABSTRACT_OVERRIDDEN_WARN  = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_WARN ];
+/** {string[]} The icon URL of an overridden public abstract method with error. */
+qx.Class.ICON_METHOD_PUB_ABSTRACT_OVERRIDDEN_ERROR = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_ERROR ];
+
+/** {string[]} The icon URL of an inherited public abstract method. */
+qx.Class.ICON_METHOD_PUB_ABSTRACT_INHERITED       = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_INHERITED ];
+/** {string[]} The icon URL of an inherited public abstract method with warning. */
+qx.Class.ICON_METHOD_PUB_ABSTRACT_INHERITED_WARN  = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_WARN ];
+/** {string[]} The icon URL of an inherited public abstract method with error. */
+qx.Class.ICON_METHOD_PUB_ABSTRACT_INHERITED_ERROR = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_ERROR ];
+
+
+/** {string} The icon URL of a constructor. */
+qx.Class.ICON_METHOD_PUB_CTOR       = "api/constructor18.gif";
+/** {string[]} The icon URL of a constructor with error. */
+qx.Class.ICON_METHOD_PUB_CTOR_ERROR = [ qx.Class.ICON_METHOD_PUB_CTOR, qx.Class.OVERLAY_ERROR ];
+
+
+/** {string} The icon URL of a protected method. */
+qx.Class.ICON_METHOD_PROT       = "api/method_protected18.gif";
+/** {string[]} The icon URL of a protected method with warning. */
+qx.Class.ICON_METHOD_PROT_WARN  = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ERROR ];
+/** {string[]} The icon URL of a protected method with error. */
+qx.Class.ICON_METHOD_PROT_ERROR = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ERROR ];
+
+/** {string[]} The icon URL of an inherited protected method. */
+qx.Class.ICON_METHOD_PROT_INHERITED       = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_INHERITED ];
+/** {string[]} The icon URL of an inherited protected method with warning. */
+qx.Class.ICON_METHOD_PROT_INHERITED_WARN  = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_WARN ];
+/** {string[]} The icon URL of an inherited protected method with error. */
+qx.Class.ICON_METHOD_PROT_INHERITED_ERROR = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_ERROR ];
+
+/** {string[]} The icon URL of an overridden protected method. */
+qx.Class.ICON_METHOD_PROT_OVERRIDDEN       = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_OVERRIDDEN ];
+/** {string[]} The icon URL of an overridden protected method with warning. */
+qx.Class.ICON_METHOD_PROT_OVERRIDDEN_WARN  = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_WARN ];
+/** {string[]} The icon URL of an overridden protected method with error. */
+qx.Class.ICON_METHOD_PROT_OVERRIDDEN_ERROR = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_ERROR ];
+
+/** {string[]} The icon URL of a protected static method. */
+qx.Class.ICON_METHOD_PROT_STATIC       = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_STATIC ];
+/** {string[]} The icon URL of a protected static method with error. */
+qx.Class.ICON_METHOD_PROT_STATIC_ERROR = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_STATIC, qx.Class.OVERLAY_ERROR ];
+
+/** {string[]} The icon URL of an abstract protected method. */
+qx.Class.ICON_METHOD_PROT_ABSTRACT       = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ABSTRACT ];
+/** {string[]} The icon URL of an abstract protected method with warning. */
+qx.Class.ICON_METHOD_PROT_ABSTRACT_WARN  = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_WARN ];
+/** {string[]} The icon URL of an abstract protected method with error. */
+qx.Class.ICON_METHOD_PROT_ABSTRACT_ERROR = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_ERROR ];
+
+/** {string[]} The icon URL of an inherited abstract protected method. */
+qx.Class.ICON_METHOD_PROT_ABSTRACT_INHERITED       = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_INHERITED ];
+/** {string[]} The icon URL of an inherited abstract protected method with warning. */
+qx.Class.ICON_METHOD_PROT_ABSTRACT_INHERITED_WARN  = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_WARN ];
+/** {string[]} The icon URL of an inherited abstract protected method with error. */
+qx.Class.ICON_METHOD_PROT_ABSTRACT_INHERITED_ERROR = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_ERROR ];
+
+
+/** {string} The icon URL of a constant. */
+qx.Class.ICON_CONSTANT       = "api/constant18.gif";
+/** {string[]} The icon URL of a constant with error. */
+qx.Class.ICON_CONSTANT_ERROR = [ qx.Class.ICON_CONSTANT, qx.Class.OVERLAY_ERROR ];
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/class/api/Viewer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/class/api/Viewer.js
new file mode 100755 (executable)
index 0000000..f633c0d
--- /dev/null
@@ -0,0 +1,386 @@
+/*
+#module(api)
+#resource(css:css)
+#resource(images:image)
+*/
+
+/**
+ * The API viewer. Shows the API documentation.
+ */
+qx.OO.defineClass("api.Viewer", qx.ui.layout.HorizontalBoxLayout,
+function () {
+  qx.ui.layout.HorizontalBoxLayout.call(this);
+
+  this.setEdge(0);
+
+  this._titlePrefix = this.getSetting("title") + " API Documentation";
+  document.title = this._titlePrefix;
+
+  this._tree = new qx.ui.tree.Tree("API Documentation");
+  this._tree.set({
+    backgroundColor: "white",
+    overflow: "scroll",
+    width: "22%",
+    minWidth : 150,
+    maxWidth : 300
+  });
+  this._tree.getManager().addEventListener("changeSelection", this._onTreeSelectionChange, this);
+  this.add(this._tree);
+
+  this._detailFrame = new qx.ui.layout.CanvasLayout;
+  this._detailFrame.setWidth("1*");
+  this._detailFrame.setBorder(qx.renderer.border.BorderPresets.horizontalDivider);
+  this._detailFrame.setBackgroundColor("white");
+  this._detailFrame.setHtmlProperty("id", "DetailFrame");
+  this.add(this._detailFrame);
+
+  this._detailLoader = new qx.ui.embed.HtmlEmbed('<h1><div class="please">please wait</div>Loading data...</h1>');
+  this._detailLoader.setHtmlProperty("id", "DetailLoader");
+  this._detailLoader.setMarginLeft(20);
+  this._detailLoader.setMarginTop(20);
+  this._detailFrame.add(this._detailLoader);
+
+  this._classViewer = new api.ClassViewer;
+  this._detailFrame.add(this._classViewer);
+
+  this._infoViewer = new api.InfoViewer;
+  this._detailFrame.add(this._infoViewer);
+
+  this._currentTreeType = api.Viewer.PACKAGE_TREE;
+
+  // Workaround: Since navigating in qx.ui.tree.Tree doesn't work, we've to
+  //             maintain a hash that keeps the tree nodes for class names
+  this._classTreeNodeHash = {};
+  this._classTreeNodeHash[api.Viewer.PACKAGE_TREE] = {};
+  this._classTreeNodeHash[api.Viewer.INHERITENCE_TREE] = {};
+
+  api.Viewer.instance = this;
+
+  qx.client.History.getInstance().init();
+  qx.client.History.getInstance().addEventListener("request", this._onHistoryRequest, this);
+});
+
+
+/** The documentation tree to show. */
+qx.OO.addProperty({ name:"docTree", type:"object" });
+
+
+qx.Settings.setDefault("title", "qooxdoo");
+qx.Settings.setDefault("initialTreeDepth", 1);
+
+
+// property checker
+qx.Proto._modifyDocTree = function(propValue, propOldValue, propData) {
+  this._updateTree(propValue);
+  return true;
+}
+
+
+/**
+ * Loads the API doc tree from a URL. The URL must point to a JSON encoded
+ * doc tree.
+ *
+ * @param url {string} the URL.
+ */
+qx.Proto.load = function(url)
+{
+  var req = new qx.io.remote.Request(url);
+
+  req.setTimeout(180000);
+
+  req.addEventListener("completed", function(evt)
+  {
+    var content = evt.getData().getContent();
+    this.setDocTree(eval("(" + content + ")"));
+
+    qx.ui.core.Widget.flushGlobalQueues();
+
+    // Handle bookmarks
+    if (window.location.hash) {
+      var self = this;
+      window.setTimeout(function() {
+        self.selectItem(window.location.hash.substring(1));
+      }, 0);
+    }
+
+    this._detailLoader.setHtml('<h1><div class="please">' + this.getSetting("title") +
+        '</div>API Documentation</h1>');
+
+  }, this);
+
+  req.addEventListener("failed", function(evt)
+  {
+    this.error("Couldn't load file: " + url);
+  }, this);
+
+  req.send();
+}
+
+
+/**
+ * Updates the tree on the left.
+ *
+ * @param docTree {Map} the documentation tree to use for updating.
+ */
+qx.Proto._updateTree = function(docTree) {
+  var inheritenceNode = new qx.ui.tree.TreeFolder("Inheritence hierarchy");
+  var packagesNode = new qx.ui.tree.TreeFolder("Packages");
+
+  this._tree.removeAll();
+  this._tree.add(inheritenceNode, packagesNode);
+
+  // Fille the packages tree (and fill the _topLevelClassNodeArr)
+  this._topLevelClassNodeArr = [];
+  this._fillPackageNode(packagesNode, docTree, 0);
+
+  // Sort the _topLevelClassNodeArr
+  this._topLevelClassNodeArr.sort(function (node1, node2) {
+    return (node1.attributes.fullName < node2.attributes.fullName) ? -1 : 1;
+  });
+
+  // Fill the inheritence tree
+  for (var i = 0; i < this._topLevelClassNodeArr.length; i++) {
+    this._createInheritanceNode(inheritenceNode, this._topLevelClassNodeArr[i], docTree);
+  }
+
+  packagesNode.open();
+
+  if (this._wantedClassName) {
+    this.showClassByName(this._wantedClassName);
+    this._wantedClassName = null;
+  }
+}
+
+
+/**
+ * Fills a package tree node with tree nodes for the sub packages and classes.
+ *
+ * @param treeNode {qx.ui.tree.TreeFolder} the package tree node.
+ * @param docNode {Map} the documentation node of the package.
+ */
+qx.Proto._fillPackageNode = function(treeNode, docNode, depth) {
+  var ApiViewer = api.Viewer;
+  var TreeUtil = api.TreeUtil;
+
+  var packagesDocNode = TreeUtil.getChild(docNode, "packages");
+  if (packagesDocNode && packagesDocNode.children) {
+    for (var i = 0; i < packagesDocNode.children.length; i++) {
+      var packageDocNode = packagesDocNode.children[i];
+      var iconUrl = TreeUtil.getIconUrl(packageDocNode);
+      var packageTreeNode = new qx.ui.tree.TreeFolder(packageDocNode.attributes.name, iconUrl);
+      packageTreeNode.docNode = packageDocNode;
+      treeNode.add(packageTreeNode);
+
+      this._fillPackageNode(packageTreeNode, packageDocNode, depth+1);
+
+      // Open the package node if it has child packages
+      if (depth < this.getSetting("initialTreeDepth") && TreeUtil.getChild(packageDocNode, "packages")) {
+        packageTreeNode.open();
+      }
+
+      // Register the tree node
+      this._classTreeNodeHash[ApiViewer.PACKAGE_TREE][packageDocNode.attributes.fullName] = packageTreeNode;
+    }
+  }
+
+  var classesDocNode = TreeUtil.getChild(docNode, "classes");
+  if (classesDocNode && classesDocNode.children) {
+    for (var i = 0; i < classesDocNode.children.length; i++) {
+      var classDocNode = classesDocNode.children[i];
+      var iconUrl = TreeUtil.getIconUrl(classDocNode);
+      var classTreeNode = new qx.ui.tree.TreeFolder(classDocNode.attributes.name, iconUrl);
+      classTreeNode.docNode = classDocNode;
+      classTreeNode.treeType = ApiViewer.PACKAGE_TREE;
+      treeNode.add(classTreeNode);
+
+      // Register the tree node
+      this._classTreeNodeHash[ApiViewer.PACKAGE_TREE][classDocNode.attributes.fullName] = classTreeNode;
+
+      // Check whether this is a top-level-class
+      if (classDocNode.attributes.superClass == null) {
+        this._topLevelClassNodeArr.push(classDocNode);
+      }
+    }
+  }
+}
+
+
+/**
+ * Creates the tree node for a class containing class nodes for all its child
+ * classes.
+ *
+ * @param classDocNode {Map} the documentation node of the class.
+ * @param docTree {Map} the documentation tree.
+ */
+qx.Proto._createInheritanceNode = function(parentTreeNode, classDocNode, docTree) {
+  var ApiViewer = api.Viewer;
+  var TreeUtil = api.TreeUtil;
+
+  // Create the tree node
+  var iconUrl = TreeUtil.getIconUrl(classDocNode);
+  var classTreeNode = new qx.ui.tree.TreeFolder(classDocNode.attributes.fullName, iconUrl);
+  classTreeNode.docNode = classDocNode;
+  classTreeNode.treeType = ApiViewer.INHERITENCE_TREE;
+  parentTreeNode.add(classTreeNode);
+
+  // Register the tree node
+  this._classTreeNodeHash[ApiViewer.INHERITENCE_TREE][classDocNode.attributes.fullName] = classTreeNode;
+
+  // Add all child classes
+  var childClassNameCsv = classDocNode.attributes.childClasses;
+  if (childClassNameCsv) {
+    var childClassNameArr = childClassNameCsv.split(",");
+    for (var i = 0; i < childClassNameArr.length; i++) {
+      var childClassDocNode = TreeUtil.getClassDocNode(docTree, childClassNameArr[i]);
+      this._createInheritanceNode(classTreeNode, childClassDocNode, docTree);
+    }
+  }
+}
+
+
+/**
+ * Event handler. Called when the tree selection has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onTreeSelectionChange = function(evt)
+{
+  var treeNode = evt.getData()[0];
+
+  if (treeNode && treeNode.docNode)
+  {
+    var newTitle = this._titlePrefix + " - class " + treeNode.docNode.attributes.fullName;
+
+    qx.client.History.getInstance().addToHistory(treeNode.docNode.attributes.fullName, newTitle);
+
+    this._currentTreeType = treeNode.treeType;
+
+    this._selectTreeNode(treeNode);
+
+    window.location.hash = "#" + treeNode.docNode.attributes.fullName;
+  }
+}
+
+
+qx.Proto._onHistoryRequest = function(evt)
+{
+  this.showClassByName(evt.getData());
+}
+
+qx.Proto._selectTreeNode = function(vTreeNode)
+{
+  if (!(vTreeNode && vTreeNode.docNode)) {
+    this.error("Invalid tree node: " + vTreeNode);
+  }
+
+  var vDoc = vTreeNode.docNode;
+
+  this._detailLoader.setVisibility(false);
+
+  if (vDoc.type == "class")
+  {
+    this._infoViewer.setVisibility(false);
+    this._classViewer.showClass(vDoc);
+    this._classViewer.setVisibility(true);
+  }
+  else
+  {
+    this._classViewer.setVisibility(false);
+    this._infoViewer.showInfo(vDoc);
+    this._infoViewer.setVisibility(true);
+  }
+}
+
+
+/**
+ * Selects an item (class, property, method or constant).
+ *
+ * @param fullItemName {string} the full name of the item to select.
+ *        (e.g. "qx.mypackage.MyClass" or "qx.mypackage.MyClass#myProperty")
+ */
+qx.Proto.selectItem = function(fullItemName) {
+  var className = fullItemName;
+  var itemName = null;
+  var hashPos = fullItemName.indexOf("#");
+  if (hashPos != -1) {
+    className = fullItemName.substring(0, hashPos);
+    itemName = fullItemName.substring(hashPos + 1);
+
+    var parenPos = itemName.indexOf("(");
+    if (parenPos != -1) {
+      itemName = qx.lang.String.trim(itemName.substring(0, parenPos));
+    }
+  }
+
+  this.showClassByName(className);
+  if (itemName) {
+    this._classViewer.showItem(itemName);
+  }
+}
+
+
+/**
+ * Shows a certain class.
+ *
+ * @param className {string} the name of the class to show.
+ */
+qx.Proto.showClassByName = function(className) {
+  var treeNode = this._classTreeNodeHash[this._currentTreeType][className];
+
+  if (treeNode) {
+    treeNode.setSelected(true);
+  } else if (this.getDocTree() == null) {
+    // The doc tree has not been loaded yet
+    // -> Remeber the wanted class and show when loading is done
+    this._wantedClassName = className;
+  } else {
+    this.error("Unknown class: " + className);
+  }
+}
+
+
+qx.Class.PACKAGE_TREE = 1;
+qx.Class.INHERITENCE_TREE = 2;
+
+
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if (this._tree)
+  {
+    this._tree.dispose();
+    this._tree = null;
+  }
+
+  if (this._detailFrame)
+  {
+    this._detailFrame.dispose();
+    this._detailFrame = null;
+  }
+
+  if (this._detailLoader)
+  {
+    this._detailLoader.dispose();
+    this._detailLoader = null;
+  }
+
+  if (this._classViewer)
+  {
+    this._classViewer.dispose();
+    this._classViewer = null;
+  }
+
+  if (this._infoViewer)
+  {
+    this._infoViewer.dispose();
+    this._infoViewer = null;
+  }
+
+  this._classTreeNodeHash = null;
+
+  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/index.html b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/index.html
new file mode 100755 (executable)
index 0000000..bfd1e22
--- /dev/null
@@ -0,0 +1,27 @@
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <link type="text/css" rel="stylesheet" href="resource/css/apiviewer.css"/>
+    <script type="text/javascript" src="script/api.js"></script>
+
+    <script type="text/javascript">
+      qx.dev.log.Logger.ROOT_LOGGER.setMinLevel(qx.dev.log.Logger.LEVEL_WARN);
+
+      var viewer;
+
+      qx.core.Init.getInstance().defineInitialize(function() {
+        qx.manager.object.AliasManager.getInstance().add("api", "resource/image");
+      });
+
+      qx.core.Init.getInstance().defineMain(function()
+      {
+        viewer = new api.Viewer;
+        viewer.addToDocument();
+      });
+
+      qx.core.Init.getInstance().defineFinalize(function() {
+        viewer.load("script/data.js");
+      });
+    </script>
+  </head>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/css/apiviewer.css b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/css/apiviewer.css
new file mode 100755 (executable)
index 0000000..3458c8a
--- /dev/null
@@ -0,0 +1,263 @@
+#DetailFrame,
+#DetailFrame td,
+#DetailFrame th{
+  font-family: Verdana, "Lucida Grande", "Bitstream Vera Sans", Tahoma, "Lucida Sans Unicode", Arial, sans-serif;
+  font-size: 11px;
+  line-height: 150%;
+}
+
+#DetailFrame h1,
+#DetailFrame h2,
+#DetailFrame h3,
+#DetailFrame h4,
+#DetailFrame h5,
+#DetailFrame h6{
+  font-family: "Trebuchet MS", "Lucida Grande", Verdana, sans-serif;
+  color: #134275;
+}
+
+#DetailFrame *{
+  margin-top: 0;
+  margin-bottom: 0;
+  padding-top: 0;
+  padding-bottom: 0;
+}
+
+#DetailFrame h1 {
+  font-size: 24px;
+  margin-bottom: 20px;
+}
+
+#DetailFrame h2 {
+  font-size: 18px;
+  margin-bottom: 4px;
+}
+
+#DetailFrame h3 {
+  font-size: 14px;
+}
+
+#DetailFrame img {
+  border: 0 none;
+  vertical-align: middle;
+}
+
+#DetailFrame a:link,
+#DetailFrame a:visited{
+  color: #134275;
+}
+
+#DetailFrame a:hover,
+#DetailFrame a:active{
+  color: #134275;
+  text-decoration: underline;
+}
+
+#DetailFrame td{
+  vertical-align: top;
+  padding: 2px;
+}
+
+
+
+
+
+#DetailLoader div.please{
+  font-size: 14px;
+  font-weight: normal;
+  margin-bottom: 4px;
+}
+
+
+
+
+
+
+#InfoViewer div.pkgtitle{
+  font-size: 14px;
+  font-weight: normal;
+  margin-bottom: 4px;
+}
+
+
+
+
+
+
+
+
+#ClassViewer div.classDescription{
+  font-size: 12px;
+
+  background: #E9F2FB;
+  border: 1px solid #E9F2FB;
+
+  -moz-border-radius: 5px;
+  padding: 12px;
+  padding-top: 4px;
+
+  width: 450px;
+}
+
+#ClassViewer div.classDescription p{
+  margin-top: 10px;
+}
+
+#ClassViewer div.packageName{
+  font-size: 14px;
+  font-weight: normal;
+  margin-bottom: 4px;
+}
+
+#ClassViewer span.typeInfo{
+  color: #83B300;
+  font-weight: normal;
+}
+
+
+
+
+
+
+#ClassViewer div.infoPanel {
+  margin-top: 30px;
+}
+
+#ClassViewer div.infoPanel h2{
+  cursor: default;
+}
+
+#ClassViewer div.infoPanel span.inheritCheck {
+  font-weight: normal;
+  float: right;
+  font-size: 11px;
+  vertical-align: bottom;
+}
+
+#ClassViewer div.infoPanel span.inheritCheck input,
+#ClassViewer div.infoPanel span.inheritCheck label{
+  vertical-align: middle;
+}
+
+#ClassViewer div.infoPanel span.inheritCheck label{
+  margin-left: 3px;
+}
+
+
+
+
+
+
+
+#ClassViewer table.info {
+  table-layout: fixed;
+}
+
+#ClassViewer table.info tr {
+  background: #FBFFEF;
+}
+
+#ClassViewer table.info tr.marked {
+  background: #DEFF83;
+}
+
+#ClassViewer table.info tr td,
+#ClassViewer div.empty-info-body {
+  border-top: 1px solid #ECECEC;
+}
+
+#ClassViewer table.info tr td{
+  overflow: hidden;
+}
+
+#ClassViewer table.info tr td td{
+  border-top: 0 none;
+  padding: 0;
+}
+
+#ClassViewer table.info td.icon{
+  text-align: center;
+  width: 20px;
+}
+
+#ClassViewer table.info td.type{
+  width: 100px;
+  font-size: 12px;
+  color: #83B300;
+  font-weight: bold;
+}
+
+#ClassViewer table.info td.toggle{
+  text-align: center;
+  width: 16px;
+  padding: 1px;
+}
+
+#ClassViewer table.info td.toggle img{
+  cursor: default;
+}
+
+#ClassViewer table.info td.text h3{
+  cursor: default;
+}
+
+#ClassViewer span.methodSignature{
+  font-size: 12px;
+  color: #83B300;
+}
+
+#ClassViewer table.info td.type a,
+#ClassViewer span.methodSignature a{
+  color: #83B300 !important;
+}
+
+#ClassViewer span.methodSignature span.parameterType{
+  font-style: italic;
+}
+
+#ClassViewer span.methodSignature span.separator{
+  color: #134275;
+  font-weight: bold;
+}
+
+#ClassViewer span.methodSignature span.parenthesis{
+  color: #134275;
+  font-weight: bold;
+}
+
+
+
+
+
+#ClassViewer div.item-detail-headline {
+  font-weight: bold;
+  color: #1D65B3;
+}
+
+#ClassViewer div.item-detail-text {
+  padding-left: 12px;
+}
+
+#ClassViewer div.item-detail-text p{
+  display: inline;
+}
+
+#ClassViewer div.item-detail-error {
+  font-weight: bold;
+  color: #D61F1C;
+}
+
+#ClassViewer span.item-detail-optional {
+  font-style: italic;
+}
+
+#ClassViewer code,
+#ClassViewer span.item-detail-param-name {
+  font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", monospace;
+  background: #E9F2FB;
+  padding: 1px;
+}
+
+#ClassViewer span.caps{
+  color: #134275;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class18.gif
new file mode 100755 (executable)
index 0000000..df8c929
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_abstract18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_abstract18.gif
new file mode 100755 (executable)
index 0000000..788abd7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_abstract18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_abstract_warning18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_abstract_warning18.gif
new file mode 100755 (executable)
index 0000000..135f68c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_abstract_warning18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_static18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_static18.gif
new file mode 100755 (executable)
index 0000000..5eb75ae
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_static18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_static_warning18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_static_warning18.gif
new file mode 100755 (executable)
index 0000000..75a6c72
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_static_warning18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_warning18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_warning18.gif
new file mode 100755 (executable)
index 0000000..95e7a32
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/class_warning18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/close.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/close.gif
new file mode 100755 (executable)
index 0000000..3377fb6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/close.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/constant18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/constant18.gif
new file mode 100755 (executable)
index 0000000..c3a5d0c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/constant18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/constructor18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/constructor18.gif
new file mode 100644 (file)
index 0000000..b3645ac
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/constructor18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/event18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/event18.gif
new file mode 100644 (file)
index 0000000..d3555ff
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/event18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/method_protected18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/method_protected18.gif
new file mode 100755 (executable)
index 0000000..be71bae
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/method_protected18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/method_public18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/method_public18.gif
new file mode 100755 (executable)
index 0000000..67b1785
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/method_public18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/nextlevel.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/nextlevel.gif
new file mode 100755 (executable)
index 0000000..48b81c8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/nextlevel.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/open.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/open.gif
new file mode 100755 (executable)
index 0000000..30f815a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/open.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_abstract18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_abstract18.gif
new file mode 100755 (executable)
index 0000000..16122bf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_abstract18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_constructor18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_constructor18.gif
new file mode 100755 (executable)
index 0000000..d408fe8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_constructor18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_error18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_error18.gif
new file mode 100755 (executable)
index 0000000..ffde061
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_error18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_inherited18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_inherited18.gif
new file mode 100755 (executable)
index 0000000..81e4906
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_inherited18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_overridden18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_overridden18.gif
new file mode 100755 (executable)
index 0000000..bca3e80
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_overridden18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_static18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_static18.gif
new file mode 100755 (executable)
index 0000000..4b1afa1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_static18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_warning18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_warning18.gif
new file mode 100755 (executable)
index 0000000..ce74a2a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/overlay_warning18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/package18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/package18.gif
new file mode 100755 (executable)
index 0000000..9071101
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/package18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/package_warning18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/package_warning18.gif
new file mode 100755 (executable)
index 0000000..2cb875b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/package_warning18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/property18.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/property18.gif
new file mode 100755 (executable)
index 0000000..ab4153d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/api/source/resource/image/property18.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/Makefile b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/Makefile
new file mode 100644 (file)
index 0000000..95a60c5
--- /dev/null
@@ -0,0 +1,159 @@
+###################################################################################
+# VARIABLES
+###################################################################################
+
+FRAMEWORK=../framework
+GENERATOR=$(FRAMEWORK)/tool/generator.py
+CACHE=$(FRAMEWORK)/.cache
+SOURCELOADER=
+NICE=10
+
+ifneq ($(SOURCELOADER),)
+  SOURCELDR = --source-loader-type $(SOURCELOADER)
+else
+  SOURCELDR =
+endif
+
+
+###################################################################################
+# DEFAULT TARGET
+###################################################################################
+
+all: build
+
+
+
+###################################################################################
+# COMMON TARGETS
+###################################################################################
+
+source: generate-script-source update-layout-source
+build: generate-script-build update-layout-build fix-build-rights
+sync: revision-bump build sync-qooxdoo-org
+
+
+
+###################################################################################
+# CLEANUP TARGETS
+###################################################################################
+
+clean:
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @rm -rf source/script
+
+realclean: clean
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES (REAL)"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @nice -n $(NICE) rm -rf build
+
+distclean: realclean
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES (DIST)"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @nice -n $(NICE) find . -name "*~" -o -name "*.bak" -o -name "*.old" | xargs rm -rf
+       @nice -n $(NICE) rm -rf $(CACHE)
+
+
+
+###################################################################################
+# GENERATOR TARGETS
+###################################################################################
+
+generate-script-source:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --source-script-path ../../../$(FRAMEWORK)/source/class \
+         --generate-source-script $(SOURCELDR) \
+         --source-script-file source/script/qx.js \
+         --define-runtime-setting qx.manager.object.AliasManager.resourceUri:../../../$(FRAMEWORK)/source/resource \
+         --cache-directory $(CACHE)
+
+generate-script-build:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --generate-compiled-script \
+         --compiled-script-file build/script/qx.js \
+         --optimize-strings \
+         --optimize-variables \
+         --copy-resources \
+         --resource-input $(FRAMEWORK)/source/resource \
+         --resource-output build/resource \
+         --define-runtime-setting qx.manager.object.AliasManager.resourceUri:../../resource \
+         --cache-directory $(CACHE)
+
+generate-script-build-test:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+    --script-input $(FRAMEWORK)/source/class \
+    --generate-compiled-script \
+    --compiled-script-file build/script/qx.js \
+    --optimize-strings \
+    --optimize-variables \
+    --obfuscate-identifiers --add-new-lines --add-file-ids \
+    --copy-resources \
+    --resource-input $(FRAMEWORK)/source/resource \
+    --resource-output build/resource \
+    --define-runtime-setting qx.manager.object.AliasManager.resourceUri:../../resource \
+    --cache-directory $(CACHE)
+
+
+###################################################################################
+# FILE RELATED TARGETS
+###################################################################################
+
+update-layout-source:
+       @echo
+       @echo "  CREATION OF DEMO LAYOUT (SOURCE)"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Generating..."
+       @chmod u+x tool/layout.sh && nice -n $(NICE) tool/layout.sh source/script/layout.js source/html SOURCE
+
+update-demo-build:
+       @echo
+       @echo "  CREATE COPY OF HTML FILES"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Copying files..."
+       @mkdir -p build
+       @cp -f source/index.html build/
+       @mkdir -p build/html
+       @nice -n $(NICE) rsync --recursive --links --delete --exclude=.svn source/html/* build/html
+       @mkdir -p build/resource/css
+       @nice -n $(NICE) rsync --recursive --links --delete --exclude=.svn source/resource/css/* build/resource/css
+
+update-layout-build: update-demo-build
+       @echo
+       @echo "  CREATION OF DEMO LAYOUT (BUILD)"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Generating..."
+       @chmod u+x tool/layout.sh && nice -n $(NICE) tool/layout.sh build/script/layout.js build/html BUILD
+
+fix-build-rights:
+       @echo
+       @echo "  FIX RIGHTS ON BUILD FILES"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Fixing file rights..."
+       @nice -n $(NICE) find build -type d | xargs chmod a+rx
+       @nice -n $(NICE) find build -type f | xargs chmod a+r
+
+
+
+
+
+###################################################################################
+# ONLINE TARGETS
+###################################################################################
+
+revision-bump:
+       @$(MAKE) -C ../framework revision-bump
+
+sync-qooxdoo-org:
+       @echo
+       @echo "  SYNC FILES TO HOMEPAGE"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Syncing..."
+       @nice -n $(NICE) rsync --checksum --recursive --archive --delete --verbose build/* root@qooxdoo.org:/var/www/qooxdoo/demo
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/at-a-glance/AtAGlance.js b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/at-a-glance/AtAGlance.js
new file mode 100644 (file)
index 0000000..e2570aa
--- /dev/null
@@ -0,0 +1,1303 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany
+     http://www.1und1.de | http://www.1and1.com
+     All rights reserved
+
+   License:
+     LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
+
+   Internet:
+     * http://qooxdoo.org
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+       <sebastian dot werner at 1und1 dot de>
+     * Andreas Ecker (ecker)
+       <andreas dot ecker at 1und1 dot de>
+     * Til Schneider (til132)
+       <tilman dot schneider at stz-ida dot de>
+
+************************************************************************ */
+
+qx.OO.defineClass("AtAGlance", qx.core.Object,
+function () {
+  qx.core.Object.call(this);
+
+  var barView = new qx.ui.pageview.buttonview.ButtonView;
+
+  barView.setLocation(10, 10);
+  barView.setRight(10);
+  barView.setBottom(10);
+
+  barView.addToDocument();
+
+  this._createPage(barView, "Form",             "icon/32/wordprocessor.png",    this._createFormDemo(), "threedface");
+  this._createPage(barView, "Tooltip",          "icon/32/run.png",              this._createTooltipDemo());
+  this._createPage(barView, "Menu and Toolbar", "icon/32/display.png",          this._createToolbarDemo());
+  this._createPage(barView, "Tab",              "icon/32/contents.png",         this._createTabDemo(), "threedface", true);
+  this._createPage(barView, "Tree",             "icon/32/view-sidetree.png",    this._createTreeDemo(), "threedface");
+  this._createPage(barView, "List",             "icon/32/view-detailed.png",    this._createListDemo(), "threedface");
+  this._createPage(barView, "ListView",         "icon/32/view-multicolumn.png", this._createListViewDemo(), "threedface");
+  this._createPage(barView, "Table",            "icon/32/view-multicolumn.png", this._createTableDemo(), "threedface", true);
+  this._createPage(barView, "DateChooser",      "icon/32/date.png",             this._createDateChooserDemo(), "threedface");
+  this._createPage(barView, "Native Window",    "icon/32/display.png",          this._createNativeWindowDemo(), "threedface");
+  this._createPage(barView, "Internal Window",  "icon/32/look-and-feel.png",    this._createInternalWindowDemo(), null, true);
+  this._createPage(barView, "Themes",           "icon/32/style.png",            this._createThemesDemo());
+});
+
+
+qx.Proto._createPage = function(barView, title, iconUrl, widget, backgroundColor, scrolls) {
+  var bt = new qx.ui.pageview.buttonview.Button(title, iconUrl);
+  if (barView.getBar().isEmpty()) {
+    bt.setChecked(true);
+  }
+
+  barView.getBar().add(bt);
+
+  var page = new qx.ui.pageview.buttonview.Page(bt);
+  barView.getPane().add(page);
+
+  page.set({ left:0, right:0, top:0, bottom:0 });
+
+  widget.setLocation(0, 0);
+  widget.set({ left:0, right:0, bottom:0, right:0 });
+  if (!scrolls) {
+    widget.set({ height:null, width:null, overflow:"auto" });
+  }
+
+  if (backgroundColor) {
+    page.setBackgroundColor(backgroundColor);
+  }
+
+  page.add(widget);
+
+  return page;
+}
+
+
+qx.Proto._createFormDemo = function() {
+  var main = new qx.ui.layout.VerticalBoxLayout;
+  main.setPadding(10);
+
+  var groupWidth = 285;
+
+  // fields
+  var group1 = new qx.ui.groupbox.GroupBox("Some controls", "icon/16/configure.png");
+  group1.setDimension("auto", "auto");
+  main.add(group1);
+
+  var gl = new qx.ui.layout.GridLayout;
+  group1.add(gl);
+
+  gl.setDimension(groupWidth - 26, "auto");
+  gl.setColumnCount(2);
+  gl.setRowCount(6);
+  gl.setVerticalSpacing(4);
+  gl.setHorizontalSpacing(6);
+
+  gl.setColumnWidth(0, 70);
+  gl.setColumnWidth(1, 180);
+
+  //gl.setColumnHorizontalAlignment(0, "right");
+  gl.setColumnVerticalAlignment(0, "middle");
+
+  gl.setRowHeight(0, 20);
+  gl.setRowHeight(1, 20);
+  gl.setRowHeight(2, 20);
+  gl.setRowHeight(3, 20);
+  gl.setRowHeight(4, 70);
+  gl.setRowHeight(5, 20);
+
+  gl.add(new qx.ui.basic.Label("Name"), 0, 0);
+  gl.add(new qx.ui.form.TextField, 1, 0);
+  gl.add(new qx.ui.basic.Label("Amount"), 0, 1);
+  gl.add(new qx.ui.form.Spinner, 1, 1);
+  gl.add(new qx.ui.basic.Label("Type"), 0, 2);
+
+  var combo = new qx.ui.form.ComboBox;
+  combo.add(new qx.ui.form.ListItem("CD"));    //, "icon/16/cd.png"));
+  combo.add(new qx.ui.form.ListItem("Clock"));   //, "icon/16/clock.png"));
+  combo.add(new qx.ui.form.ListItem("Modem"));   //, "icon/16/modem.png"));
+  combo.add(new qx.ui.form.ListItem("Network")); //, "icon/16/network.png"));
+  combo.add(new qx.ui.form.ListItem("Sound"));   //, "icon/16/mixer.png"));
+  combo.add(new qx.ui.form.ListItem("PDA"));   //, "icon/16/pda.png"));
+  combo.add(new qx.ui.form.ListItem("Printer")); //, "icon/16/printer.png"));
+  combo.add(new qx.ui.form.ListItem("Scanner")); //, "icon/16/scanner.png"));
+  combo.add(new qx.ui.form.ListItem("TV"));    //, "icon/16/tv.png"));
+  gl.add(combo, 1, 2);
+
+  gl.add(new qx.ui.basic.Label("E-Mail"), 0, 3);
+  gl.add(new qx.ui.form.TextField, 1, 3);
+
+  var label6 = new qx.ui.basic.Label("Comment");
+  label6.setVerticalAlign("top");
+  label6.setVerticalAlign("top");
+  gl.add(label6, 0, 4);
+
+  gl.add(new qx.ui.form.TextArea, 1, 4);
+
+  var input7 = new qx.ui.form.Button("Submit", "icon/16/apply.png");
+  input7.setHorizontalAlign("right");
+  gl.add(input7, 1, 5);
+
+  // Checkboxes
+  var group2 = new qx.ui.groupbox.GroupBox("Some settings");
+  group2.setDimension(groupWidth, "auto");
+  main.add(group2);
+
+  var bl = new qx.ui.layout.VerticalBoxLayout;
+  group2.add(bl);
+
+  bl.add(new qx.ui.form.CheckBox("Permit others to view my favorites"));
+
+  var chb = new qx.ui.form.CheckBox("Use the very high bitrate");
+  chb.setChecked(true);
+  bl.add(chb);
+
+  // Radio buttons
+  var group3 = new qx.ui.groupbox.GroupBox("Network speed", "icon/16/network.png");
+  group3.setDimension(groupWidth, "auto");
+  main.add(group3);
+
+  var bl = new qx.ui.layout.VerticalBoxLayout;
+  group3.add(bl);
+
+  var radio1 = new qx.ui.form.RadioButton("Modem");
+  var radio2 = new qx.ui.form.RadioButton("DSL");
+  var radio3 = new qx.ui.form.RadioButton("Direct link");
+  radio2.setChecked(true);
+  bl.add(radio1, radio2, radio3);
+  new qx.manager.selection.RadioManager("network", [radio1, radio2, radio3]);
+
+  return main;
+}
+
+
+qx.Proto._createTooltipDemo = function() {
+  var main = new qx.ui.layout.HorizontalBoxLayout;
+  main.setPadding(10);
+  main.setSpacing(10);
+
+  var c1 = new qx.ui.basic.Atom("Hover me", "icon/32/run.png");
+  c1.setPadding(5);
+  c1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+  c1.setBackgroundColor(new qx.renderer.color.Color("#BDD2EF"));
+  c1.setToolTip(new qx.ui.popup.ToolTip("Look at this"));
+  main.add(c1);
+
+  var c2 = new qx.ui.basic.Atom("Hover me", "icon/32/toys.png");
+  c2.setPadding(5);
+  c2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+  c2.setBackgroundColor(new qx.renderer.color.Color("#D1DFAD"));
+  c2.setToolTip(new qx.ui.popup.ToolTip("Images are also possible", "icon/16/help.png"));
+  main.add(c2);
+
+  var c3 = new qx.ui.basic.Atom("Hover me", "icon/32/penguin.png");
+  c3.setPadding(5);
+  c3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+  c3.setBackgroundColor(new qx.renderer.color.Color("#D1A4AD"));
+  var tip3 = new qx.ui.popup.ToolTip('Such a great tooltip with a show timeout of 50ms.<br>And <b>H</b><span style="color:red">T</span><i>M</i><u>L</u>', "icon/32/penguin.png");
+  tip3.setShowInterval(50);
+  c3.setToolTip(tip3);
+  main.add(c3);
+
+  return main;
+}
+
+
+qx.Proto._createToolbarDemo = function() {
+  var doc = qx.ui.core.ClientDocument.getInstance();
+
+  var main = new qx.ui.layout.VerticalBoxLayout;
+  main.setPadding(10);
+
+  // Menu
+  var m1 = new qx.ui.menu.Menu;
+  var mb1_01 = new qx.ui.menu.Button("New", "icon/16/file-new.png");
+  var mb1_02 = new qx.ui.menu.Button("Open", "icon/16/file-open.png");
+  var mb1_03 = new qx.ui.menu.Button("Save", "icon/16/file-save.png");
+  var mb1_04 = new qx.ui.menu.Button("Save as", "icon/16/file-save-as.png");
+  var mb1_05 = new qx.ui.menu.Button("Close", "icon/16/stop.png");
+  var mb1_06 = new qx.ui.menu.Button("Restore last saved", "icon/16/reload.png");
+  m1.add(mb1_01, mb1_02, mb1_03, mb1_04, mb1_05, mb1_06);
+
+  var m2 = new qx.ui.menu.Menu;
+  var mb2_01 = new qx.ui.menu.Button("Undo", "icon/16/undo.png");
+  var mb2_02 = new qx.ui.menu.Button("Redo", "icon/16/redo.png");
+  var mb2_b1 = new qx.ui.menu.Separator();
+  var mb2_03 = new qx.ui.menu.Button("Cut", "icon/16/edit-cut.png");
+  var mb2_04 = new qx.ui.menu.Button("Copy", "icon/16/edit-copy.png");
+  var mb2_05 = new qx.ui.menu.Button("Paste", "icon/16/edit-paste.png");
+  var mb2_06 = new qx.ui.menu.Button("Delete", "icon/16/edit-delete.png");
+  var mb2_b2 = new qx.ui.menu.Separator();
+  var mb2_07 = new qx.ui.menu.Button("Select All");
+  var mb2_08 = new qx.ui.menu.Button("Find", "icon/16/find.png");
+  var mb2_09 = new qx.ui.menu.Button("Find Again");
+  mb2_05.setEnabled(false);
+  mb2_06.setEnabled(false);
+  mb2_09.setEnabled(false);
+  m2.add(mb2_01, mb2_02, mb2_b1, mb2_03, mb2_04, mb2_05, mb2_06, mb2_b2, mb2_07, mb2_08, mb2_09);
+
+  var m3 = new qx.ui.menu.Menu;
+  var m3_suba = new qx.ui.menu.Menu;
+  var m3_subb = new qx.ui.menu.Menu;
+  var m3_subc = new qx.ui.menu.Menu;
+  var m3_subd = new qx.ui.menu.Menu;
+
+  var mb3_01 = new qx.ui.menu.CheckBox("File List", null, false);
+  var mb3_02 = new qx.ui.menu.CheckBox("Syntax Highlighting", null, true);
+  var mb3_03 = new qx.ui.menu.CheckBox("Statusbar", null, true);
+  var mb3_b1 = new qx.ui.menu.Separator();
+  var mb3_04 = new qx.ui.menu.Button("Printer Font", null, null, m3_suba);
+  var mb3_05 = new qx.ui.menu.Button("Editor Font", null, null, m3_subb);
+  var mb3_06 = new qx.ui.menu.Button("Export Font", null, null, m3_subc);
+  var mb3_b2 = new qx.ui.menu.Separator();
+  var mb3_07 = new qx.ui.menu.Button("Advanced", null, null, m3_subd);
+  m3.add(mb3_01, mb3_02, mb3_03, mb3_b1, mb3_04, mb3_05, mb3_06, mb3_b2, mb3_07);
+
+  var mb3_suba_01 = new qx.ui.menu.Button("Tahoma, 11pt");
+  var mb3_suba_02 = new qx.ui.menu.Button("Tahoma, 12pt");
+  var mb3_suba_03 = new qx.ui.menu.Button("Tahoma, 13pt");
+  var mb3_suba_04 = new qx.ui.menu.Button("Tahoma, 14pt");
+  var mb3_suba_05 = new qx.ui.menu.Button("Tahoma, 15pt");
+  m3_suba.add(mb3_suba_01, mb3_suba_02, mb3_suba_03, mb3_suba_04, mb3_suba_05);
+
+  var mb3_subb_01 = new qx.ui.menu.Button("Verdana, 11pt");
+  var mb3_subb_02 = new qx.ui.menu.Button("Verdana, 12pt");
+  var mb3_subb_03 = new qx.ui.menu.Button("Verdana, 13pt");
+  var mb3_subb_04 = new qx.ui.menu.Button("Verdana, 14pt");
+  var mb3_subb_05 = new qx.ui.menu.Button("Verdana, 15pt");
+  m3_subb.add(mb3_subb_01, mb3_subb_02, mb3_subb_03, mb3_subb_04, mb3_subb_05);
+
+  var mb3_subc_01 = new qx.ui.menu.Button("Courier, 11pt");
+  var mb3_subc_02 = new qx.ui.menu.Button("Courier, 12pt");
+  var mb3_subc_03 = new qx.ui.menu.Button("Courier, 13pt");
+  var mb3_subc_04 = new qx.ui.menu.Button("Courier, 14pt");
+  var mb3_subc_05 = new qx.ui.menu.Button("Courier, 15pt");
+  m3_subc.add(mb3_subc_01, mb3_subc_02, mb3_subc_03, mb3_subc_04, mb3_subc_05);
+
+  var mb3_subd_02_suba = new qx.ui.menu.Menu();
+  var mb3_subd_02_suba_01 = new qx.ui.menu.Button("First");
+  var mb3_subd_02_suba_02 = new qx.ui.menu.Button("Second");
+  var mb3_subd_02_suba_03 = new qx.ui.menu.Button("Third");
+  mb3_subd_02_suba.add(mb3_subd_02_suba_01, mb3_subd_02_suba_02, mb3_subd_02_suba_03);
+
+  var mb3_subd_01 = new qx.ui.menu.Button("First");
+  var mb3_subd_02 = new qx.ui.menu.Button("Second", null, null, mb3_subd_02_suba);
+  var mb3_subd_03 = new qx.ui.menu.Button("Third");
+
+  m3_subd.add(mb3_subd_01, mb3_subd_02, mb3_subd_03);
+
+  var m4 = new qx.ui.menu.Menu;
+  var m4_suba = new qx.ui.menu.Menu;
+
+  var mb4_01 = new qx.ui.menu.Button("View", null, null, m4_suba);
+  var mb4_b1 = new qx.ui.menu.Separator();
+  var mb4_02 = new qx.ui.menu.Button("Editor Preferences...", "icon/16/configure.png");
+  var mb4_03 = new qx.ui.menu.Button("Editor Extensions", "icon/16/connect-established.png");
+  var mb4_04 = new qx.ui.menu.Button("Framework Preferences");
+
+  m4.add(mb4_01, mb4_b1, mb4_02, mb4_03, mb4_04);
+
+  var mb4_suba_01 = new qx.ui.menu.Button("New Window");
+  var mb4_suba_b1 = new qx.ui.menu.Separator();
+  var mb4_suba_02 = new qx.ui.menu.RadioButton("Overlapping", null, true);
+  var mb4_suba_03 = new qx.ui.menu.RadioButton("Split Horizontally");
+  var mb4_suba_04 = new qx.ui.menu.RadioButton("Split Vertically");
+  var mb4_suba_b2 = new qx.ui.menu.Separator();
+  var mb4_suba_05 = new qx.ui.menu.Button("Next Window");
+  var mb4_suba_06 = new qx.ui.menu.Button("Previous Window");
+
+  m4_suba.add(mb4_suba_01, mb4_suba_b1, mb4_suba_02, mb4_suba_03, mb4_suba_04, mb4_suba_b2, mb4_suba_05, mb4_suba_06);
+
+  var mb4_manager = new qx.manager.selection.RadioManager("windowMode", [ mb4_suba_02, mb4_suba_03, mb4_suba_04 ]);
+
+  var m5 = new qx.ui.menu.Menu;
+  var mb5_01 = new qx.ui.menu.Button("Help", "icon/16/help.png");
+  var mb5_02 = new qx.ui.menu.Button("About", "icon/16/run.png");
+  m5.add(mb5_01, mb5_02);
+
+  doc.add(m1, m2, m3, m3_suba, m3_subb, m3_subc, m3_subd, mb3_subd_02_suba, m4, m4_suba, m5);
+
+  var mb1 = new qx.ui.toolbar.ToolBar;
+  var mbb1 = new qx.ui.toolbar.MenuButton("File", m1);
+  var mbb2 = new qx.ui.toolbar.MenuButton("Edit", m2);
+  var mbb3 = new qx.ui.toolbar.MenuButton("View", m3);
+  var mbb4 = new qx.ui.toolbar.MenuButton("Options", m4);
+  var mbb5 = new qx.ui.toolbar.MenuButton("Help", m5);
+  mb1.add(mbb1, mbb2, mbb3, mbb4, mbb5);
+  main.add(mb1);
+
+  // Toolbar
+  function changeLayout(e) {
+    this.setShow(e.getData());
+  }
+
+  function changeSize(e) {
+    var v = e.getData();
+    var o = v == 22 ? 32 : 22;
+
+    this.setIcon(this.getIcon().replace(o, v));
+  }
+
+  function createButton(text, icon, clazz, checked) {
+    if (! clazz) {
+      clazz = qx.ui.toolbar.Button;
+    }
+
+    var button = new clazz(text, "icon/22/" + icon + ".png");
+    doc.addEventListener("changeLayout", changeLayout, button);
+    doc.addEventListener("changeSize", changeSize, button);
+
+    if (checked) {
+      button.setChecked(true);
+    }
+
+    return button;
+  }
+
+  var tb = new qx.ui.toolbar.ToolBar;
+  main.add(tb);
+
+  var part = new qx.ui.toolbar.Part;
+  tb.add(part);
+  part.add(createButton("New", "file-new"));
+  part.add(new qx.ui.toolbar.Separator);
+  part.add(createButton("Copy",  "edit-copy"));
+  part.add(createButton("Cut",   "edit-cut"));
+  part.add(createButton("Paste", "edit-paste"));
+
+  var part = new qx.ui.toolbar.Part;
+  tb.add(part);
+  part.add(createButton("Check", "configure", qx.ui.toolbar.CheckBox, true));
+
+  var part = new qx.ui.toolbar.Part;
+  tb.add(part);
+  var radio1 = createButton("Radio1", "view-choose", qx.ui.toolbar.RadioButton);
+  var radio2 = createButton("Radio2", "view-detailed", qx.ui.toolbar.RadioButton, true);
+  var radio3 = createButton("Radio3", "view-icon", qx.ui.toolbar.RadioButton);
+  part.add(radio1, radio2, radio3);
+  new qx.manager.selection.RadioManager(null, [radio1, radio2, radio3]);
+
+  // Toolbar manipulation
+  var hor = new qx.ui.layout.HorizontalBoxLayout;
+  hor.setDimension("auto", "auto");
+  hor.set({ spacing:10, marginTop:20 });
+  main.add(hor);
+
+  var vert = new qx.ui.layout.VerticalBoxLayout;
+  vert.setDimension("auto", "auto");
+  hor.add(vert);
+
+  var radio1 = new qx.ui.form.RadioButton("Show Icons and Label", "both");
+  var radio2 = new qx.ui.form.RadioButton("Show Icons", "icon");
+  var radio3 = new qx.ui.form.RadioButton("Show Label", "label");
+  radio1.setChecked(true);
+  vert.add(radio1, radio2, radio3);
+  var rbm = new qx.manager.selection.RadioManager(null, [radio1, radio2, radio3]);
+  rbm.addEventListener("changeSelected", function(e) {
+    doc.dispatchEvent( new qx.event.type.DataEvent("changeLayout", e.getData().getValue() ) );
+  });
+
+  // Alignment
+  var vert = new qx.ui.layout.VerticalBoxLayout;
+  vert.setDimension("auto", "auto");
+  hor.add(vert);
+
+  var radio1 = new qx.ui.form.RadioButton("Left Aligned", "left");
+  var radio2 = new qx.ui.form.RadioButton("Centered", "center");
+  var radio3 = new qx.ui.form.RadioButton("Right Aligned", "right");
+  radio1.setChecked(true);
+  vert.add(radio1, radio2, radio3);
+  var rbm = new qx.manager.selection.RadioManager(null, [radio1, radio2, radio3]);
+  rbm.addEventListener("changeSelected", function(e) {
+    tb.setHorizontalChildrenAlign(e.getData().getValue());
+  });
+
+  // Icon Sizes
+  var vert = new qx.ui.layout.VerticalBoxLayout;
+  vert.setDimension("auto", "auto");
+  hor.add(vert);
+
+  var button = new qx.ui.form.Button("Icons: 22 Pixel", "icon/16/colors.png");
+  button.setHorizontalAlign("center");
+  button.addEventListener("execute", function(e) {
+    doc.dispatchEvent(new qx.event.type.DataEvent("changeSize", 22));
+  });
+  vert.add(button);
+
+  var button = new qx.ui.form.Button("Icons: 32 Pixel", "icon/16/colors.png");
+  button.setHorizontalAlign("center");
+  button.addEventListener("execute", function(e) {
+    doc.dispatchEvent(new qx.event.type.DataEvent("changeSize", 32));
+  });
+  vert.add(button);
+
+  return main;
+}
+
+
+qx.Proto._createTabDemo = function() {
+  var main = new qx.ui.layout.HorizontalBoxLayout;
+  main.setPadding(10);
+  main.set({ width:"100%", height:"100%", spacing:10 });
+
+  // Tab view
+  var tf1 = new qx.ui.pageview.tabview.TabView;
+  tf1.set({ width:"1*" });
+  main.add(tf1);
+
+  var t1_1 = new qx.ui.pageview.tabview.Button("Edit");
+  var t1_2 = new qx.ui.pageview.tabview.Button("Find");
+  var t1_3 = new qx.ui.pageview.tabview.Button("Backup");
+  t1_1.setChecked(true);
+  tf1.getBar().add(t1_1, t1_2, t1_3);
+
+  var p1_1 = new qx.ui.pageview.tabview.Page(t1_1);
+  var p1_2 = new qx.ui.pageview.tabview.Page(t1_2);
+  var p1_3 = new qx.ui.pageview.tabview.Page(t1_3);
+  tf1.getPane().add(p1_1, p1_2, p1_3);
+
+  p1_2.add(new qx.ui.form.TextField("Find Anywhere"));
+  p1_3.add(new qx.ui.form.TextField("Backup Input"));
+
+  var c1 = new qx.ui.form.CheckBox("Place bar on top");
+  var c2 = new qx.ui.form.CheckBox("Align tabs to left");
+
+  c1.setTop(0);
+  c1.setChecked(true);
+
+  c2.setTop(20);
+  c2.setChecked(true);
+
+  p1_1.add(c1, c2);
+
+  c1.addEventListener("changeChecked", function(e) {
+    tf1.setPlaceBarOnTop(e.getData());
+  });
+
+  c2.addEventListener("changeChecked", function(e) {
+    tf1.setAlignTabsToLeft(e.getData());
+  });
+
+  // Inner tab view
+  var tf2 = new qx.ui.pageview.tabview.TabView;
+  tf2.set({ left: 0, top: 50, right: 0, bottom: 0 });
+  p1_2.add(tf2);
+
+  var t2_1 = new qx.ui.pageview.tabview.Button("Search for Files", "icon/16/file-open.png");
+  var t2_2 = new qx.ui.pageview.tabview.Button("Search the Web",   "icon/16/network.png");
+  var t2_3 = new qx.ui.pageview.tabview.Button("Search in Mails",  "icon/16/mail.png");
+  t2_1.setChecked(true);
+  tf2.getBar().add(t2_1, t2_2, t2_3);
+
+  var p2_1 = new qx.ui.pageview.tabview.Page(t2_1);
+  var p2_2 = new qx.ui.pageview.tabview.Page(t2_2);
+  var p2_3 = new qx.ui.pageview.tabview.Page(t2_3);
+  tf2.getPane().add(p2_1, p2_2, p2_3);
+
+  var t2_1 = new qx.ui.form.TextField("Files...");
+  var t2_2 = new qx.ui.form.TextField("Web...");
+  var t2_3 = new qx.ui.form.TextField("Mails...");
+
+  t2_1.set({ top: 2, left: 0, width: 140 });
+  t2_2.set({ top: 2, left: 0, width: 140 });
+  t2_3.set({ top: 2, left: 0, width: 140 });
+
+  p2_1.add(t2_1);
+  p2_2.add(t2_2);
+  p2_3.add(t2_3);
+
+  var b2_1 = new qx.ui.form.Button("Search", "icon/16/search.png");
+  var b2_2 = new qx.ui.form.Button("Search", "icon/16/search.png");
+  var b2_3 = new qx.ui.form.Button("Search", "icon/16/search.png");
+
+  b2_1.set({ top: 0, left: 150 });
+  b2_2.set({ top: 0, left: 150 });
+  b2_3.set({ top: 0, left: 150 });
+
+  p2_1.add(b2_1);
+  p2_2.add(b2_2);
+  p2_3.add(b2_3);
+
+  function dosearch(e) {
+    alert("Searching...");
+  }
+
+  b2_1.addEventListener("click", dosearch);
+  b2_2.addEventListener("click", dosearch);
+  b2_3.addEventListener("click", dosearch);
+
+  // Bar view
+  var bs = new qx.ui.pageview.buttonview.ButtonView;
+  bs.set({ width:"1*", barPosition:"left" });
+  main.add(bs);
+
+  var bsb1 = new qx.ui.pageview.buttonview.Button("Display", "icon/16/display.png");
+  var bsb2 = new qx.ui.pageview.buttonview.Button("Colorize", "icon/16/colors.png");
+  var bsb3 = new qx.ui.pageview.buttonview.Button("Icons", "icon/16/icons.png");
+  var bsb4 = new qx.ui.pageview.buttonview.Button("Applications", "icon/16/run.png");
+  var bsb5 = new qx.ui.pageview.buttonview.Button("System", "icon/16/display.png");
+
+  bsb1.setChecked(true);
+
+  bsb1.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
+  bsb2.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
+  bsb3.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
+  bsb4.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
+  bsb5.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
+
+  bs.getBar().add(bsb1, bsb2, bsb3, bsb4, bsb5);
+  bs.getBar().setHorizontalChildrenAlign("center");
+  bs.getBar().setVerticalChildrenAlign("bottom");
+
+  var p1 = new qx.ui.pageview.buttonview.Page(bsb1);
+  var p2 = new qx.ui.pageview.buttonview.Page(bsb2);
+  var p3 = new qx.ui.pageview.buttonview.Page(bsb3);
+  var p4 = new qx.ui.pageview.buttonview.Page(bsb4);
+  var p5 = new qx.ui.pageview.buttonview.Page(bsb5);
+  bs.getPane().add(p1, p2, p3, p4, p5);
+
+  p1.add(new qx.ui.form.TextField("Display Input"));
+  p2.add(new qx.ui.form.TextField("Paint Input"));
+  p3.add(new qx.ui.form.TextField("Icons Input"));
+  p4.add(new qx.ui.form.TextField("Applications Input"));
+  p5.add(new qx.ui.form.TextField("System Input"));
+
+  var r1 = new qx.ui.form.RadioButton("Top", "top");
+  var r2 = new qx.ui.form.RadioButton("Right", "right");
+  var r3 = new qx.ui.form.RadioButton("Bottom", "bottom");
+  var r4 = new qx.ui.form.RadioButton("Left", "left", null, true);
+
+  r1.setTop(50);
+  r2.setTop(70);
+  r3.setTop(90);
+  r4.setTop(110);
+
+  p1.add(r1, r2, r3, r4);
+
+  var rm = new qx.manager.selection.RadioManager(null, [r1, r2, r3, r4]);
+
+  rm.addEventListener("changeSelected", function(e) {
+    bs.setBarPosition(e.getData().getValue());
+  });
+
+  return main;
+}
+
+
+qx.Proto._createTreeDemo = function() {
+  var main = new qx.ui.layout.HorizontalBoxLayout;
+  main.setPadding(10);
+  main.set({ width:"auto", height:"100%", spacing:10 });
+
+  // Workaround: qx.ui.tree.Tree causes an exception when added to a qx.ui.core.Parent that
+  //       has no qx.ui.core.Parent. -> So we give the parent a pseudo parent
+  var workaround = new qx.ui.layout.HorizontalBoxLayout;
+  workaround.add(main);
+
+  var t = new qx.ui.tree.Tree("Root");
+  t.set({ backgroundColor:255, border:qx.renderer.border.BorderPresets.getInstance().inset,
+    overflow:"scrollY", height:"100%", width:200 });
+  main.add(t);
+
+  var te1 = new qx.ui.tree.TreeFolder("Desktop", "icon/16/home.png", "icon/16/home.png");
+  t.add(te1);
+
+  var te1_1 = new qx.ui.tree.TreeFolder("Files");
+  var te1_2 = new qx.ui.tree.TreeFolder("Workspace");
+  var te1_3 = new qx.ui.tree.TreeFolder("Network");
+  var te1_4 = new qx.ui.tree.TreeFolder("Trash");
+  te1.add(te1_1, te1_2, te1_3, te1_4);
+  var te1_2_1 = new qx.ui.tree.TreeFile("Windows (C:)", "icon/16/harddrive.png");
+  var te1_2_2 = new qx.ui.tree.TreeFile("Documents (D:)", "icon/16/harddrive.png");
+  te1_2.add(te1_2_1, te1_2_2);
+
+  var te2 = new qx.ui.tree.TreeFolder("Inbox");
+  t.add(te2);
+
+  var te2_1 = new qx.ui.tree.TreeFolder("Presets");
+  var te2_2 = new qx.ui.tree.TreeFolder("Sent");
+  var te2_3 = new qx.ui.tree.TreeFolder("Trash", "icon/16/trash.png", "icon/16/trash.png");
+  var te2_4 = new qx.ui.tree.TreeFolder("Data");
+  var te2_5 = new qx.ui.tree.TreeFolder("Edit");
+
+  var te2_5_1 = new qx.ui.tree.TreeFolder("Chat");
+  var te2_5_2 = new qx.ui.tree.TreeFolder("Pustefix");
+  var te2_5_3 = new qx.ui.tree.TreeFolder("TINC");
+  te2_5.add(te2_5_1, te2_5_2, te2_5_3);
+
+  var te2_5_3_1 = new qx.ui.tree.TreeFolder("Announce");
+  var te2_5_3_2 = new qx.ui.tree.TreeFolder("Devel");
+  te2_5_3.add(te2_5_3_1, te2_5_3_2);
+
+  var te2_6 = new qx.ui.tree.TreeFolder("Lists");
+
+  var te2_6_1 = new qx.ui.tree.TreeFolder("Relations");
+  var te2_6_2 = new qx.ui.tree.TreeFolder("Company");
+  var te2_6_3 = new qx.ui.tree.TreeFolder("Questions");
+  var te2_6_4 = new qx.ui.tree.TreeFolder("Internal");
+  var te2_6_5 = new qx.ui.tree.TreeFolder("Products");
+  var te2_6_6 = new qx.ui.tree.TreeFolder("Press");
+  var te2_6_7 = new qx.ui.tree.TreeFolder("Development");
+  var te2_6_8 = new qx.ui.tree.TreeFolder("Competition");
+
+  te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
+
+  var te2_7 = new qx.ui.tree.TreeFolder("Personal");
+
+  var te2_7_1 = new qx.ui.tree.TreeFolder("Bugs");
+  var te2_7_2 = new qx.ui.tree.TreeFolder("Family");
+  var te2_7_3 = new qx.ui.tree.TreeFolder("Projects");
+  var te2_7_4 = new qx.ui.tree.TreeFolder("Holiday");
+
+  te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
+
+  var te2_8 = new qx.ui.tree.TreeFolder("Big");
+
+  for (var i = 0; i < 50; i++) {
+    te2_8.add(new qx.ui.tree.TreeFolder("Item " + i));
+  }
+
+  var te2_9 = new qx.ui.tree.TreeFolder("Spam");
+
+  te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
+
+  // Command frame
+  var commandFrame = new qx.ui.groupbox.GroupBox("Control");
+  commandFrame.set({ width:"auto", height:"auto" });
+  main.add(commandFrame);
+
+  var command = new qx.ui.layout.VerticalBoxLayout;
+  command.set({ width:"auto", height:"auto", paddingRight:12 });
+  commandFrame.add(command);
+
+  var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
+  command.add(tCurrentLabel);
+
+  var tCurrentInput = new qx.ui.form.TextField;
+  tCurrentInput.set({ readOnly:true, marginBottom:20 });
+  command.add(tCurrentInput);
+
+  t.getManager().addEventListener("changeSelection", function(e) {
+    tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
+  });
+
+  var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
+  tDoubleClick.addEventListener("changeChecked", function(e) {
+    t.setUseDoubleClick(e.getData());
+  });
+  command.add(tDoubleClick);
+
+  var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
+  tTreeLines.setChecked(true);
+  tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
+  command.add(tTreeLines);
+
+  return main;
+}
+
+
+qx.Proto._createListDemo = function() {
+  var main = new qx.ui.layout.HorizontalBoxLayout;
+  main.setPadding(10);
+  main.set({ width:"auto", height:"100%", spacing:10 });
+
+  // List
+  var list = new qx.ui.form.List;
+  list.set({ height:"100%", width:150, overflow:"scrollY" });
+  main.add(list)
+
+  var item;
+  for(var i = 1; i <= 35; i++) {
+    var iconName;
+    switch (parseInt(Math.random() * 5)) {
+      case 0: iconName = "folder.png"; break;
+      case 1: iconName = "harddrive.png"; break;
+      case 2: iconName = "penguin.png"; break;
+      case 3: iconName = "pda.png"; break;
+      case 4: iconName = "bell.png"; break;
+    }
+    item = new qx.ui.form.ListItem("Item No " + i, "icon/" + ((i % 4) ? "16" : "48") + "/" + iconName);
+
+    if (!(i % 9)) (item.setEnabled(false));
+
+    list.add(item);
+  }
+
+  // Control
+  var control = new qx.ui.layout.VerticalBoxLayout;
+  control.set({ width:"auto", height:"auto" });
+  main.add(control);
+
+  var c1 = new qx.ui.form.CheckBox("Enable Multi-Selection");
+  var c2 = new qx.ui.form.CheckBox("Enable Drag-Selection");
+  var c3 = new qx.ui.form.CheckBox("Allow Deselection");
+  var c4 = new qx.ui.form.CheckBox("Enable Inline Find");
+  control.add(c1, c2, c3, c4);
+
+  c1.setChecked(true);
+  c2.setChecked(true);
+  c3.setChecked(true);
+  c4.setChecked(true);
+
+  c1.addEventListener("changeChecked", function(e) {
+    list.getManager().setMultiSelection(e.getData());
+  });
+  c2.addEventListener("changeChecked", function(e) {
+    list.getManager().setDragSelection(e.getData());
+  });
+  c3.addEventListener("changeChecked", function(e) {
+    list.getManager().setCanDeselect(e.getData());
+  });
+  c4.addEventListener("changeChecked", function(e) {
+    list.setEnableInlineFind(e.getData());
+  });
+
+  var rd1 = new qx.ui.form.RadioButton("Show Label", "label");
+  var rd2 = new qx.ui.form.RadioButton("Show Icon", "icon");
+  var rd3 = new qx.ui.form.RadioButton("Show Both", "both");
+  rd3.setChecked(true);
+  control.add(rd1, rd2, rd3);
+  var rbm = new qx.manager.selection.RadioManager( name, [rd1, rd2, rd3]);
+
+  rbm.addEventListener("changeSelected", function(e) {
+    for (var i = 0; i < list.getChildrenLength(); i++) {
+      list.getChildren()[i].setShow(e.getData().getValue());
+    }
+  });
+
+  return main;
+}
+
+
+qx.Proto._createListViewDemo = function() {
+  var main = new qx.ui.layout.HorizontalBoxLayout;
+  main.setPadding(10);
+  main.set({ width:"auto", height:"100%", spacing:10 });
+
+  var ld = [];
+  var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+
+  for (var i = 0, t; i < 1000; i++) {
+    t = Math.round(Math.random() * 4);
+    ld.push({ name : { html : "E-Mail " + i, icon : "icon/16/email.png", iconWidth : 16, iconHeight : 16 }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }, open : { uri : "http://www.google.com/search?q=" + i, html : "Open " + i }});
+  }
+
+  var lc = {
+    name : { label : "Name", width : 120, type : "iconHtml" },
+    size: { label : "Size", width : 50, type : "text", align : "right" },
+    type : { label : "Type", width : 80, type : "text" },
+    modified : { label : "Last Modified", width : 150, type : "text" },
+    rights : { label : "Rights", width: 80, type : "text" }
+  }
+
+  var lv = new qx.ui.listview.ListView(ld, lc);
+  main.add(lv);
+
+  lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+  lv.setBackgroundColor("white");
+  lv.setWidth(600);
+  lv.setHeight(350);
+
+  return main;
+}
+
+
+qx.Proto._createTableDemo = function() {
+  // table model
+  var tableModel = new qx.ui.table.SimpleTableModel();
+  tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
+  var rowData = [];
+  var now = new Date().getTime();
+  var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
+  for (var row = 0; row < 100; row++) {
+    var date = new Date(now + Math.random() * dateRange - dateRange / 2);
+    rowData.push([ row, Math.random() * 10000, date, (Math.random() > 0.5) ]);
+  }
+  tableModel.setData(rowData);
+  tableModel.setColumnEditable(1, true);
+  tableModel.setColumnEditable(2, true);
+
+  // table
+  var table = new qx.ui.table.Table(tableModel);
+  with (table) {
+    set({ width:"100%", height:"100%" });
+    setMetaColumnCounts([1, -1]);
+    getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
+    getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
+  }
+
+  return table;
+}
+
+
+qx.Proto._createDateChooserDemo = function() {
+  var main = new qx.ui.layout.VerticalBoxLayout;
+
+  var chooser = new qx.ui.component.DateChooser;
+  chooser.setLocation(10, 10);
+  chooser.setWidth("auto");
+  chooser.setHeight("auto");
+  main.add(chooser);
+
+  return main;
+}
+
+
+qx.Proto._createNativeWindowDemo = function() {
+  var main = new qx.ui.layout.VerticalBoxLayout;
+  main.setPadding(10);
+  main.set({ width:"auto", height:"auto", spacing:5 });
+
+  var win = new qx.client.NativeWindow("http://www.google.com");
+  win.setDimension(600, 400);
+
+  var openBt = new qx.ui.form.Button("Open Native Window", "icon/16/wizard.png");
+  openBt.addEventListener("click", function() { win.open(); } );
+  main.add(openBt);
+
+  // Initial Settings
+  var fs1 = new qx.ui.groupbox.GroupBox("Initial Settings");
+  fs1.set({ width:250, height:"auto" });
+  main.add(fs1);
+
+  var vert = new qx.ui.layout.VerticalBoxLayout;
+  vert.set({ width:"auto", height:"auto" });
+  fs1.add(vert);
+
+  var chk1 = new qx.ui.form.CheckBox("Resizeable");
+  chk1.setChecked(true);
+  chk1.addEventListener("changeChecked", function(e) {
+    win.setResizeable(e.getData());
+  });
+
+  var chk2 = new qx.ui.form.CheckBox("Show Statusbar");
+  chk2.setChecked(false);
+  chk2.addEventListener("changeChecked", function(e) {
+    win.setShowStatusbar(e.getData());
+  });
+
+  var chk3 = new qx.ui.form.CheckBox("Show Menubar");
+  chk3.setChecked(false);
+  chk3.addEventListener("changeChecked", function(e) {
+    win.setShowMenubar(e.getData());
+  });
+
+  var chk4 = new qx.ui.form.CheckBox("Show Location");
+  chk4.setChecked(false);
+  chk4.addEventListener("changeChecked", function(e) {
+    win.setShowLocation(e.getData());
+  });
+
+  var chk5 = new qx.ui.form.CheckBox("Show Toolbar");
+  chk5.setChecked(false);
+  chk5.addEventListener("changeChecked", function(e) {
+    win.setShowToolbar(e.getData());
+  });
+
+  var chk6 = new qx.ui.form.CheckBox("Allow Scrollbars");
+  chk6.setChecked(true);
+  chk6.addEventListener("changeChecked", function(e) {
+    win.setAllowScrollbars(e.getData());
+  });
+
+  var chk7 = new qx.ui.form.CheckBox("Modal");
+  chk7.setChecked(false);
+  chk7.addEventListener("changeChecked", function(e) {
+    win.setModal(e.getData());
+  });
+
+  var chk8 = new qx.ui.form.CheckBox("Dependent");
+  chk8.setChecked(true);
+  chk8.addEventListener("changeChecked", function(e) {
+    win.setDependent(e.getData());
+  });
+
+  vert.add(chk1, chk2, chk3, chk4, chk5, chk6, chk7, chk8);
+
+  // Runtime Settings
+  var fs2 = new qx.ui.groupbox.GroupBox("Runtime Settings");
+  fs2.set({ width:250, height:"auto" });
+  main.add(fs2);
+
+  var vert = new qx.ui.layout.VerticalBoxLayout;
+  vert.set({ width:"auto", height:"auto", spacing:2 });
+  fs2.add(vert);
+
+  var tf1 = new qx.ui.form.TextField("http://www.google.com");
+  tf1.setWidth(150);
+
+  var setUrlBt = new qx.ui.form.Button("Set Url", "icon/16/ok.png");
+  setUrlBt.addEventListener("click", function() {
+    win.setUrl(tf1.getValue());
+  });
+
+  var hor = new qx.ui.layout.HorizontalBoxLayout;
+  hor.set({ width:"auto", height:"auto", spacing:5,
+    verticalChildrenAlign:"middle", marginBottom:10 });
+  vert.add(hor);
+  hor.add(tf1, setUrlBt);
+
+
+  var tf2 = new qx.ui.form.TextField("600");
+  tf2.setWidth(50);
+
+  var btn2 = new qx.ui.form.Button("Set Width", "icon/16/ok.png");
+  btn2.addEventListener("click", function() {
+    win.setWidth(parseInt(tf2.getValue()));
+  });
+
+  var hor = new qx.ui.layout.HorizontalBoxLayout;
+  hor.set({ width:"auto", height:"auto", spacing:5,
+    verticalChildrenAlign:"middle" });
+  vert.add(hor);
+  hor.add(tf2, btn2);
+
+
+  var tf3 = new qx.ui.form.TextField("400");
+  tf3.setWidth(50);
+
+  var btn3 = new qx.ui.form.Button("Set Height", "icon/16/ok.png");
+  btn3.addEventListener("click", function() {
+    win.setHeight(parseInt(tf3.getValue()));
+  });
+
+  var hor = new qx.ui.layout.HorizontalBoxLayout;
+  hor.set({ width:"auto", height:"auto", spacing:5,
+    verticalChildrenAlign:"middle", marginBottom:10 });
+  vert.add(hor);
+  hor.add(tf3, btn3);
+
+
+  var btn4 = new qx.ui.form.Button("Center to screen", "icon/16/display.png");
+  btn4.setWidth("100%");
+  btn4.addEventListener("click", function() {
+    win.centerToScreen()
+  });
+
+  var btn5 = new qx.ui.form.Button("Center to screen area", "icon/16/display.png");
+  btn5.setWidth("100%");
+  btn5.addEventListener("click", function() {
+    win.centerToScreenArea()
+  });
+
+  var btn6 = new qx.ui.form.Button("Center to opener", "icon/16/display.png");
+  btn6.setWidth("100%");
+  btn6.addEventListener("click", function() {
+    win.centerToOpener()
+  });
+
+  vert.add(btn4, btn5, btn6);
+
+  return main;
+}
+
+
+qx.Proto._createInternalWindowDemo = function() {
+  var doc = qx.ui.core.ClientDocument.getInstance();
+
+  var main = new qx.ui.layout.CanvasLayout;
+  main.setOverflow("hidden");
+
+  // Create the windows
+  var w1 = new qx.ui.window.Window("First Window", "icon/16/bell.png");
+  w1.setSpace(20, 400, 48, 250);
+  main.add(w1);
+
+  var w2 = new qx.ui.window.Window("Second Window", "icon/16/colors.png");
+  w2.setSpace(250, "auto", 120, "auto");
+  main.add(w2);
+
+  var w3 = new qx.ui.window.Window("Third Window", "icon/16/network.png");
+  w3.setSpace(100, "auto", 200, "auto");
+  w3.set({ maxWidth:450, maxHeight:400 });
+  main.add(w3);
+
+  var wm1 = new qx.ui.window.Window("First Modal Dialog");
+  wm1.setSpace(150, 200, 150, 200);
+  wm1.setModal(true);
+  doc.add(wm1);
+
+  var wm2 = new qx.ui.window.Window("Second Modal Dialog");
+  wm2.setSpace(100, 200, 100, 150);
+  wm2.set({ modal:true, showClose:false });
+  doc.add(wm2);
+
+  // Fill window 1
+  var a1 = new qx.ui.basic.Atom("Welcome to your first own Window.<br/>Have fun!", "icon/32/chart.png");
+  a1.set({ top: 4, left: 4 });
+  w1.add(a1);
+
+  var tf1 = new qx.ui.pageview.tabview.TabView;
+  tf1.set({ left: 10, top: 52, right: 10, bottom: 10 });
+
+  var t1_1 = new qx.ui.pageview.tabview.Button("Explore");
+  var t1_2 = new qx.ui.pageview.tabview.Button("Internet");
+  var t1_3 = new qx.ui.pageview.tabview.Button("Future");
+
+  t1_1.setChecked(true);
+
+  tf1.getBar().add(t1_1, t1_2, t1_3);
+
+  var p1_1 = new qx.ui.pageview.tabview.Page(t1_1);
+  var p1_2 = new qx.ui.pageview.tabview.Page(t1_2);
+  var p1_3 = new qx.ui.pageview.tabview.Page(t1_3);
+
+  tf1.getPane().add(p1_1, p1_2, p1_3);
+
+  w1.add(tf1);
+
+  // Fill window 2
+  var at1 = new qx.ui.basic.Atom("Your second window", "icon/22/find.png");
+  at1.setLocation(8, 8);
+  w2.add(at1);
+
+  var fs1 = new qx.ui.groupbox.GroupBox("Settings");
+  fs1.set({ left:4, top:40, right:4, bottom:4 });
+
+  var chk1 = new qx.ui.form.CheckBox("Show Icon");
+  chk1.set({ left:0, top:0, checked:true });
+  chk1.addEventListener("changeChecked", function(e) {
+    w2.setShowIcon(e.getData());
+  });
+
+  var chk2 = new qx.ui.form.CheckBox("Show Caption");
+  chk2.set({ left:0, top:20, checked:true });
+  chk2.addEventListener("changeChecked", function(e) {
+    w2.setShowCaption(e.getData());
+  });
+
+  var chk3 = new qx.ui.form.CheckBox("Resizeable");
+  chk3.set({ left:0, top:50, checked:true });
+  chk3.addEventListener("changeChecked", function(e) {
+    w2.setResizeable(e.getData());
+  });
+
+  var chk4 = new qx.ui.form.CheckBox("Moveable");
+  chk4.set({ left:0, top:70, checked:true });
+  chk4.addEventListener("changeChecked", function(e) {
+    w2.setMoveable(e.getData());
+  });
+
+  var chk5 = new qx.ui.form.CheckBox("Show Close");
+  chk5.set({ left:140, top:0, checked:true });
+  chk5.addEventListener("changeChecked", function(e) {
+    w2.setShowClose(e.getData());
+  });
+
+  var chk6 = new qx.ui.form.CheckBox("Show Maximize/Restore");
+  chk6.set({ left:140, top:20, checked:true });
+  chk6.addEventListener("changeChecked", function(e) {
+    w2.setShowMaximize(e.getData());
+  });
+
+  var chk7 = new qx.ui.form.CheckBox("Show Minimize");
+  chk7.set({ left:140, top:40, checked:true });
+  chk7.addEventListener("changeChecked", function(e) {
+    w2.setShowMinimize(e.getData());
+  });
+
+  var chk8 = new qx.ui.form.CheckBox("Allow Close");
+  chk8.set({ left:140, top:70, checked:true });
+  chk8.addEventListener("changeChecked", function(e) {
+    w2.setAllowClose(e.getData());
+  });
+
+  var chk9 = new qx.ui.form.CheckBox("Allow Maximize");
+  chk9.set({ left:140, top:90, checked:true });
+  chk9.addEventListener("changeChecked", function(e) {
+    w2.setAllowMaximize(e.getData());
+  });
+
+  var chk10 = new qx.ui.form.CheckBox("Allow Minimize");
+  chk10.set({ left:140, top:110, checked:true });
+  chk10.addEventListener("changeChecked", function(e) {
+    w2.setAllowMinimize(e.getData());
+  });
+
+  var l1 = new qx.ui.basic.Atom("Move Method", "icon/16/info.png");
+  l1.setLocation(0, 100);
+
+  var rb1 = new qx.ui.form.RadioButton("Frame", "frame");
+  rb1.setLocation(0, 120);
+
+  var rb2 = new qx.ui.form.RadioButton("Opaque", "opaque");
+  rb2.setLocation(0, 140);
+  rb2.setChecked(true);
+
+  var rb3 = new qx.ui.form.RadioButton("Translucent", "translucent");
+  rb3.setLocation(0, 160);
+
+  var rbm1 = new qx.manager.selection.RadioManager("move", [rb1, rb2, rb3]);
+
+  rbm1.addEventListener("changeSelected", function(e) {
+    w2.setMoveMethod(e.getData().getValue());
+  });
+
+  var l2 = new qx.ui.basic.Atom("Resize Method", "icon/16/info.png");
+  l2.setLocation(0, 190);
+
+  var rb4 = new qx.ui.form.RadioButton("Frame", "frame");
+  rb4.setLocation(0, 210);
+  rb4.setChecked(true);
+
+  var rb5 = new qx.ui.form.RadioButton("Opaque", "opaque");
+  rb5.setLocation(0, 230);
+
+  var rb6 = new qx.ui.form.RadioButton("Lazy Opaque", "lazyopaque");
+  rb6.setLocation(0, 250);
+
+  var rb7 = new qx.ui.form.RadioButton("Translucent", "translucent");
+  rb7.setLocation(0, 270);
+
+  var rbm2 = new qx.manager.selection.RadioManager("resize", [rb4, rb5, rb6, rb7]);
+
+  rbm2.addEventListener("changeSelected", function(e) {
+    w2.setResizeMethod(e.getData().getValue());
+  });
+
+  var chk11 = new qx.ui.form.CheckBox("Show Statusbar");
+  chk11.setLocation(140, 140);
+  chk11.setChecked(false);
+  chk11.addEventListener("changeChecked", function(e) {
+    w2.setShowStatusbar(e.getData());
+  });
+
+  var btnpack = new qx.ui.form.Button("Pack Window", "icon/16/cdrom.png");
+  btnpack.setLocation(140, 170);
+  btnpack.addEventListener("execute", function(e) {
+    w2.pack();
+  });
+
+  fs1.add(chk1, chk2, chk3, chk4, chk5, chk6, chk7, chk8, chk9, chk10, l1, rb1, rb2, rb3, l2, rb4, rb5, rb6, rb7, chk11, btnpack);
+  w2.add(fs1);
+
+  // Fill window 3
+  var btn1 = new qx.ui.form.Button("Open Modal Dialog 1", "icon/16/launch.png");
+  btn1.setLocation(4, 4);
+  w3.add(btn1);
+
+  btn1.addEventListener("execute", function(e) {
+    wm1.open();
+  });
+
+  // Fill modal window 1
+  var btn2 = new qx.ui.form.Button("Open Modal Dialog 2", "icon/16/launch.png");
+  btn2.setLocation(4, 4);
+  wm1.add(btn2);
+
+  btn2.addEventListener("execute", function(e) {
+    wm2.open();
+  });
+
+  var chkm1 = new qx.ui.form.CheckBox("Modal", null, null, true);
+  chkm1.setLocation(4, 50);
+  wm1.add(chkm1);
+
+  chkm1.addEventListener("changeChecked", function(e) {
+    wm1.setModal(e.getData());
+  });
+
+  // Fill modal window 2
+  var icon1 = new qx.ui.basic.Image("icon/32/error.png");
+  var warn1 = new qx.ui.basic.Label("Do you want to delete<br/>all your personal data?");
+
+  icon1.setTop(10);
+  icon1.setLeft(10);
+
+  warn1.setTop(10);
+  warn1.setLeft(48);
+
+  var btn3 = new qx.ui.form.Button("Yes", "icon/16/button-ok.png");
+  var btn4 = new qx.ui.form.Button("No", "icon/16/button-cancel.png");
+
+  btn3.addEventListener("execute", function(e) {
+    alert("Thank you!");
+    wm2.close();
+  });
+
+  btn4.addEventListener("execute", function(e) {
+    alert("Sorry, please click 'Yes'!");
+  });
+
+  btn3.set({ bottom : 10, right : 10 });
+  btn4.set({ bottom : 10, left : 10 });
+
+  wm2.add(btn3, btn4, icon1, warn1);
+
+  // Icon & Color Themes
+  //qx.manager.object.ImageManager.getInstance().createThemeList(w3, 20, 248);
+  //qx.manager.object.ColorManager.getInstance().createThemeList(w3, 4, 58);
+
+  w1.open();
+  w2.open();
+  w3.open();
+
+  return main;
+}
+
+
+qx.Proto._createThemesDemo = function() {
+  var doc = qx.ui.core.ClientDocument.getInstance();
+
+  // Theming window
+  var win = new qx.ui.window.Window("Theming window", "icon/16/style.png");
+  //win.set({ width:"auto", height:"auto" });
+  doc.add(win);
+
+  var vert = new qx.ui.layout.VerticalBoxLayout;
+  vert.set({ width:"auto", height:"auto", spacing:5, left:0, top:0, right:0, bottom:0 });
+  vert.setPadding(10);
+  win.add(vert);
+
+  var info = new qx.ui.basic.Atom("Click on one of the buttons and then view the "
+    + "other tabs to see the changes", "icon/32/run.png");
+  //info.set({ border:qx.renderer.border.BorderPresets.getInstance().inset, backgroundColor:"white" });
+  info.setPadding(5);
+  vert.add(info);
+
+  var hor = new qx.ui.layout.HorizontalBoxLayout;
+  hor.set({ width:"auto", height:"auto", spacing:5 });
+  vert.add(hor);
+
+  var can = new qx.ui.layout.CanvasLayout;
+  can.set({ width:"auto", height:"auto" });
+  hor.add(can);
+  qx.manager.object.ImageManager.getInstance().createThemeList(can, 0, 0);
+
+  var can = new qx.ui.layout.CanvasLayout;
+  can.set({ width:"auto", height:"auto" });
+  hor.add(can);
+  qx.manager.object.ColorManager.getInstance().createThemeList(can, 0, 0);
+
+  // Put the window in lower right corner
+  win.set({ width:"auto", height:"auto" });
+
+  // Open button
+  var main = new qx.ui.layout.VerticalBoxLayout;
+  main.setPadding(10);
+  main.set({ width:"auto", height:"auto" });
+
+  var openThemeWinBt = new qx.ui.form.Button("Open theming window", "icon/16/launch.png");
+  openThemeWinBt.addEventListener("execute", function(e) {
+    win.open();
+
+    // the following breaks in the current layouter
+    /*
+    win.setLeft(doc.getClientWidth() - win.getBoxWidth() - 5);
+    win.setTop(doc.getClientHeight() - win.getBoxHeight() - 5);
+    */
+
+    win.setLeft(doc.getClientWidth() - 500);
+    win.setTop(doc.getClientHeight() - 300);
+  });
+  main.add(openThemeWinBt);
+
+  return main;
+}
+
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/at-a-glance/index.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/at-a-glance/index.html
new file mode 100644 (file)
index 0000000..299f5bd
--- /dev/null
@@ -0,0 +1,21 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+  <script type="text/javascript" src="AtAGlance.js"></script>
+</head>
+<body>
+  <script type="text/javascript">
+    qx.dev.log.Logger.ROOT_LOGGER.setMinLevel(qx.dev.log.Logger.LEVEL_ERROR);
+
+    qx.core.Init.getInstance().defineMain(function() {
+      new AtAGlance;
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Atom_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Atom_1.html
new file mode 100644 (file)
index 0000000..4dff79c
--- /dev/null
@@ -0,0 +1,73 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>qx.ui.basic.Atom is the parent class for buttons, menu entries, icons, checkboxes. While you can do,
+    you usually don't have to instantiate qx.ui.basic.Atom directly.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    // test no1
+    var nl1 = new qx.ui.basic.Atom("Test #1", "icon/16/reload.png", 16, 16);
+    nl1.setTop(48);
+    nl1.setLeft(20);
+    nl1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    nl1.setBackgroundColor(new qx.renderer.color.Color("white"));
+    nl1.setPadding(4);
+    d.add(nl1);
+
+    // test no2
+    var nl2 = new qx.ui.basic.Atom("Test #2");
+    nl2.setTop(48);
+    nl2.setLeft(120);
+    nl2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    nl2.setBackgroundColor(new qx.renderer.color.Color("white"));
+    nl2.setPadding(4);
+    d.add(nl2);
+
+    // test no3
+    var nl3 = new qx.ui.basic.Atom(null, "icon/16/reload.png");
+    nl3.setTop(48);
+    nl3.setLeft(200);
+    nl3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    nl3.setBackgroundColor(new qx.renderer.color.Color("white"));
+    nl3.setPadding(4);
+    d.add(nl3);
+
+    // test no4
+    var nl4 = new qx.ui.basic.Atom("<span style='font-size:14px'>Some great HTML</span><br/>for <b>you</b>", "icon/32/reload.png");
+    nl4.setTop(48);
+    nl4.setLeft(250);
+    nl4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    nl4.setBackgroundColor(new qx.renderer.color.Color("white"));
+    nl4.setPadding(4);
+    d.add(nl4);
+
+    // test no5
+    var nl5 = new qx.ui.basic.Atom(qx.util.Textile.textilize("*File Information*:\nJPEG-Photo\nCreated: 01/03/05"), "icon/48/icons.png");
+    with(nl5)
+    {
+      setTop(200);
+      setLeft(20);
+      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+      setPadding(3, 6);
+    };
+    d.add(nl5);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Atom_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Atom_2.html
new file mode 100644 (file)
index 0000000..db698a7
--- /dev/null
@@ -0,0 +1,172 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Some more complex tests for qx.ui.basic.Atom.</p>
+    <p>You can change all the properties before "really creating" the object or any time after this was done.</p>
+  </div>
+
+  <div style="display:none" id="control">
+    <p>
+      Width:
+      <a href="javascript://" onclick="void(at1.setWidth(null))">null</a> |
+      <a href="javascript://" onclick="void(at1.setWidth('auto'))">auto</a> |
+      <a href="javascript://" onclick="void(at1.setWidth(25))">25</a> |
+      <a href="javascript://" onclick="void(at1.setWidth(50))">50</a> |
+      <a href="javascript://" onclick="void(at1.setWidth(100))">100</a> |
+      <a href="javascript://" onclick="void(at1.setWidth(200))">200</a>
+    </p>
+    <p>
+      Height:
+      <a href="javascript://" onclick="void(at1.setHeight(null))">null</a> |
+      <a href="javascript://" onclick="void(at1.setHeight('auto'))">auto</a> |
+      <a href="javascript://" onclick="void(at1.setHeight(25))">25</a> |
+      <a href="javascript://" onclick="void(at1.setHeight(50))">50</a> |
+      <a href="javascript://" onclick="void(at1.setHeight(100))">100</a> |
+      <a href="javascript://" onclick="void(at1.setHeight(200))">200</a>
+    </p>
+    <hr/>
+    <p>
+      Label Size:
+      <a href="javascript://" onclick="void(at1.setLabel(null))">null</a> |
+      <a href="javascript://" onclick="void(at1.setLabel('short'))">short</a> |
+      <a href="javascript://" onclick="void(at1.setLabel('some cool label'))">medium</a> |
+      <a href="javascript://" onclick="void(at1.setLabel('ultra long label description'))">long</a> |
+      <a href="javascript://" onclick="void(at1.setLabel('<b>hello <i>world</i></b>'))">html</a> |
+      <a href="javascript://" onclick="void(at1.setLabel('<p>Hello tester.</p><ul><li>cool</li><li><b>test</b></li><li>file</li></ul>'))">complex</a>
+    </p>
+    <p>
+      Icon Size:
+      <a href="javascript://" onclick="void(at1.setIcon(null))">null</a> |
+      <a href="javascript://" onclick="void(at1.setIcon('icon/16/date.png'))">16px</a> |
+      <a href="javascript://" onclick="void(at1.setIcon('icon/32/colors.png'))">32px</a> |
+      <a href="javascript://" onclick="void(at1.setIcon('icon/48/memory.png'))">48px</a>
+    </p>
+    <p>
+      Icon Position:
+      <a href="javascript://" onclick="void(at1.setIconPosition('top'))">top</a> |
+      <a href="javascript://" onclick="void(at1.setIconPosition('right'))">right</a> |
+      <a href="javascript://" onclick="void(at1.setIconPosition('bottom'))">bottom</a> |
+      <a href="javascript://" onclick="void(at1.setIconPosition('left'))">left</a>
+    </p>
+    <p>
+      Spacing:
+      <a href="javascript://" onclick="void(at1.setSpacing(0))">0</a> |
+      <a href="javascript://" onclick="void(at1.setSpacing(2))">2</a> |
+      <a href="javascript://" onclick="void(at1.setSpacing(4))">4</a> |
+      <a href="javascript://" onclick="void(at1.setSpacing(6))">6</a> |
+      <a href="javascript://" onclick="void(at1.setSpacing(8))">8</a> |
+      <a href="javascript://" onclick="void(at1.setSpacing(10))">10</a> |
+      <a href="javascript://" onclick="void(at1.setSpacing(25))">25</a> |
+      <a href="javascript://" onclick="void(at1.setSpacing(50))">50</a>
+    </p>
+    <hr/>
+    <p>
+      Show:
+      <a href="javascript://" onclick="void(at1.setShow('none'))">None</a> |
+      <a href="javascript://" onclick="void(at1.setShow('label'))">Label</a> |
+      <a href="javascript://" onclick="void(at1.setShow('icon'))">Icon</a> |
+      <a href="javascript://" onclick="void(at1.setShow('both'))">Both</a>
+    </p>
+    <hr/>
+    <p>
+      Horizontal Children Align:
+      <a href="javascript://" onclick="void(at1.setHorizontalChildrenAlign('left'))">left</a> |
+      <a href="javascript://" onclick="void(at1.setHorizontalChildrenAlign('center'))">center</a> |
+      <a href="javascript://" onclick="void(at1.setHorizontalChildrenAlign('right'))">right</a>
+    </p>
+    <p>
+      Vertical Children Align:
+      <a href="javascript://" onclick="void(at1.setVerticalChildrenAlign('top'))">top</a> |
+      <a href="javascript://" onclick="void(at1.setVerticalChildrenAlign('middle'))">middle</a> |
+      <a href="javascript://" onclick="void(at1.setVerticalChildrenAlign('bottom'))">bottom</a>
+    </p>
+    <hr/>
+    <p>
+      Padding:
+      <a href="javascript://" onclick="void(at1.setPadding(null))">None</a> |
+      <a href="javascript://" onclick="void(at1.setPadding(2, 4))">2, 4</a> |
+      <a href="javascript://" onclick="void(at1.setPadding(4, 8))">4, 8</a> |
+      <a href="javascript://" onclick="void(at1.setPadding(16))">16</a>
+    </p>
+    <p>
+      Border:
+      <a href="javascript://" onclick="void(at1.setBorder(null))">null</a> |
+      <a href="javascript://" onclick="void(at1.setBorder(new qx.renderer.border.Border(1, 'solid', 'black')))">1</a> |
+      <a href="javascript://" onclick="void(at1.setBorder(new qx.renderer.border.Border(5, 'solid', 'black')))">5</a> |
+      <a href="javascript://" onclick="void(at1.setBorder(new qx.renderer.border.Border(10, 'solid', 'black')))">10</a> |
+      <a href="javascript://" onclick="void(at1.setBorder(new qx.renderer.border.Border(25, 'solid', 'black')))">25</a> |
+      <a href="javascript://" onclick="void(at1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset))">outset</a> |
+      <a href="javascript://" onclick="void(at1.setBorder(qx.renderer.border.BorderPresets.getInstance().inset))">inset</a>
+    </p>
+    <hr/>
+    <p>
+      Opacity:
+      <a href="javascript://" onclick="void(at1.setOpacity(null))">null</a> |
+      <a href="javascript://" onclick="void(at1.setOpacity(0))">0</a> |
+      <a href="javascript://" onclick="void(at1.setOpacity(0.25))">0.25</a> |
+      <a href="javascript://" onclick="void(at1.setOpacity(0.5))">0.5</a> |
+      <a href="javascript://" onclick="void(at1.setOpacity(0.75))">0.75</a> |
+      <a href="javascript://" onclick="void(at1.setOpacity(1))">1</a>
+    </p>
+    <p>
+      Enabled:
+      <a href="javascript://" onclick="void(at1.setEnabled(false))">false</a> |
+      <a href="javascript://" onclick="void(at1.setEnabled(true))">true</a>
+    </p>
+  </div>
+
+  <script type="text/javascript">
+  var at1;
+
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    at1 = new qx.ui.basic.Atom("My first qx.ui.basic.Atom", "icon/32/colors.png");
+
+    with(at1)
+    {
+      setTop(48);
+      setLeft(20);
+
+      setIconPosition("right");
+
+      setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      setBackgroundColor(new qx.renderer.color.Color("white"));
+      setPadding(2, 4);
+    };
+
+    var ct1 = new qx.ui.basic.Label(document.getElementById("control").innerHTML);
+
+    with(ct1)
+    {
+      setWidth(300);
+      setRight(335);
+
+      setHeight(null);
+      setTop(48);
+      setBottom(48);
+
+      setOverflow("auto");
+
+      setBackgroundColor(new qx.renderer.color.Color("white"));
+      setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
+      setPadding(10);
+    };
+
+    d.add(at1, ct1);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Atom_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Atom_3.html
new file mode 100644 (file)
index 0000000..4a5db8e
--- /dev/null
@@ -0,0 +1,39 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing the new flash support for qx.ui.basic.Atom</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+      var a;
+
+      for (var i=1; i<11; i++)
+      {
+        var a = new qx.ui.basic.Atom("Flash Atom #" + i, "icon/16/reload.png", 16, 16, "./image/flash/color/file" + i + ".swf");
+
+        a.setTop(48 + ((i-1)*30));
+        a.setLeft(20);
+        a.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+        a.setBackgroundColor(new qx.renderer.color.Color("white"));
+        a.setPadding(4);
+
+        d.add(a);
+      };
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ButtonView_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ButtonView_1.html
new file mode 100644 (file)
index 0000000..19c7c6f
--- /dev/null
@@ -0,0 +1,89 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>qx.ui.pageview.buttonview.ButtonView implementation</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var bs = new qx.ui.pageview.buttonview.ButtonView;
+
+      bs.setLocation(20, 48);
+      bs.setRight(335);
+      bs.setBottom(48);
+
+      var bsb1 = new qx.ui.pageview.buttonview.Button("Display", "icon/32/display.png");
+      var bsb2 = new qx.ui.pageview.buttonview.Button("Penguin", "icon/32/penguin.png");
+      var bsb3 = new qx.ui.pageview.buttonview.Button("Colors", "icon/32/colors.png");
+      var bsb4 = new qx.ui.pageview.buttonview.Button("Icons", "icon/32/icons.png");
+      var bsb5 = new qx.ui.pageview.buttonview.Button("Paint", "icon/32/paint.png");
+      var bsb6 = new qx.ui.pageview.buttonview.Button("Applications", "icon/32/run.png");
+      var bsb7 = new qx.ui.pageview.buttonview.Button("System", "icon/32/control-center.png");
+
+      bsb1.setChecked(true);
+
+      bs.getBar().add(bsb1, bsb2, bsb3, bsb4, bsb5, bsb6, bsb7);
+
+      var p1 = new qx.ui.pageview.buttonview.Page(bsb1);
+      var p2 = new qx.ui.pageview.buttonview.Page(bsb2);
+      var p3 = new qx.ui.pageview.buttonview.Page(bsb3);
+      var p4 = new qx.ui.pageview.buttonview.Page(bsb4);
+      var p5 = new qx.ui.pageview.buttonview.Page(bsb5);
+      var p6 = new qx.ui.pageview.buttonview.Page(bsb6);
+      var p7 = new qx.ui.pageview.buttonview.Page(bsb7);
+
+      bs.getPane().add(p1, p2, p3, p4, p5, p6, p7);
+
+      var f1 = new qx.ui.form.TextField("Display Input");
+      var f2 = new qx.ui.form.TextField("Penguin Input");
+      var f3 = new qx.ui.form.TextField("Colorize Input");
+      var f4 = new qx.ui.form.TextField("Icons Input");
+      var f5 = new qx.ui.form.TextField("Paint Input");
+      var f6 = new qx.ui.form.TextField("Applications Input");
+      var f7 = new qx.ui.form.TextField("System Input");
+
+      p1.add(f1);
+      p2.add(f2);
+      p3.add(f3);
+      p4.add(f4);
+      p5.add(f5);
+      p6.add(f6);
+      p7.add(f7);
+
+      var r1 = new qx.ui.form.RadioButton("Top", "top", null, true);
+      var r2 = new qx.ui.form.RadioButton("Right", "right");
+      var r3 = new qx.ui.form.RadioButton("Bottom", "bottom");
+      var r4 = new qx.ui.form.RadioButton("Left", "left");
+
+      r1.setTop(50);
+      r2.setTop(70);
+      r3.setTop(90);
+      r4.setTop(110);
+
+      p1.add(r1, r2, r3, r4);
+
+      var rm = new qx.manager.selection.RadioManager(null, [r1, r2, r3, r4]);
+
+      rm.addEventListener("changeSelected", function(e) {
+        bs.setBarPosition(e.getData().getValue());
+      });
+
+      d.add(bs);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ButtonView_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ButtonView_2.html
new file mode 100644 (file)
index 0000000..722827a
--- /dev/null
@@ -0,0 +1,98 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Yet Another qx.ui.pageview.buttonview.ButtonView Example</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var bs = new qx.ui.pageview.buttonview.ButtonView;
+      bs.set({ left: 20, top: 48, right: 335, bottom: 48 });
+      bs.setBarPosition("left");
+
+      var bsb1 = new qx.ui.pageview.buttonview.Button("Display", "icon/16/display.png");
+      var bsb2 = new qx.ui.pageview.buttonview.Button("Organizer", "icon/16/organizer.png");
+      var bsb3 = new qx.ui.pageview.buttonview.Button("Colorize", "icon/16/colors.png");
+      var bsb4 = new qx.ui.pageview.buttonview.Button("Icons", "icon/16/icons.png");
+      var bsb5 = new qx.ui.pageview.buttonview.Button("Paint", "icon/16/paint.png");
+      var bsb6 = new qx.ui.pageview.buttonview.Button("Applications", "icon/16/run.png");
+      var bsb7 = new qx.ui.pageview.buttonview.Button("System", "icon/16/control-center.png");
+
+      bsb1.setChecked(true);
+
+      bsb1.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
+      bsb2.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
+      bsb3.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
+      bsb4.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
+      bsb5.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
+      bsb6.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
+      bsb7.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
+
+      bs.getBar().add(bsb1, bsb2, bsb3, bsb4, bsb5, bsb6, bsb7);
+
+      bs.getBar().setHorizontalChildrenAlign("center");
+      bs.getBar().setVerticalChildrenAlign("bottom");
+
+      var p1 = new qx.ui.pageview.buttonview.Page(bsb1);
+      var p2 = new qx.ui.pageview.buttonview.Page(bsb2);
+      var p3 = new qx.ui.pageview.buttonview.Page(bsb3);
+      var p4 = new qx.ui.pageview.buttonview.Page(bsb4);
+      var p5 = new qx.ui.pageview.buttonview.Page(bsb5);
+      var p6 = new qx.ui.pageview.buttonview.Page(bsb6);
+      var p7 = new qx.ui.pageview.buttonview.Page(bsb7);
+
+      bs.getPane().add(p1, p2, p3, p4, p5, p6, p7);
+
+      var f1 = new qx.ui.form.TextField("Display Input");
+      var f2 = new qx.ui.form.TextField("Sunshine Input");
+      var f3 = new qx.ui.form.TextField("Paint Input");
+      var f4 = new qx.ui.form.TextField("Icons Input");
+      var f5 = new qx.ui.form.TextField("Images Input");
+      var f6 = new qx.ui.form.TextField("Applications Input");
+      var f7 = new qx.ui.form.TextField("System Input");
+
+      p1.add(f1);
+      p2.add(f2);
+      p3.add(f3);
+      p4.add(f4);
+      p5.add(f5);
+      p6.add(f6);
+      p7.add(f7);
+
+      var r1 = new qx.ui.form.RadioButton("Top", "top");
+      var r2 = new qx.ui.form.RadioButton("Right", "right");
+      var r3 = new qx.ui.form.RadioButton("Bottom", "bottom");
+      var r4 = new qx.ui.form.RadioButton("Left", "left", null, true);
+
+      r1.setTop(50);
+      r2.setTop(70);
+      r3.setTop(90);
+      r4.setTop(110);
+
+      p1.add(r1, r2, r3, r4);
+
+      var rm = new qx.manager.selection.RadioManager(null, [r1, r2, r3, r4]);
+
+      rm.addEventListener("changeSelected", function(e) {
+        bs.setBarPosition(e.getData().getValue());
+      });
+
+      d.add(bs);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Button_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Button_1.html
new file mode 100644 (file)
index 0000000..7f26c33
--- /dev/null
@@ -0,0 +1,73 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test the qx.ui.form.Button constructor. qx.ui.form.Button is based on qx.ui.basic.Atom.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    function buttonExecute() { this.debug("Executed: " + this.getLabel()); };
+
+    var btn1 = new qx.ui.form.Button("Button No #1");
+    with(btn1)
+    {
+      setTop(48);
+      setLeft(20);
+      addEventListener("execute", buttonExecute);
+    };
+
+    d.add(btn1);
+
+
+
+    var btn2 = new qx.ui.form.Button("Button No #2");
+    with(btn2)
+    {
+      setTop(48);
+      setLeft(120);
+      addEventListener("execute", buttonExecute);
+      setEnabled(false);
+    };
+
+    d.add(btn2);
+
+
+
+    var btn3 = new qx.ui.form.Button("Button No #3");
+    with(btn3)
+    {
+      setTop(48);
+      setLeft(220);
+      addEventListener("execute", buttonExecute);
+    };
+
+    d.add(btn3);
+
+
+    var btn4 = new qx.ui.form.Button("Button No #4", "icon/16/forward.png");
+    with(btn4)
+    {
+      setTop(48);
+      setLeft(320);
+      addEventListener("execute", buttonExecute);
+    };
+
+    d.add(btn4);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/CheckBox_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/CheckBox_1.html
new file mode 100644 (file)
index 0000000..9073dc7
--- /dev/null
@@ -0,0 +1,104 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for qx.ui.form.CheckBox. qx.ui.form.CheckBox extends qx.ui.basic.Atom and so it inherits all the options and properties defined there.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var c1 = new qx.ui.form.CheckBox("Send Data to Server", "c1checked", "c1");
+    with(c1)
+    {
+      setTop(48);
+      setLeft(20);
+    };
+    d.add(c1);
+
+    var c2 = new qx.ui.form.CheckBox("Delete all Data on Server", "c2checked", "c2");
+    with(c2)
+    {
+      setTop(78);
+      setLeft(20);
+    };
+    d.add(c2);
+    c2.setChecked(true);
+
+
+    var c3 = new qx.ui.form.CheckBox("Top Checkbox", "c3checked", "c3");
+    with(c3)
+    {
+      setTop(120);
+      setLeft(20);
+      setIconPosition("top");
+    };
+    d.add(c3);
+
+    var c4 = new qx.ui.form.CheckBox("Bottom Checkbox", "c4checked", "c4");
+    with(c4)
+    {
+      setTop(120);
+      setLeft(140);
+      setIconPosition("bottom");
+    };
+    d.add(c4);
+
+
+    var c5 = new qx.ui.form.CheckBox("Left Checkbox", "c5checked", "c5");
+    with(c5)
+    {
+      setTop(180);
+      setLeft(20);
+      setIconPosition("left");
+    };
+    d.add(c5);
+
+    var c6 = new qx.ui.form.CheckBox("Right Checkbox", "c6checked", "c6");
+    with(c6)
+    {
+      setTop(180);
+      setLeft(140);
+      setIconPosition("right");
+    };
+    d.add(c6);
+
+    var c7 = new qx.ui.form.CheckBox(null, "c7checked", "c7");
+    with(c7)
+    {
+      setTop(250);
+      setLeft(20);
+    };
+    d.add(c7);
+
+    var c8 = new qx.ui.form.CheckBox(null, "c7checked", "c7");
+    with(c8)
+    {
+      setTop(300);
+      setLeft(20);
+      setLabel("Label pure");
+      setShow("label");
+      setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      setBackgroundColor(new qx.renderer.color.Color("red"));
+    };
+    d.add(c8);
+
+    c8.addEventListener("changeChecked", function(e) {
+      this.setBackgroundColor(new qx.renderer.color.Color(this.getChecked() ? "green" : "red"));
+    });
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ColorPopup_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ColorPopup_1.html
new file mode 100644 (file)
index 0000000..269d863
--- /dev/null
@@ -0,0 +1,83 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for qx.ui.component.ColorPopup.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var mybtn = new qx.ui.form.Button("Open Popup");
+    mybtn.setLocation(20, 48);
+    mybtn.addEventListener("execute", function() {
+      mypop.setTop(qx.dom.Location.getPageBoxBottom(this.getElement()));
+      mypop.setLeft(qx.dom.Location.getPageBoxLeft(this.getElement()));
+      mypop.show();
+    });
+
+    var myview = new qx.ui.basic.Label("Selected Color");
+    myview.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+    myview.setLocation(100, 48);
+    myview.setPadding(3, 6);
+    myview.setBackgroundImage("core/dotted_white.gif");
+    myview.addToDocument();
+
+    var mytables =
+    {
+      core : {
+        label : "Basic Colors",
+        values : [ "#000", "#333", "#666", "#999", "#CCC", "#FFF", "red", "green", "blue", "yellow", "teal", "maroon" ]
+      },
+
+      template : {
+        label : "Template Colors",
+        values : [ "#B07B30", "#B07BC9", "#E3AEC9", "#7A2A53" ]
+      },
+
+      recent : {
+        label : "Recent Colors",
+
+        // In this case we need named colors or rgb-value-strings, hex is not allowed currently
+        values : [ "rgb(122,195,134)", "orange" ]
+      }
+    }
+
+    var mypop = new qx.ui.component.ColorPopup(mytables);
+    mypop.setLocation(100, 100);
+    mypop.setValue(new qx.renderer.color.Color("#23F3C1"));
+
+    mybtn.addToDocument();
+    mypop.addToDocument();
+
+    mypop.addEventListener("changeValue", function(e) {
+      this.debug("Value Listener: " + e.getData());
+      myview.setBackgroundColor(e.getData());
+      myview.setBackgroundImage(e.getData() ? null : "core/dotted_white.gif");
+    });
+
+    mypop.addEventListener("changeRed", function(e) {
+      this.debug("Red Listener: " + e.getData());
+    });
+
+    mypop.addEventListener("changeGreen", function(e) {
+      this.debug("Green Listener: " + e.getData());
+    });
+
+    mypop.addEventListener("changeBlue", function(e) {
+      this.debug("Blue Listener: " + e.getData());
+    });
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ColorSelector_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ColorSelector_1.html
new file mode 100644 (file)
index 0000000..a54005f
--- /dev/null
@@ -0,0 +1,29 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for qx.ui.component.ColorSelector.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var mycolor = new qx.ui.component.ColorSelector;
+
+    mycolor.setLocation(50, 50);
+
+    qx.ui.core.ClientDocument.getInstance().add(mycolor);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ColorSelector_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ColorSelector_2.html
new file mode 100644 (file)
index 0000000..1fbf822
--- /dev/null
@@ -0,0 +1,30 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for qx.ui.component.ColorSelector.</p>
+    <p>Adding a default/previous/old color value to compare it with the new selection.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var mycolor = new qx.ui.component.ColorSelector(130, 180, 100);
+
+    mycolor.setLocation(50, 50);
+
+    qx.ui.core.ClientDocument.getInstance().add(mycolor);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ComboBoxEx_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ComboBoxEx_1.html
new file mode 100644 (file)
index 0000000..ea628b8
--- /dev/null
@@ -0,0 +1,230 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+  <script type="text/javascript">
+  
+function getTestData() {
+       var testData = [
+               [ '1', 'One' ],
+               [ '2', 'Two' ],
+               [ '3', 'Three' ],
+               [ '4', 'Four' ],
+               [ '5', 'Five' ],
+               [ '6', 'Six' ],
+               [ '7', 'Seven' ],
+               [ '8', 'Eight' ],
+               [ '9', 'Nine' ],
+               [ '10', 'Ten' ],
+               [ '11', 'Eleven' ],
+               [ '12', 'Twelve' ],
+               [ '13', 'Thirteen' ],
+               [ '14', 'Fourteen' ],
+               [ '15', 'Fiveteen' ],
+               [ '16', 'Sixteen' ],
+               [ '17', 'Seventeen' ],
+               // Test of a long string
+               [ '1921', 'One thousand nine hundred twenty one' ]
+       ];
+       for (var i = 0; i < testData.length; i++) {
+               testData[i].push('widget/arrows/'+(i % 2 ? 'up':'down')+'_small.gif');
+               testData[i].push('Extra data '+i);
+       }
+       return testData;
+}
+
+qx.OO.defineClass('Box', qx.ui.layout.BoxLayout, function() {
+       qx.ui.layout.BoxLayout.apply(this, arguments);
+       this.auto();
+});
+
+qx.OO.defineClass('GroupBox', qx.ui.groupbox.GroupBox, function() {
+       qx.ui.groupbox.GroupBox.apply(this, arguments);
+       this.auto();
+});
+
+qx.core.Init.getInstance().defineMain(function() {
+       // Shortcuts
+       var form = qx.ui.form;
+       Label = qx.ui.basic.Label;
+       var testData = getTestData();
+
+       //###1st row: combo
+       
+       combo = new form.ComboBoxEx;
+       var butSize = new form.Button('Size text field to content');
+       butSize.addEventListener('execute', function() {
+               combo.sizeTextFieldToContent();
+       });
+       
+       var boxCombo2 = new Box;
+       with (boxCombo2) {
+               setSpacing(10);
+               add(combo, butSize);
+       }
+       var boxCombo = new GroupBox('This is the ComboBoxEx under test');
+       boxCombo.add(boxCombo2);
+
+       //###2nd row: Test of simple properties
+       var cEd = new form.CheckBox('Editable');
+       cEd.setChecked(combo.getEditable());
+       cEd.addEventListener('changeChecked', function() {
+               combo.setEditable(cEd.isChecked());
+       });
+       
+       var cEnsure = new form.CheckBox('Ensure something selected');
+       cEnsure.setChecked(combo.getEnsureSomethingSelected());
+       cEnsure.addEventListener('changeChecked', function() {
+               combo.setEnsureSomethingSelected(cEnsure.isChecked());
+       });
+       
+       var cAllowSearch = new form.CheckBox('Allow searching');
+       cAllowSearch.setChecked(combo.getAllowSearch());
+       cAllowSearch.addEventListener('changeChecked', function() {
+               combo.setAllowSearch(cAllowSearch.isChecked());
+       });
+       
+       var cIdCol = new form.CheckBox('ID column visible');
+       cIdCol.setChecked(combo.isIdColumnVisible());
+       cIdCol.addEventListener('changeChecked', function() {
+               combo.setIdColumnVisible(cIdCol.isChecked());
+       });
+       
+       var fieldItems = new form.Spinner(0, 0, testData.length);
+       fieldItems._manager.addEventListener('changeValue', function() {
+               var sel = [], count = fieldItems.getValue();
+               for (var i = 0; i < count; i++) {
+                       sel.push(testData[i]);
+               }
+               combo.setSelection(sel);
+       });
+       fieldItems.setValue(15);
+       
+       var boxProp2 = new Box;
+       with (boxProp2) {
+               setSpacing(10);
+               add(cEd, cEnsure, cAllowSearch, cIdCol, new Label('Number of items in list'), fieldItems);
+       }
+       var boxProp = new GroupBox('Test of simple properties');
+       boxProp.add(boxProp2);
+
+       //###Test of headers
+       var allHeaders = [ 'ID', 'Description', 'Img', 'Extra info' ];
+       var rb1 = new form.RadioButton('1', '1');
+       var rb2 = new form.RadioButton('2', '2');
+    rb2.setChecked(true);
+       var rb3 = new form.RadioButton('3', '3');
+       var rb4 = new form.RadioButton('4', '4');
+       
+       var fieldHeaders = new qx.manager.selection.RadioManager('headers', [ rb1, rb2, rb3, rb4 ]);
+       fieldHeaders.addEventListener("changeSelected", function(e) {
+               var headers = [], count = Number(e.getData().getValue());
+               for (var i = 0; i < count; i++) {
+                       headers.push(allHeaders[i]);
+               }
+               combo.setColumnHeaders(headers);
+    });
+    
+    var butChangeHeaders = new form.Button('Add * to headers');
+    // This tests changing the headers, but not the number of columns
+    butChangeHeaders.addEventListener('execute', function() {
+               var headers = combo.getColumnHeaders();
+               for (var i = 0; i < headers.length; i++) {
+                       headers[i] += '*';
+               }
+               combo.setColumnHeaders(headers);
+    });
+    
+       var boxHeaders2 = new Box;
+       with (boxHeaders2) {
+               setSpacing(10);
+               add(new Label('# of headers'), rb1, rb2, rb3, rb4, butChangeHeaders);
+       }
+       var boxHeaders = new GroupBox('Test headers');
+       boxHeaders.add(boxHeaders2);
+       
+       var fieldMaxRows = new form.Spinner(2, combo.getMaxVisibleRows(), 20);
+       fieldMaxRows._manager.addEventListener('changeValue', function() {
+               combo.setMaxVisibleRows(fieldMaxRows.getValue());
+       });
+       var boxMaxRows = new GroupBox('Max. number of visible rows');
+       boxMaxRows.add(fieldMaxRows);
+       
+       var boxRow3 = new Box;
+       boxRow3.add(boxHeaders, boxMaxRows);
+       
+       //###Test of showOnTextField
+       var rbDesc = new form.RadioButton('Description', 'description');
+       rbDesc.setChecked(true);
+       var rbIdAndDesc = new form.RadioButton('ID and description', 'idAndDescription');
+       var fieldShowOn = new qx.manager.selection.RadioManager("showOnTextField", [ rbDesc, rbIdAndDesc ]);
+       fieldShowOn.addEventListener("changeSelected", function(e) {
+               combo.setShowOnTextField(e.getData().getValue());
+    });
+       
+       var fieldSeparator = new form.TextField;
+       fieldSeparator.setValue(combo.getIdDescriptionSeparator());
+       fieldSeparator.setWidth(50);
+       fieldSeparator.addEventListener('changeValue', function() {
+               combo.setIdDescriptionSeparator(fieldSeparator.getValue());
+       });
+       var boxShowOn2 = new Box;
+       with (boxShowOn2) {
+               setSpacing(10);
+               add(new Label('Show on text field:'), rbDesc, rbIdAndDesc, new Label('Separator between ID and description:'), fieldSeparator);
+       }
+       var boxShowOn = new GroupBox('Test showOnTextField property');
+       boxShowOn.add(boxShowOn2);
+       
+       //###Test of get/setValue
+       var fieldValue = new form.TextField;
+       var butSetValue = new form.Button('Set');
+       butSetValue.addEventListener('execute', function() {
+               combo.setValue(fieldValue.getValue());
+       });
+       var butGetValue = new form.Button('Get');
+       butGetValue.addEventListener('execute', function() {
+               fieldValue.setValue(combo.getValue());
+       });
+       var boxVal2 = new Box;
+       with (boxVal2) {
+               setSpacing(10);
+               add(fieldValue, butSetValue, butGetValue);
+       }
+       var boxVal = new GroupBox('Test value property');
+       boxVal.add(boxVal2);
+       
+       //###Main box
+       var vbox = new Box('vertical');
+       with (vbox) {
+               setSpacing(10);
+               setTop(50);
+               setLeft(30);
+               add(boxCombo, boxProp, boxRow3, boxShowOn, boxVal);
+               addToDocument();
+       }
+       combo.focus();
+});
+  </script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+  <script type="text/javascript">
+if (console.debug) {
+       with (qx.dev.log.Logger.ROOT_LOGGER) {
+               removeAllAppenders();
+               addAppender(new qx.dev.log.FireBugAppender);
+               setMinLevel(qx.dev.log.Logger.LEVEL_WARN);
+       }
+}
+  </script>
+  <div id="demoDescription">
+    <p>ComboBoxEx is an enhanced version of ComboBox</p>
+  </div>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ComboBox_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ComboBox_1.html
new file mode 100644 (file)
index 0000000..682b172
--- /dev/null
@@ -0,0 +1,101 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing ComboBox implementation.</p>
+    <p>The elements of the popup will be created on the first open of the qx.ui.form.ComboBox.</p>
+  </div>
+
+  <select style="position:absolute; left:300px; top:48px; width: 120px;">
+    <option>Item No 1</option>
+    <option>Item No 2</option>
+    <option>Item No 3</option>
+    <option>Item No 4</option>
+    <option>Item No 5</option>
+    <option>Item No 6</option>
+    <option>Item No 7</option>
+    <option>Item No 8</option>
+    <option>Item No 9</option>
+    <option disabled="true">Item No 10</option>
+    <option>Item No 11</option>
+    <option>Item No 12</option>
+    <option>Item No 13</option>
+    <option>Item No 14</option>
+    <option>Item No 15</option>
+    <option>Item No 16</option>
+    <option>Item No 17</option>
+    <option>Item No 18</option>
+    <option>Item No 19</option>
+    <option disabled="true">Item No 20</option>
+    <option>Item No 21</option>
+    <option>Item No 22</option>
+    <option>Item No 23</option>
+    <option>Item No 24</option>
+    <option>Item No 23</option>
+    <option>Item No 24</option>
+    <option>Item No 25</option>
+    <option>Item No 26</option>
+    <option>Item No 27</option>
+    <option>Item No 28</option>
+    <option>Item No 29</option>
+    <option disabled="true">Item No 30</option>
+  </select>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var c1 = new qx.ui.form.ComboBox;
+      c1.set({ top: 48, left: 20 });
+
+
+
+      var item;
+
+      for(var i=1; i<=30; i++)
+      {
+        item = new qx.ui.form.ListItem("Item No " + i);
+        !(i % 10) && (item.setEnabled(false));
+        c1.add(item);
+      };
+
+
+      c1.setSelected(c1.getList().getFirstChild());
+
+      c1.addEventListener("changeValue", function(e) {
+        this.debug("New value: " + e.getData());
+      });
+
+      c1.addEventListener("changeSelected", function(e) {
+        this.debug("New selected: " + e.getData());
+      });
+
+
+
+
+      var b1 = new qx.ui.form.CheckBox("Editable");
+
+      b1.set({ top: 50, left: 150 });
+
+      b1.addEventListener("changeChecked", function(e) {
+        c1.setEditable(e.getData());
+      });
+
+
+
+      d.add(c1, b1);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Command_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Command_1.html
new file mode 100644 (file)
index 0000000..9cf2b0e
--- /dev/null
@@ -0,0 +1,141 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>An example showing global shortcut commands in action. The commands are linked with menu-items, but 
+    could also be executed with the corresponding shortcut.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+    
+    /* comamnds */
+    var undo_cmd         = new qx.client.Command("Ctrl+Z");
+    undo_cmd.addEventListener("execute", function(){ this.debug("undo Command executed"); }, this);
+    
+    var redo_cmd         = new qx.client.Command("Ctrl+Y");
+    redo_cmd.addEventListener("execute", function(){ this.debug("redo Command executed"); }, this);
+
+    var cut_cmd          = new qx.client.Command("Ctrl+X");
+    cut_cmd.addEventListener("execute", function(){ this.debug("cut Command executed"); }, this);
+    
+    var copy_cmd         = new qx.client.Command("Ctrl+C");
+    copy_cmd.addEventListener("execute", function(){ this.debug("copy Command executed"); }, this);
+    
+    var paste_cmd        = new qx.client.Command("Ctrl+V");
+    paste_cmd.addEventListener("execute", function(){ this.debug("paste Command executed"); }, this);
+    
+    var delete_cmd       = new qx.client.Command("Del");
+    delete_cmd.addEventListener("execute", function(){ this.debug("delete Command executed"); }, this);
+    
+    var select_all_cmd   = new qx.client.Command("Ctrl+A");
+    select_all_cmd.addEventListener("execute", function(){ this.debug("select all Command executed"); }, this);
+    
+    var search_cmd       = new qx.client.Command("Ctrl+F");
+    search_cmd.addEventListener("execute", function(){ this.debug("search Command executed"); }, this);
+    
+    var search_again_cmd = new qx.client.Command("F3");
+    search_again_cmd.addEventListener("execute", function(){ this.debug("search again Command executed"); }, this);
+    
+    /* building the menu */
+    var m2 = new qx.ui.menu.Menu;
+
+    var mb2_01 = new qx.ui.menu.Button("New Window");
+    var mb2_02 = new qx.ui.menu.Button("Overlapping");
+    var mb2_03 = new qx.ui.menu.Button("Split Vertical");
+    var mb2_04 = new qx.ui.menu.Button("Split Horizontal");
+    var mb2_05 = new qx.ui.menu.Button("Next Window");
+    var mb2_06 = new qx.ui.menu.Button("Previous Window");
+
+    m2.add(mb2_01, mb2_02, mb2_03, mb2_04, mb2_05, mb2_06);
+
+
+    var m3 = new qx.ui.menu.Menu;
+
+    var mb3_01 = new qx.ui.menu.Button("Tahoma, 11pt");
+    var mb3_02 = new qx.ui.menu.Button("Tahoma, 12pt");
+    var mb3_03 = new qx.ui.menu.Button("Tahoma, 13pt");
+    var mb3_04 = new qx.ui.menu.Button("Tahoma, 14pt");
+    var mb3_05 = new qx.ui.menu.Button("Tahoma, 15pt");
+
+    m3.add(mb3_01, mb3_02, mb3_03, mb3_04, mb3_05);
+
+
+    var m1 = new qx.ui.menu.Menu;
+
+    var mb1_01 = new qx.ui.menu.Button("View/Lists");
+    var mb1_02 = new qx.ui.menu.Button("Syntax Highlighting");
+    var ms1    = new qx.ui.menu.Separator();
+    var mb1_03 = new qx.ui.menu.Button("Window Font");
+    var mb1_04 = new qx.ui.menu.Button("Printer Font", null, null, m3);
+    var ms2    = new qx.ui.menu.Separator();
+    var mb1_05 = new qx.ui.menu.Button("Undo", null, undo_cmd);
+    var mb1_06 = new qx.ui.menu.Button("Redo", null, redo_cmd);
+    var ms3    = new qx.ui.menu.Separator();
+    var mb1_07 = new qx.ui.menu.Button("Cut", "icon/16/edit-cut.png", cut_cmd);
+    var mb1_08 = new qx.ui.menu.Button("Copy", "icon/16/edit-copy.png", copy_cmd);
+    var mb1_09 = new qx.ui.menu.Button("Paste", "icon/16/edit-paste.png", paste_cmd);
+    var mb1_10 = new qx.ui.menu.Button("Delete", "icon/16/edit-delete.png", delete_cmd);
+    var mb1_11 = new qx.ui.menu.Button("Select All", null, select_all_cmd);
+    var ms4    = new qx.ui.menu.Separator();
+    var mb1_12 = new qx.ui.menu.Button("Search", null, search_cmd);
+    var mb1_13 = new qx.ui.menu.Button("Search Again", null, search_again_cmd);
+    var ms5    = new qx.ui.menu.Separator();
+    var mb1_14 = new qx.ui.menu.Button("View", null, null, m2);
+    var mb1_15 = new qx.ui.menu.Button("Editor Settings...");
+    var mb1_16 = new qx.ui.menu.Button("Editor Plugins");
+    var mb1_17 = new qx.ui.menu.Button("Framework Settings");
+
+    m1.add(mb1_01, mb1_02, ms1, mb1_03, mb1_04, ms2, mb1_05, mb1_06, ms3, mb1_07, mb1_08, mb1_09, mb1_10, mb1_11, ms4, mb1_12, mb1_13, ms5, mb1_14, mb1_15, mb1_16, mb1_17);
+
+
+    d.add(m1, m2, m3);
+
+
+    var w1 = new qx.ui.form.Button("Open");
+
+    w1.setTop(48);
+    w1.setLeft(20);
+
+    w1.addEventListener("click", function(e)
+    {
+      if (m1.isSeeable())
+      {
+        m1.hide();
+      }
+      else
+      {
+        var el = this.getElement();
+
+        m1.setLeft(qx.dom.Location.getPageBoxLeft(el));
+        m1.setTop(qx.dom.Location.getPageBoxBottom(el));
+
+        m1.show();
+      };
+
+      e.setPropagationStopped(true);
+    });
+
+    w1.addEventListener("mousedown", function(e)
+    {
+      e.setPropagationStopped(true);
+    });
+
+
+    d.add(w1);    
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Command_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Command_2.html
new file mode 100644 (file)
index 0000000..46b490e
--- /dev/null
@@ -0,0 +1,186 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>An example showing global shortcut commands in action. The commands are linked with menu-items, but 
+    could also be executed with the corresponding shortcut.</p>
+    <p>An objectmanager is used to disable/enable a specific command (del-Key) to make available for text-editing
+    in the textfield of the window. When the window is closed the command gets re-enabled.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+    
+    /* comamnds */
+    var undo_cmd         = new qx.client.Command("Ctrl+Z");
+    undo_cmd.addEventListener("execute", function(){ this.debug("undo Command executed"); }, this);
+    
+    var redo_cmd         = new qx.client.Command("Ctrl+Y");
+    redo_cmd.addEventListener("execute", function(){ this.debug("redo Command executed"); }, this);
+
+    var cut_cmd          = new qx.client.Command("Ctrl+X");
+    cut_cmd.addEventListener("execute", function(){ this.debug("cut Command executed"); }, this);
+    
+    var copy_cmd         = new qx.client.Command("Ctrl+C");
+    copy_cmd.addEventListener("execute", function(){ this.debug("copy Command executed"); }, this);
+    
+    var paste_cmd        = new qx.client.Command("Ctrl+V");
+    paste_cmd.addEventListener("execute", function(){ this.debug("paste Command executed"); }, this);
+    
+    var delete_cmd       = new qx.client.Command("Del");
+    delete_cmd.addEventListener("execute", function(){ this.debug("delete Command executed"); }, this);
+    
+    var select_all_cmd   = new qx.client.Command("Ctrl+A");
+    select_all_cmd.addEventListener("execute", function(){ this.debug("select all Command executed"); }, this);
+    
+    var search_cmd       = new qx.client.Command("Ctrl+F");
+    search_cmd.addEventListener("execute", function(){ this.debug("search Command executed"); }, this);
+    
+    var search_again_cmd = new qx.client.Command("F3");
+    search_again_cmd.addEventListener("execute", function(){ this.debug("search again Command executed"); }, this);
+    
+
+    /* objectmanager for all commands which should be disabled when opening the window */
+    var cmd_manager = new qx.manager.object.ObjectManager;
+    cmd_manager.add(delete_cmd);
+    
+    
+    /* building the menu */
+    var m2 = new qx.ui.menu.Menu;
+
+    var mb2_01 = new qx.ui.menu.Button("New Window");
+    var mb2_02 = new qx.ui.menu.Button("Overlapping");
+    var mb2_03 = new qx.ui.menu.Button("Split Vertical");
+    var mb2_04 = new qx.ui.menu.Button("Split Horizontal");
+    var mb2_05 = new qx.ui.menu.Button("Next Window");
+    var mb2_06 = new qx.ui.menu.Button("Previous Window");
+
+    m2.add(mb2_01, mb2_02, mb2_03, mb2_04, mb2_05, mb2_06);
+
+
+    var m3 = new qx.ui.menu.Menu;
+
+    var mb3_01 = new qx.ui.menu.Button("Tahoma, 11pt");
+    var mb3_02 = new qx.ui.menu.Button("Tahoma, 12pt");
+    var mb3_03 = new qx.ui.menu.Button("Tahoma, 13pt");
+    var mb3_04 = new qx.ui.menu.Button("Tahoma, 14pt");
+    var mb3_05 = new qx.ui.menu.Button("Tahoma, 15pt");
+
+    m3.add(mb3_01, mb3_02, mb3_03, mb3_04, mb3_05);
+
+
+    var m1 = new qx.ui.menu.Menu;
+
+    var mb1_01 = new qx.ui.menu.Button("View/Lists");
+    var mb1_02 = new qx.ui.menu.Button("Syntax Highlighting");
+    var ms1    = new qx.ui.menu.Separator();
+    var mb1_03 = new qx.ui.menu.Button("Window Font");
+    var mb1_04 = new qx.ui.menu.Button("Printer Font", null, null, m3);
+    var ms2    = new qx.ui.menu.Separator();
+    var mb1_05 = new qx.ui.menu.Button("Undo", null, undo_cmd);
+    var mb1_06 = new qx.ui.menu.Button("Redo", null, redo_cmd);
+    var ms3    = new qx.ui.menu.Separator();
+    var mb1_07 = new qx.ui.menu.Button("Cut", "icon/16/edit-cut.png", cut_cmd);
+    var mb1_08 = new qx.ui.menu.Button("Copy", "icon/16/edit-copy.png", copy_cmd);
+    var mb1_09 = new qx.ui.menu.Button("Paste", "icon/16/edit-paste.png", paste_cmd);
+    var mb1_10 = new qx.ui.menu.Button("Delete", "icon/16/edit-delete.png", delete_cmd);
+    var mb1_11 = new qx.ui.menu.Button("Select All", null, select_all_cmd);
+    var ms4    = new qx.ui.menu.Separator();
+    var mb1_12 = new qx.ui.menu.Button("Search", null, search_cmd);
+    var mb1_13 = new qx.ui.menu.Button("Search Again", null, search_again_cmd);
+    var ms5    = new qx.ui.menu.Separator();
+    var mb1_14 = new qx.ui.menu.Button("View", null, null, m2);
+    var mb1_15 = new qx.ui.menu.Button("Editor Settings...");
+    var mb1_16 = new qx.ui.menu.Button("Editor Plugins");
+    var mb1_17 = new qx.ui.menu.Button("Framework Settings");
+
+    m1.add(mb1_01, mb1_02, ms1, mb1_03, mb1_04, ms2, mb1_05, mb1_06, ms3, mb1_07, mb1_08, mb1_09, mb1_10, mb1_11, ms4, mb1_12, mb1_13, ms5, mb1_14, mb1_15, mb1_16, mb1_17);
+
+
+    d.add(m1, m2, m3);
+
+
+    /* button to open menu */
+    var w1 = new qx.ui.form.Button("Open");
+
+    w1.setTop(48);
+    w1.setLeft(20);
+
+    w1.addEventListener("click", function(e)
+    {
+      if (m1.isSeeable())
+      {
+        m1.hide();
+      }
+      else
+      {
+        var el = this.getElement();
+
+        m1.setLeft(qx.dom.Location.getPageBoxLeft(el));
+        m1.setTop(qx.dom.Location.getPageBoxBottom(el));
+
+        m1.show();
+      };
+
+      e.setPropagationStopped(true);
+    });
+
+    w1.addEventListener("mousedown", function(e)
+    {
+      e.setPropagationStopped(true);
+    });
+    
+    
+    /* window */
+    var window1 = new qx.ui.window.Window("Test");
+    window1.set({ top: 100, left: 100, width: 300, height: 200, allowMaximize: false, allowMinimize: false });
+    
+    window1.addEventListener("beforeAppear", function(e){
+      textField.setValue("");
+    });
+    
+    window1.addEventListener("beforeDisappear", function(e){
+      cmd_manager.enableAll();
+    });
+    
+    /* label */
+    var label1 = new qx.ui.basic.Label("Please enter your Name");
+    label1.setTop(20);
+    label1.setLeft(8);
+    
+    /* textfield */
+    var textField = new qx.ui.form.TextField;
+    textField.setTop(20);
+    textField.setLeft(140);
+    
+    window1.add(label1, textField);
+    
+    
+    /* button to open window */
+    var w2 = new qx.ui.form.Button("Open Window");
+    w2.setTop(48);
+    w2.setLeft(100);
+    
+    w2.addEventListener("execute", function(e){
+      cmd_manager.disableAll();
+      window1.open();
+    });
+    
+
+    d.add(w1, window1, w2);    
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/DateChooser_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/DateChooser_1.html
new file mode 100644 (file)
index 0000000..582ca8b
--- /dev/null
@@ -0,0 +1,31 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>The DateChooser shows calendar and allows choosing a date.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var chooser = new qx.ui.component.DateChooser;
+    chooser.setLocation(10, 50);
+    chooser.setWidth("auto");
+    chooser.setHeight("auto");
+    d.add(chooser);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Drag_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Drag_1.html
new file mode 100644 (file)
index 0000000..3347f13
--- /dev/null
@@ -0,0 +1,57 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Show one way to drag a widget around the screen.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+    
+    var a1 = new qx.ui.basic.Atom("Drag Me");
+    a1.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove });
+    a1.setPadding(10);
+    a1.setLocation(20, 48); 
+    d.add(a1);
+
+    
+    a1.addEventListener("mousedown", handleMouseDown);
+    a1.addEventListener("mousemove", handleMouseMove);
+    a1.addEventListener("mouseup", handleMouseUp);
+    
+    function handleMouseDown(e)
+    {
+      this.setCapture(true);
+      a1._offsetX = e.getPageX() - a1.getLeft();
+      a1._offsetY = e.getPageY() - a1.getTop();
+    }
+    
+    function handleMouseMove(e)
+    {
+      if (this.getCapture())
+      {
+        a1.setLeft(e.getPageX() - a1._offsetX);
+        a1.setTop(e.getPageY() - a1._offsetY);
+      }
+    }
+          
+    function handleMouseUp(e)
+    {
+      this.setCapture(false);
+    }
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fields_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fields_1.html
new file mode 100644 (file)
index 0000000..96e86a4
--- /dev/null
@@ -0,0 +1,107 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Some tests for some of the most used properties of qx.ui.core.Widget (coordinates, dimensions, backgroundColor, opacity, ...).</p>
+    <p>Also here are the first test of some widgets which extend qx.ui.core.Widget: qx.ui.form.TextField and qx.ui.form.PasswordField. These extended
+    widgets also interacts like the basic QxWidgets with the qx.event.handler.FocusHandler.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    function textChange(e) {
+      this.debug("Text changed: " + e.getData());
+    }
+
+    var t1 = new qx.ui.form.TextField;
+    t1.setValue("textfield");
+    t1.setTop(48);
+    t1.setLeft(20);
+
+    t1.addEventListener("changeValue", textChange);
+    t1.addEventListener("input", function(e) {
+      this.debug("Input: " + e.getData());
+    });
+
+    d.add(t1);
+
+
+
+
+    var t2 = new qx.ui.form.PasswordField;
+    t2.setValue("passwordfield");
+    t2.setTop(80);
+    t2.setLeft(20);
+
+    t2.addEventListener("changeValue", textChange);
+
+    d.add(t2);
+
+
+    var t3 = new qx.ui.form.TextArea;
+    t3.setValue("textarea");
+    t3.setTop(110);
+    t3.setLeft(20);
+    t3.setWidth(300);
+    t3.setHeight(60);
+
+    t3.addEventListener("changeValue", textChange);
+
+    d.add(t3);
+
+
+    var t4 = new qx.ui.form.TextField;
+    t4.setValue("textfield");
+    t4.setTop(200);
+    t4.setLeft(20);
+    t4.setWidth(200);
+    t4.setMaxLength(100);
+    t4.setReadOnly(true);
+
+    t4.addEventListener("changeValue", textChange);
+
+    d.add(t4);
+
+
+    var t5 = new qx.ui.form.TextField;
+    t5.setValue("You are foo!");
+    t5.setTop(240);
+    t5.setLeft(20);
+
+    t5.addEventListener("changeValue", textChange);
+
+    d.add(t5);
+
+
+
+    var t6 = new qx.ui.form.TextField;
+    t6.setTop(270);
+    t6.setLeft(20);
+
+    t6.addEventListener("changeText", textChange);
+    t6.addEventListener("input", function(e) {
+      this.debug("Input: " + e.getData());
+    });
+
+    t6.addEventListener("keydown", function(e) {
+      this.debug("Keypress: " + e.getKeyIdentifier());
+    });
+
+    d.add(t6);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Flash_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Flash_1.html
new file mode 100644 (file)
index 0000000..3e2f0ce
--- /dev/null
@@ -0,0 +1,53 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Simple test for qx.ui.embed.Flash.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    // Try no version required
+    var fo1 = new qx.ui.embed.Flash("./image/flash/fo_tester.swf");
+
+    // Try version 7 required
+    // var fo1 = new qx.ui.embed.Flash("image/flash/fo_tester.swf", "7");
+
+    // Try version 9 required
+    // var fo1 = new qx.ui.embed.Flash("image/flash/fo_tester.swf", "9");
+
+    // Error handling methods:
+    // #1: Enable Express Install: Available in Flash Players >= 6.0.65
+    // fo1.setEnableExpressInstall(true);
+    // #2: Enable Redirect URL: Jump to an installer page
+    // fo1.setRedirectUrl("http://www.google.de");
+
+    fo1.setVariable("flashVarText", "this is passed in via FlashVars");
+    fo1.setScale("noscale");
+
+    fo1.setLeft(20);
+    fo1.setRight(335);
+    fo1.setTop(48);
+    fo1.setBottom(48);
+
+    fo1.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+    fo1.setBackgroundColor("#FF6600");
+
+    d.add(fo1);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1.html
new file mode 100644 (file)
index 0000000..81d745c
--- /dev/null
@@ -0,0 +1,26 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>
+    Simple test of a finite state machine.  This is a sufficiently simple
+    application that using a finite state machine really doesn't make sense,
+    but it is illustrative of how to use it.  This FSM has two states.
+    </p>
+  </div>
+
+  <script type="text/javascript" src="Fsm_1/main.js"></script>
+  <script type="text/javascript" src="Fsm_1/fsm.js"></script>
+  <script type="text/javascript" src="Fsm_1/gui.js"></script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1/fsm.js b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1/fsm.js
new file mode 100644 (file)
index 0000000..50cdc25
--- /dev/null
@@ -0,0 +1,297 @@
+/*
+ * Initialize the finite state machine.
+ *
+ * This finite state machine has two states: Idle and AwaitRpcResult.
+ *
+ * In the Idle state, the Send button is enabled, the Abort button is
+ * disabled, and the three color bars are blue.  In the AwaitRpcResult state,
+ * the Send button is disabled, the Abort button is enabled, and three color
+ * bars are red.  All of these changes occur via automatic, table-driven
+ * function calls in autoActionsXXX() objects, not via explicit code.  This
+ * demonstrates how groups of objects can all be manipulated together without
+ * having to write lots of code to do so.  Just as these color blocks change
+ * color, numerous widgets could be disabled/hidden/etc., without writing code
+ * to futz with all of them.
+ */
+function initFsm()
+{
+  // Create a new finite state machine
+  var fsm = new qx.util.fsm.FiniteStateMachine("Fsm_1");
+
+  // For this simple example application, show all debug messages.
+  qx.Settings.setCustomOfClass(
+    "qx.util.fsm.FiniteStateMachine",
+    "debugFlags",
+    (qx.util.fsm.FiniteStateMachine.DebugFlags.EVENTS |
+     qx.util.fsm.FiniteStateMachine.DebugFlags.TRANSITIONS |
+     qx.util.fsm.FiniteStateMachine.DebugFlags.FUNCTION_DETAIL |
+     qx.util.fsm.FiniteStateMachine.DebugFlags.OBJECT_NOT_FOUND));
+
+  /*
+   * State: Idle
+   *
+   * Actions upon entry:
+   *  button_send.setEnabled(true);
+   *  button_abort.setEnabled(false);
+   *  change background of objects in group "group_color_change" to blue
+   *
+   * Transition on:
+   *  "execute" on button_send
+   */
+  var state = new qx.util.fsm.State(
+    "State_Idle",
+    {
+      "autoActionsBeforeOnentry" :
+      {
+        // The name of a function.
+        "setEnabled" :
+        [
+          {
+            // We want to enable the 'send' button
+            "parameters" : [ true ],
+
+            // Call this.getObject("button_send").setEnabled(true)
+            "objects"    : [ "button_send" ]
+          },
+
+          {
+            // We want to disable the 'abort' button
+            "parameters" : [ false ],
+
+            // Call this.getObject("button_abort").setEnabled(false)
+            "objects"    : [ "button_abort" ]
+          }
+        ],
+
+        // The name of a function.
+        "setBackgroundColor" :
+        [
+          {
+            // We want to change the atoms' background color to blue
+            "parameters" :
+              [
+               // We want the color oject created when needed, not "now"
+               // Providing a function as a parameter allows the value to be
+               // determined later.
+               function (fsm) { return new qx.renderer.color.Color("blue"); }
+              ],
+
+            // Call this.getObject(<object>).seBackgroundcolor("blue") on
+            // state entry, for each <object> in the group called
+            // "group_color_change".
+            "groups"      : [ "group_color_change" ]
+          }
+        ]
+      },
+
+      "events" :
+        {
+          // If the send button is pressed, go to new state state where we
+          // will await the RPC result
+          "execute"  :
+          {
+            "button_send" :
+              "Transition_Idle_to_AwaitRpcResult_via_button_send"
+          }
+        }
+    });
+  fsm.addState(state);
+
+  /*
+   * Transition: Idle to AwaitRpcResult
+   *
+   * Cause: "execute" on button_send
+   *
+   * Action:
+   *  Issue RPC request with coalesced failure events
+   */
+  var trans = new qx.util.fsm.Transition(
+    "Transition_Idle_to_AwaitRpcResult_via_button_send",
+    {
+      "nextState" :
+        "State_AwaitRpcResult",
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          var rpc = fsm.getObject("rpc");
+
+          rpc.setUrl(fsm.getObject("text_url").getValue());
+          rpc.setServiceName(fsm.getObject("text_service").getValue());
+
+          var request =
+            rpc.callAsyncListeners(true, // coalesce failure events
+                                   fsm.getObject("text_method").getValue(),
+                                   fsm.getObject("text_message").getValue());
+          fsm.addObject("request", request);
+        }
+    });
+  state.addTransition(trans);
+
+
+  /*
+   * State: AwaitRpcResult
+   *
+   * Actions upon entry:
+   *  button_send.setEnabled(false);
+   *  button_abort.setEnabled(true);
+   *  change background of objects in group "group_color_change" to red
+   *
+   * Transition on:
+   *  "completed" (on RPC)
+   *  "failed" (on RPC)
+   *  "execute on button_abort
+   */
+  var state = new qx.util.fsm.State(
+    "State_AwaitRpcResult",
+    {
+      "autoActionsBeforeOnentry" :
+      {
+        // The name of a function.
+        "setEnabled" :
+        [
+          {
+            // We want to disable the 'send' button
+            "parameters" : [ false ],
+              
+            // Call this.getObject("send").setEnabled(false)
+            "objects"    : [ "button_send" ]
+          },
+
+          {
+            // We want to enable the 'abort' button
+            "parameters" : [ true ],
+
+            // Call this.getObject("abort").setEnabled(true)
+            "objects" : [ "button_abort" ]
+          }
+        ],
+
+        // The name of a function.
+        "setBackgroundColor" :
+        [
+          {
+            // We want to change the atoms' background color to red
+            "parameters" :
+               [
+                 // We want the color oject created when needed, not "now"
+                 // Providing a function as a parameter allows the value to be
+                 // determined later.
+                 function (fsm) { return new qx.renderer.color.Color("red"); }
+               ],
+
+            // Call this.getObject(<object>).seBackgroundcolor("red"), for
+            // each <object> in the group called "group_color_change".
+            "groups" : [ "group_color_change" ]
+          }
+        ]
+      },
+
+      "events" :
+      {
+        "execute"  :
+        {
+          "button_abort" :
+            "Transition_AwaitRpcResult_to_AwaitRpcResult_via_button_abort"
+        },
+
+        "completed" :
+          "Transition_AwaitRpcResult_to_Idle_via_complete",
+
+        "failed" :
+          "Transition_AwaitRpcResult_to_Idle_via_failed"
+      },
+
+      "onentry" :
+        function(fsm, state)
+        {
+          var message = fsm.getObject("text_result");
+          message.setValue("");
+        }
+
+    });
+  fsm.addState(state);
+
+  /*
+   * Transition: AwaitRpcResult to AwaitRpcResult
+   *
+   * Cause: "execute" on button_abort
+   */
+  var trans = new qx.util.fsm.Transition(
+    "Transition_AwaitRpcResult_to_AwaitRpcResult_via_button_abort",
+    {
+      "nextState" :
+        "State_AwaitRpcResult",
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          // Get the request object
+          var request = fsm.getObject("request");
+
+          // Issue an abort for the pending request
+          request.abort();
+          
+          var message = fsm.getObject("text_result");
+          message.setValue("Abort requested...");
+        }
+    });
+  state.addTransition(trans);
+
+  /*
+   * Transition: AwaitRpcResult to Idle
+   *
+   * Cause: "complete" (on RPC)
+   */
+  var trans = new qx.util.fsm.Transition(
+    "Transition_AwaitRpcResult_to_Idle_via_complete",
+    {
+      "nextState" :
+        "State_Idle",
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          var message = fsm.getObject("text_result");
+          message.setValue("Got result: " + event.getData());
+
+          // The request has completed, so remove the object reference
+          fsm.removeObject("request");
+        }
+    });
+  state.addTransition(trans);
+
+  /*
+   * Transition: AwaitRpcResult to Idle
+   *
+   * Cause: "failed" (on RPC)
+   */
+  var trans = new qx.util.fsm.Transition(
+    "Transition_AwaitRpcResult_to_Idle_via_failed",
+    {
+      "nextState" :
+        "State_Idle",
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          var message = fsm.getObject("text_result");
+          message.setValue("Got failure: " + event.getData());
+
+          // The request has completed, so remove the object reference
+          fsm.removeObject("request");
+        }
+    });
+  state.addTransition(trans);
+
+  // Allocate an RPC object
+  o = new qx.io.remote.Rpc();
+  o.setTimeout(10000);
+  o.addEventListener("completed", fsm.eventListener, fsm);
+  o.addEventListener("failed", fsm.eventListener, fsm);
+  o.addEventListener("timeout", fsm.eventListener, fsm);
+  o.addEventListener("aborted", fsm.eventListener, fsm);
+  fsm.addObject("rpc", o);
+
+  return fsm;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1/gui.js b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1/gui.js
new file mode 100644 (file)
index 0000000..0ba443a
--- /dev/null
@@ -0,0 +1,95 @@
+function initGui(fsm)
+{
+  var o;
+  var d = qx.ui.core.ClientDocument.getInstance();
+
+  var vLayout = new qx.ui.layout.VerticalBoxLayout();
+  vLayout.setTop(40);
+  vLayout.setLeft(20);
+  vLayout.setSpacing(4);
+
+  vLayout.add(new qx.ui.basic.Label("URL:"));
+  var defaultURL = qx.io.remote.Rpc.makeServerURL();
+  if (defaultURL == null)
+  {
+    defaultURL = "/services/";
+  }
+  o = new qx.ui.form.TextField(defaultURL);
+  vLayout.add(o);
+  fsm.addObject("text_url", o);
+
+  vLayout.add(new qx.ui.basic.Label("Service:"));
+  o = new qx.ui.form.TextField("qooxdoo.test");
+  vLayout.add(o);
+  fsm.addObject("text_service", o);
+
+  vLayout.add(new qx.ui.basic.Label("Method:"));
+  o = new qx.ui.form.TextField("sleep");
+  vLayout.add(o);
+  fsm.addObject("text_method", o);
+
+  var hLayout = new qx.ui.layout.HorizontalBoxLayout();
+  hLayout.setHeight("auto");
+  hLayout.setVerticalChildrenAlign("middle");
+  hLayout.setSpacing(4);
+
+  o = new qx.ui.form.TextField("2");
+  o.setWidth(200);
+  hLayout.add(o);
+  fsm.addObject("text_message", o);
+
+  o = new qx.ui.form.Button("Send to server");
+  o.addEventListener("execute", fsm.eventListener, fsm);
+  hLayout.add(o);
+  fsm.addObject("button_send", o);
+
+  o = new qx.ui.form.Button("Abort");
+  o.setEnabled(false);
+  o.addEventListener("execute", fsm.eventListener, fsm);
+  hLayout.add(o);
+  fsm.addObject("button_abort", o);
+
+  vLayout.add(hLayout);
+
+  vLayout.add(new qx.ui.basic.Label("Result:"));
+  o = new qx.ui.form.TextField("");
+  o.setWidth(600);
+  vLayout.add(o);
+  fsm.addObject("text_result", o);
+
+  var hLayout = new qx.ui.layout.HorizontalBoxLayout();
+  hLayout.setHeight("auto");
+  hLayout.setVerticalChildrenAlign("middle");
+  hLayout.setSpacing(4);
+
+  var o = new qx.ui.basic.Atom("Idle=blue, RPC=red");
+  o.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+  o.setColor(new qx.renderer.color.Color("white"));
+  o.setWidth(200);
+  o.setHeight(30);
+  o.setPadding(4);
+  hLayout.add(o);
+  fsm.addObject("atom_1", o, "group_color_change");
+
+  var o = new qx.ui.basic.Atom("Idle=blue, RPC=red");
+  o.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+  o.setColor(new qx.renderer.color.Color("white"));
+  o.setWidth(200);
+  o.setHeight(30);
+  o.setPadding(4);
+  hLayout.add(o);
+  fsm.addObject("atom_2", o, "group_color_change");
+
+  var o = new qx.ui.basic.Atom("Idle=blue, RPC=red");
+  o.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+  o.setColor(new qx.renderer.color.Color("white"));
+  o.setWidth(200);
+  o.setHeight(30);
+  o.setPadding(4);
+  hLayout.add(o);
+  fsm.addObject("atom_3", o, "group_color_change");
+
+  vLayout.add(hLayout);
+
+  d.add(vLayout);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1/main.js b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1/main.js
new file mode 100644 (file)
index 0000000..56a53ac
--- /dev/null
@@ -0,0 +1,11 @@
+qx.core.Init.getInstance().defineMain(function()
+{
+  // Initialize the finite state machine
+  fsm = initFsm();
+
+  // Initialize the GUI
+  initGui(fsm);
+
+  // Start the finite state machine
+  fsm.start();
+});
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/GalleryList_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/GalleryList_1.html
new file mode 100644 (file)
index 0000000..3973623
--- /dev/null
@@ -0,0 +1,129 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+
+  <style type="text/css">
+.qx_ui_embed_GalleryList{
+  position: absolute;
+  visibility: visible;
+}
+
+.qx_ui_embed_GalleryList .galleryFrame{
+  padding: 2px;
+}
+
+.qx_ui_embed_GalleryList .galleryCell{
+  margin: 2px;
+  padding-bottom: 2px;
+  border: 1px solid #EEE;
+
+  background: #fff;
+  overflow: hidden;
+  white-space: normal;
+
+  font-family: Tahoma, Verdana, sans-serif;
+  font-size: 12px;
+
+  cursor: default;
+
+  -moz-user-select: none;
+  user-select: none;
+
+  position: relative;
+}
+
+.qx_ui_embed_GalleryList .galleryCell img{
+  vertical-align: bottom;
+  display: block;
+}
+
+.qx_ui_embed_GalleryList .galleryNumber{
+  width: 45px;
+  padding: 4px;
+
+  position: absolute;
+  top: 0px;
+  left: 0px;
+}
+
+.qx_ui_embed_GalleryList .galleryImageContainer{
+  position: absolute;
+  top: 0px;
+  left: 50px;
+}
+
+.qx_ui_embed_GalleryList .galleryText{
+  padding: 4px;
+  position: absolute;
+  top: 0px;
+  left: 130px;
+}
+
+.qx_ui_embed_GalleryList .galleryNumber,
+.qx_ui_embed_GalleryList .galleryText h3{
+  font-weight: bold;
+  font-size: 11px;
+}
+
+.qx_ui_embed_GalleryList .galleryText p{
+  font-size: 10px;
+}
+
+.qx_ui_embed_GalleryList .galleryCell-Selected{
+  background: #9BBCFF;
+  border-color: #3B7CFF;
+}
+  </style>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>ListSort implementation</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var imgPath = qx.manager.object.AliasManager.getInstance().resolvePath("icon/48/bug.png");
+
+      var galleryData = [];
+
+      for (var i=0; i<100; i++)
+      {
+        galleryData.push({
+          display : "bmzN9ci5",
+          width : 350,
+          height : 350,
+          thumbWidth : 48,
+          thumbHeight : 48,
+          title : "gohome.png",
+          timestamp : Math.random().toString(),
+          comment : "Cool Comment sadas asd dsa asdas dasd asd asdas dasdasdasd sadasdas dsds as",
+          id : "7686191121780974-10682",
+          src : imgPath,
+          number : "#" + i
+        });
+      };
+
+      var galleryList = new qx.ui.embed.GalleryList(galleryData);
+
+      galleryList.setWidth(400);
+      galleryList.setTop(48);
+      galleryList.setBottom(48);
+      galleryList.setLeft(250);
+
+      galleryList.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+      galleryList.setBackgroundColor("white");
+
+      qx.ui.core.ClientDocument.getInstance().add(galleryList);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Gallery_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Gallery_1.html
new file mode 100644 (file)
index 0000000..3252d3d
--- /dev/null
@@ -0,0 +1,116 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+
+  <style type="text/css">
+.qx_ui_embed_Gallery .galleryFrame{
+  padding: 2px;
+}
+
+.qx_ui_embed_Gallery .galleryCell{
+  border: 1px solid #444;
+  background: #fff;
+  margin: 2px;
+  float: left;
+  overflow: hidden;
+
+  font-family: Tahoma, Verdana, sans-serif;
+  font-size: 10px;
+
+  cursor: default;
+
+  -moz-user-select: none;
+  user-select: none;
+}
+
+.qx_ui_embed_Gallery .galleryCell img{
+  vertical-align: bottom;
+  display: block;
+}
+
+.qx_ui_embed_Gallery .galleryCell .galleryTitle,
+.qx_ui_embed_Gallery .galleryCell .galleryComment{
+  background: #eee;
+  padding: 3px 6px;
+  text-align: center;
+  cursor: default;
+  overflow: hidden;
+  white-space: nowrap;
+}
+
+.qx_ui_embed_Gallery .galleryCell .galleryTitle{
+  border-bottom: 1px solid #aaa;
+}
+
+.qx_ui_embed_Gallery .galleryCell .galleryComment{
+  border-top: 1px solid #aaa;
+}
+
+.qx_ui_embed_Gallery .galleryCell-Selected{
+  background: #DCE8F6;
+  border: 1px solid #2760A1;
+}
+
+.qx_ui_embed_Gallery .galleryCell-Selected .galleryTitle,
+.qx_ui_embed_Gallery .galleryCell-Selected .galleryComment{
+  background: #9BBFE7;
+}
+
+.qx_ui_embed_Gallery .galleryCell-Selected .galleryTitle{
+  border-bottom: 1px dotted #2760A1;
+}
+
+.qx_ui_embed_Gallery .galleryCell-Selected .galleryComment{
+  border-top: 1px dotted #2760A1;
+}
+  </style>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test file for qx.ui.embed.Gallery</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var imgPath = qx.manager.object.AliasManager.getInstance().resolvePath("icon/64/chart.png");
+
+      var galleryList = [];
+
+      for (var i=0; i<100; i++)
+      {
+        galleryList.push({
+          display : "bmzN9ci5",
+          width : 350,
+          height : 350,
+          thumbWidth : 64,
+          thumbHeight : 64,
+          title : "gohome.png",
+          timestamp : Math.random().toString(),
+          comment : "Cool Comment",
+          id : "7686191121780974-10682",
+          src : imgPath
+        });
+      };
+
+      var gallery = new qx.ui.embed.Gallery(galleryList);
+
+      gallery.setLeft(20);
+      gallery.setRight(335);
+      gallery.setTop(48);
+      gallery.setBottom(48);
+      gallery.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+
+      qx.ui.core.ClientDocument.getInstance().add(gallery);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/GroupBox_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/GroupBox_1.html
new file mode 100644 (file)
index 0000000..39c2eaf
--- /dev/null
@@ -0,0 +1,107 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Introducing qx.ui.groupbox.GroupBox.</p>
+  </div>
+
+  <fieldset style="position:absolute; top:48px; left:400px; width:200px; height:100px"><legend>builtin</legend>content content content content content content content content content content content content content content content</fieldset>
+
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var fs = new qx.ui.groupbox.GroupBox("My first Fieldset");
+
+      with(fs)
+      {
+        setWidth("40%");
+        setBottom(48);
+        setTop(48);
+        setLeft(20);
+
+        setMaxWidth(350);
+        setMinWidth(250);
+      };
+
+
+
+      var a1 = new qx.ui.basic.Atom("TextField 1");
+      with(a1)
+      {
+        setTop(3);
+        setLeft(0);
+        setWidth("35%");
+        setHorizontalChildrenAlign("left");
+      };
+
+      var i1 = new qx.ui.form.TextField();
+      with(i1)
+      {
+        setTop(0);
+        setRight(0);
+        setWidth("60%");
+      };
+      fs.add(a1, i1);
+
+
+
+      var a2 = new qx.ui.basic.Atom("TextField 2", "icon/16/appearance.png");
+      with(a2)
+      {
+        setTop(33);
+        setLeft(0);
+        setWidth("35%");
+        setHorizontalChildrenAlign("left");
+      };
+      fs.add(a2);
+
+      var i2 = new qx.ui.form.TextField();
+      with(i2)
+      {
+        setTop(30);
+        setRight(0);
+        setWidth("60%");
+      };
+      fs.add(i2);
+
+
+
+      var a3 = new qx.ui.basic.Atom("TextField 3");
+      with(a3)
+      {
+        setTop(63);
+        setLeft(0);
+        setWidth("35%");
+        setHorizontalChildrenAlign("left");
+      };
+      fs.add(a3);
+
+      var i3 = new qx.ui.form.TextField();
+      with(i3)
+      {
+        setTop(60);
+        setRight(0);
+        setWidth("60%");
+      };
+      fs.add(i3);
+
+
+
+      d.add(fs);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/GroupBox_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/GroupBox_2.html
new file mode 100644 (file)
index 0000000..117732c
--- /dev/null
@@ -0,0 +1,153 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for qx.ui.groupbox.CheckGroupBox</p>
+  </div>
+
+  <fieldset style="position:absolute; top:48px; left:400px; width:200px; height:100px"><legend>builtin</legend>content content content content content content content content content content content content content content content</fieldset>
+
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var fs = new qx.ui.groupbox.CheckGroupBox("CheckBox FieldSet");
+
+      with(fs)
+      {
+        setWidth("40%");
+        setBottom(48);
+        setTop(48);
+        setLeft(20);
+
+        setMaxWidth(350);
+        setMinWidth("auto");
+      };
+
+      d.add(fs);
+
+
+
+
+      var fsl = new qx.ui.layout.VerticalBoxLayout;
+      fsl.setLeft(0);
+      fsl.setRight(0);
+      fsl.setHeight("auto");
+      fsl.setSpacing(4);
+      fs.add(fsl);
+
+
+
+
+      var r1 = new qx.ui.layout.HorizontalBoxLayout;
+      r1.setLeft(0);
+      r1.setWidth("100%");
+      r1.setHeight("auto");
+      r1.setVerticalChildrenAlign("middle");
+      fsl.add(r1);
+
+      var a1 = new qx.ui.basic.Atom("TextField 1");
+      with(a1)
+      {
+        setLeft(0);
+        setWidth("40%");
+        setHorizontalChildrenAlign("left");
+      };
+
+      var i1 = new qx.ui.form.TextField;
+      with(i1)
+      {
+        setRight(0);
+        setWidth("60%");
+      };
+
+      r1.add(a1, i1);
+
+
+
+
+
+      var r2 = new qx.ui.layout.HorizontalBoxLayout;
+      r2.setLeft(0);
+      r2.setWidth("100%");
+      r2.setHeight("auto");
+      r2.setVerticalChildrenAlign("middle");
+      fsl.add(r2);
+
+      var a2 = new qx.ui.basic.Atom("TextField 2", "icon/16/appearance.png");
+      with(a2)
+      {
+        setLeft(0);
+        setWidth("40%");
+        setHorizontalChildrenAlign("left");
+      };
+
+      var i2 = new qx.ui.form.TextField;
+      with(i2)
+      {
+        setRight(0);
+        setWidth("60%");
+      };
+
+      r2.add(a2, i2);
+
+
+
+
+
+
+      var r3 = new qx.ui.layout.HorizontalBoxLayout;
+      r3.setLeft(0);
+      r3.setWidth("100%");
+      r3.setHeight("auto");
+      r3.setVerticalChildrenAlign("middle");
+      fsl.add(r3);
+
+      var a3 = new qx.ui.basic.Atom("TextField 3");
+      with(a3)
+      {
+        setLeft(0);
+        setWidth("40%");
+        setHorizontalChildrenAlign("left");
+      };
+
+      var i3 = new qx.ui.form.TextField;
+      with(i3)
+      {
+        setRight(0);
+        setWidth("60%");
+      };
+
+      r3.add(a3, i3);
+
+
+
+
+
+      fs.getLegendObject().addEventListener("changeChecked", function(e) {
+        i1.setEnabled(e.getData());
+        i2.setEnabled(e.getData());
+        i3.setEnabled(e.getData());
+
+        a1.setEnabled(e.getData());
+        a2.setEnabled(e.getData());
+        a3.setEnabled(e.getData());
+      });
+
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/GroupBox_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/GroupBox_3.html
new file mode 100644 (file)
index 0000000..e9a77c6
--- /dev/null
@@ -0,0 +1,160 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for qx.ui.groupbox.RadioGroupBox</p>
+  </div>
+
+  <fieldset style="position:absolute; top:48px; left:400px; width:200px; height:100px"><legend>builtin</legend>content content content content content content content content content content content content content content content</fieldset>
+
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var fsr = new qx.ui.form.RadioButton("Simple configuration");
+
+      fsr.setLocation(27, 48);
+      d.add(fsr);
+
+      var fs = new qx.ui.groupbox.RadioGroupBox("RadioButton FieldSet");
+
+      with(fs)
+      {
+        setWidth("40%");
+        setBottom(48);
+        setTop(72);
+        setLeft(20);
+
+        setMaxWidth(350);
+        setMinWidth("auto");
+      };
+
+      d.add(fs);
+
+      var fag = new qx.manager.selection.RadioManager("fscontrol", [ fsr, fs.getLegendObject() ]);
+
+
+
+
+      var fsl = new qx.ui.layout.VerticalBoxLayout;
+      fsl.setLeft(0);
+      fsl.setRight(0);
+      fsl.setHeight("auto");
+      fsl.setSpacing(4);
+      fs.add(fsl);
+
+
+
+
+      var r1 = new qx.ui.layout.HorizontalBoxLayout;
+      r1.setLeft(0);
+      r1.setWidth("100%");
+      r1.setHeight("auto");
+      r1.setVerticalChildrenAlign("middle");
+      fsl.add(r1);
+
+      var a1 = new qx.ui.basic.Atom("TextField 1");
+      with(a1)
+      {
+        setLeft(0);
+        setWidth("40%");
+        setHorizontalChildrenAlign("left");
+      };
+
+      var i1 = new qx.ui.form.TextField;
+      with(i1)
+      {
+        setRight(0);
+        setWidth("60%");
+      };
+
+      r1.add(a1, i1);
+
+
+
+
+
+      var r2 = new qx.ui.layout.HorizontalBoxLayout;
+      r2.setLeft(0);
+      r2.setWidth("100%");
+      r2.setHeight("auto");
+      r2.setVerticalChildrenAlign("middle");
+      fsl.add(r2);
+
+      var a2 = new qx.ui.basic.Atom("TextField 2", "icon/16/appearance.png");
+      with(a2)
+      {
+        setLeft(0);
+        setWidth("40%");
+        setHorizontalChildrenAlign("left");
+      };
+
+      var i2 = new qx.ui.form.TextField;
+      with(i2)
+      {
+        setRight(0);
+        setWidth("60%");
+      };
+
+      r2.add(a2, i2);
+
+
+
+
+
+
+      var r3 = new qx.ui.layout.HorizontalBoxLayout;
+      r3.setLeft(0);
+      r3.setWidth("100%");
+      r3.setHeight("auto");
+      r3.setVerticalChildrenAlign("middle");
+      fsl.add(r3);
+
+      var a3 = new qx.ui.basic.Atom("TextField 3");
+      with(a3)
+      {
+        setLeft(0);
+        setWidth("40%");
+        setHorizontalChildrenAlign("left");
+      };
+
+      var i3 = new qx.ui.form.TextField;
+      with(i3)
+      {
+        setRight(0);
+        setWidth("60%");
+      };
+
+      r3.add(a3, i3);
+
+
+
+
+
+      fs.getLegendObject().addEventListener("changeChecked", function(e) {
+        i1.setEnabled(e.getData());
+        i2.setEnabled(e.getData());
+        i3.setEnabled(e.getData());
+
+        a1.setEnabled(e.getData());
+        a2.setEnabled(e.getData());
+        a3.setEnabled(e.getData());
+      });
+
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Iframe_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Iframe_1.html
new file mode 100644 (file)
index 0000000..90d87e1
--- /dev/null
@@ -0,0 +1,71 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Iframe implementation. Elastic.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      //----------
+      // qx.ui.embed.Iframe
+      //----------
+
+      w1 = new qx.ui.embed.Iframe();
+
+      w1.addEventListener("load", function(e) {
+        this.debug("Loaded: " + this.getSource());
+      });
+
+      // elastic
+      w1.set( { left: 20, top: 96, right: 335, bottom: 48 } );
+      w1.setSource("http://www.google.com");
+
+      d.add(w1);
+
+
+      function changeURL(e) {
+
+        this.setSource(e.getData());
+      };
+
+      // make qx.ui.embed.Iframe react to event "surfTo" via function changeURL()
+      d.addEventListener("surfTo", changeURL, w1);
+
+
+      //-------------
+      // radio group
+      //-------------
+
+      var rd1 = new qx.ui.form.RadioButton("Google", "http://www.google.com");
+      var rd2 = new qx.ui.form.RadioButton("Yahoo", "http://www.yahoo.com");
+
+      rd1.set( { left: 20, top: 48, checked: true } );
+      rd2.set( { left: 120, top: 48 } );
+
+      var rbm = new qx.manager.selection.RadioManager( name, [rd1, rd2]);
+
+      // elements of radio group fire event "surfTo"
+      rbm.addEventListener("changeSelected", function(e)
+      {
+        d.dispatchEvent( new qx.event.type.DataEvent("surfTo", e.getData().getValue() ) );
+      });
+
+      d.add(rd1, rd2);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Inline_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Inline_1.html
new file mode 100644 (file)
index 0000000..bfec3e7
--- /dev/null
@@ -0,0 +1,260 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Inline widget.</p><p>Application layout is disabled by using qx.core.Settings. Scrollbars appear, if the content is bigger than the window.</p>
+  </div>
+
+  <div id="iframe1" class="manualFrame" style="overflow:hidden;position:static;margin-top:38px;margin-left:10px">
+    Inline Frame #1
+  </div>
+
+  <div id="iframe2" class="manualFrame" style="overflow:hidden;position:static;margin-top:20px;margin-left:10px">
+    Inline Frame #2
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var inlineWidget = new qx.ui.basic.Inline("iframe1");
+
+    inlineWidget.setHeight("auto");
+    inlineWidget.setWidth("auto");
+
+    var fieldSet = new qx.ui.groupbox.GroupBox("My first inline fieldset");
+
+    with(fieldSet)
+    {
+      // setWidth("auto");
+      // setWidth("100%");
+
+      setLeft(0);
+      setRight(0);
+
+      setHeight("auto");
+    };
+
+    inlineWidget.add(fieldSet);
+
+    d.add(inlineWidget);
+
+
+
+    var atom1 = new qx.ui.basic.Atom("Name");
+    var textfield1 = new qx.ui.form.TextField;
+
+    with(atom1)
+    {
+      setLeft(0);
+      setTop(3);
+    };
+
+    with(textfield1)
+    {
+      setLeft(80);
+      setRight(0);
+      setTop(0);
+    };
+
+    fieldSet.add(atom1, textfield1);
+
+
+
+    var atom2 = new qx.ui.basic.Atom("First Name");
+    var textfield2 = new qx.ui.form.TextField;
+
+    with(atom2)
+    {
+      setLeft(0);
+      setTop(33);
+    };
+
+    with(textfield2)
+    {
+      setLeft(80);
+      setRight(0);
+      setTop(30);
+    };
+
+    fieldSet.add(atom2, textfield2);
+
+
+
+    var atom3 = new qx.ui.basic.Atom("City");
+    var textfield3 = new qx.ui.form.TextField;
+
+    with(atom3)
+    {
+      setLeft(0);
+      setTop(63);
+    };
+
+    with(textfield3)
+    {
+      setLeft(80);
+      setRight(0);
+      setTop(60);
+    };
+
+    fieldSet.add(atom3, textfield3);
+
+
+
+    /*
+      Menu
+    */
+
+      var m1 = new qx.ui.menu.Menu;
+
+      var mb1_01 = new qx.ui.menu.Button("New");
+      var mb1_02 = new qx.ui.menu.Button("Open");
+      var mb1_03 = new qx.ui.menu.Button("Save");
+      var mb1_04 = new qx.ui.menu.Button("Save as");
+      var mb1_05 = new qx.ui.menu.Button("Close");
+      var mb1_06 = new qx.ui.menu.Button("Restore last saved");
+
+      m1.add(mb1_01, mb1_02, mb1_03, mb1_04, mb1_05, mb1_06);
+
+
+      var m2 = new qx.ui.menu.Menu;
+
+      var mb2_01 = new qx.ui.menu.Button("Undo");
+      var mb2_02 = new qx.ui.menu.Button("Redo");
+      var mb2_b1 = new qx.ui.menu.Separator();
+      var mb2_03 = new qx.ui.menu.Button("Cut", "icon/16/edit-cut.png");
+      var mb2_04 = new qx.ui.menu.Button("Copy", "icon/16/edit-copy.png");
+      var mb2_05 = new qx.ui.menu.Button("Paste", "icon/16/edit-paste.png");
+      var mb2_06 = new qx.ui.menu.Button("Delete", "icon/16/edit-delete.png");
+      var mb2_b2 = new qx.ui.menu.Separator();
+      var mb2_07 = new qx.ui.menu.Button("Select All");
+      var mb2_08 = new qx.ui.menu.Button("Find");
+      var mb2_09 = new qx.ui.menu.Button("Find Again");
+
+
+
+
+      mb2_05.setEnabled(false);
+      mb2_06.setEnabled(false);
+      mb2_09.setEnabled(false);
+
+      m2.add(mb2_01, mb2_02, mb2_b1, mb2_03, mb2_04, mb2_05, mb2_06, mb2_b2, mb2_07, mb2_08, mb2_09);
+
+
+      var m3 = new qx.ui.menu.Menu;
+      var m3_suba = new qx.ui.menu.Menu;
+      var m3_subb = new qx.ui.menu.Menu;
+      var m3_subc = new qx.ui.menu.Menu;
+
+      var mb3_01 = new qx.ui.menu.CheckBox("File List", null, false);
+      var mb3_02 = new qx.ui.menu.CheckBox("Syntax Highlighting", null, true);
+      var mb3_03 = new qx.ui.menu.CheckBox("Statusbar", null, true);
+      var mb3_b1 = new qx.ui.menu.Separator();
+      var mb3_04 = new qx.ui.menu.Button("Printer Font", null, null, m3_suba);
+      var mb3_05 = new qx.ui.menu.Button("Editor Font", null, null, m3_subb);
+      var mb3_06 = new qx.ui.menu.Button("Export Font", null, null, m3_subc);
+
+      m3.add(mb3_01, mb3_02, mb3_03, mb3_b1, mb3_04, mb3_05, mb3_06);
+
+      var mb3_suba_01 = new qx.ui.menu.Button("Tahoma, 11pt");
+      var mb3_suba_02 = new qx.ui.menu.Button("Tahoma, 12pt");
+      var mb3_suba_03 = new qx.ui.menu.Button("Tahoma, 13pt");
+      var mb3_suba_04 = new qx.ui.menu.Button("Tahoma, 14pt");
+      var mb3_suba_05 = new qx.ui.menu.Button("Tahoma, 15pt");
+
+      m3_suba.add(mb3_suba_01, mb3_suba_02, mb3_suba_03, mb3_suba_04, mb3_suba_05);
+
+      var mb3_subb_01 = new qx.ui.menu.Button("Verdana, 11pt");
+      var mb3_subb_02 = new qx.ui.menu.Button("Verdana, 12pt");
+      var mb3_subb_03 = new qx.ui.menu.Button("Verdana, 13pt");
+      var mb3_subb_04 = new qx.ui.menu.Button("Verdana, 14pt");
+      var mb3_subb_05 = new qx.ui.menu.Button("Verdana, 15pt");
+
+      m3_subb.add(mb3_subb_01, mb3_subb_02, mb3_subb_03, mb3_subb_04, mb3_subb_05);
+
+      var mb3_subc_01 = new qx.ui.menu.Button("Courier, 11pt");
+      var mb3_subc_02 = new qx.ui.menu.Button("Courier, 12pt");
+      var mb3_subc_03 = new qx.ui.menu.Button("Courier, 13pt");
+      var mb3_subc_04 = new qx.ui.menu.Button("Courier, 14pt");
+      var mb3_subc_05 = new qx.ui.menu.Button("Courier, 15pt");
+
+      m3_subc.add(mb3_subc_01, mb3_subc_02, mb3_subc_03, mb3_subc_04, mb3_subc_05);
+
+
+
+      var m4 = new qx.ui.menu.Menu;
+
+      var m4_suba = new qx.ui.menu.Menu;
+
+      var mb4_01 = new qx.ui.menu.Button("View", null, null, m4_suba);
+      var mb4_b1 = new qx.ui.menu.Separator();
+      var mb4_02 = new qx.ui.menu.Button("Editor Preferences...");
+      var mb4_03 = new qx.ui.menu.Button("Editor Extensions");
+      var mb4_04 = new qx.ui.menu.Button("Framework Preferences");
+
+      m4.add(mb4_01, mb4_b1, mb4_02, mb4_03, mb4_04);
+
+      var mb4_suba_01 = new qx.ui.menu.Button("New Window");
+      var mb4_suba_b1 = new qx.ui.menu.Separator();
+      var mb4_suba_02 = new qx.ui.menu.RadioButton("Overlapping", null, true);
+      var mb4_suba_03 = new qx.ui.menu.RadioButton("Split Horizontally", null);
+      var mb4_suba_04 = new qx.ui.menu.RadioButton("Split Vertically", null);
+      var mb4_suba_b2 = new qx.ui.menu.Separator();
+      var mb4_suba_05 = new qx.ui.menu.Button("Next Window");
+      var mb4_suba_06 = new qx.ui.menu.Button("Previous Window");
+
+      m4_suba.add(mb4_suba_01, mb4_suba_b1, mb4_suba_02, mb4_suba_03, mb4_suba_04, mb4_suba_b2, mb4_suba_05, mb4_suba_06);
+
+      var mb4_manager = new qx.manager.selection.RadioManager("windowMode", [ mb4_suba_02, mb4_suba_03, mb4_suba_04 ]);
+
+
+      var m5 = new qx.ui.menu.Menu;
+
+      var mb5_01 = new qx.ui.menu.Button("Help");
+      var mb5_02 = new qx.ui.menu.Button("About");
+
+      m5.add(mb5_01, mb5_02);
+
+      d.add(m1, m2, m3, m3_suba, m3_subb, m3_subc, m4, m4_suba, m5);
+
+
+    var inline2 = new qx.ui.basic.Inline("iframe2");
+
+    inline2.setHeight("auto");
+    inline2.setWidth("auto");
+
+
+    var mb1 = new qx.ui.toolbar.ToolBar;
+
+    var mbb1 = new qx.ui.toolbar.MenuButton("File", m1);
+    var mbb2 = new qx.ui.toolbar.MenuButton("Edit", m2);
+    var mbb3 = new qx.ui.toolbar.MenuButton("View", m3);
+    var mbb4 = new qx.ui.toolbar.MenuButton("Options", m4);
+    var mbb5 = new qx.ui.toolbar.MenuButton("Help", m5);
+
+    mb1.add(mbb1, mbb2, mbb3, mbb4, mbb5);
+
+    with(mb1)
+    {
+      setWidth(400);
+      setHeight("auto");
+    };
+
+    inline2.add(mb1);
+
+    d.add(inline2);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ListView_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ListView_1.html
new file mode 100644 (file)
index 0000000..661c4a8
--- /dev/null
@@ -0,0 +1,67 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.listview.ListView with text cells.</p>
+    <p>Testing of column alignment, resizeable prohibition for columns and live resizing.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var ld = [];
+      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+      
+      for (var i=0, t; i<1000; i++) 
+      {
+        t=Math.round(Math.random()*4);
+        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
+      };
+      
+      var lc = 
+      {
+        name : { label : "Name", width : 100, type : "text" },
+        size: { label : "Size", width : 50, type : "text", align : "right", resizable : false },
+        type : { label : "Type", width : 80, type : "text" },
+        modified : { label : "Last Modified", width : 150, type : "text" },
+        rights : { label : "Rights", width: 80, type : "text" }
+      };
+      
+      var lv = new qx.ui.listview.ListView(ld, lc);
+
+      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+      lv.setBackgroundColor("white");
+      lv.setWidth(600);
+      lv.setHeight(350);
+      lv.setLocation(20, 48);
+      
+      // Prohibit resizing of columns completly
+      // lv.setResizable(false);
+
+      qx.ui.core.ClientDocument.getInstance().add(lv);
+      
+      
+      
+      
+      var chk1 = new qx.ui.form.CheckBox("Enable Live Resize");
+      chk1.setLocation(20, 420);
+      qx.ui.core.ClientDocument.getInstance().add(chk1);
+      
+      chk1.addEventListener("changeChecked", function(e) {
+        lv.setLiveResize(e.getData());
+      });
+      
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ListView_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ListView_2.html
new file mode 100644 (file)
index 0000000..14df77b
--- /dev/null
@@ -0,0 +1,53 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.listview.ListView with text cells and an additional icon.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var ld = [];
+      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+      var li = [ "icons.png", "edit.png", "emoticon.png", "appearance.png", "file-new.png" ];
+
+      for (var i=0, t; i<1000; i++)
+      {
+        t=Math.round(Math.random()*4);
+        ld.push({ icon : { source : "icon/16/" + li[t] }, name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
+      };
+
+      var lc =
+      {
+        icon : { label : "", width: 24, type : "image" },
+        name : { label : "Name", width : 100, type : "text" },
+        size: { label : "Size", width : 50, type : "text", align : "right" },
+        type : { label : "Type", width : 80, type : "text" },
+        modified : { label : "Last Modified", width : 150, type : "text" },
+        rights : { label : "Rights", width: 80, type : "text" }
+      };
+
+      var lv = new qx.ui.listview.ListView(ld, lc);
+
+      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+      lv.setBackgroundColor("white");
+      lv.setWidth(600);
+      lv.setHeight(350);
+      lv.setLocation(20, 48);
+
+      qx.ui.core.ClientDocument.getInstance().add(lv);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ListView_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ListView_3.html
new file mode 100644 (file)
index 0000000..89bfc6b
--- /dev/null
@@ -0,0 +1,51 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.listview.ListView with iconHtml cells.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var ld = [];
+      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+      
+      for (var i=0, t; i<1000; i++) 
+      {
+        t=Math.round(Math.random()*4);
+        ld.push({ name : { html : "E-Mail " + i, icon : "icon/16/email.png", iconWidth : 16, iconHeight : 16 }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }, open : { uri : "http://www.google.com/search?q=" + i, html : "Open " + i }});
+      };
+      
+      var lc = 
+      {
+        name : { label : "Name", width : 120, type : "iconHtml" },
+        size: { label : "Size", width : 50, type : "text", align : "right" },
+        type : { label : "Type", width : 80, type : "text" },
+        modified : { label : "Last Modified", width : 150, type : "text" },
+        rights : { label : "Rights", width: 80, type : "text" }     
+      };
+      
+      var lv = new qx.ui.listview.ListView(ld, lc);
+
+      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+      lv.setBackgroundColor("white");
+      lv.setWidth(600);
+      lv.setHeight(350);
+      lv.setLocation(20, 48);
+
+      qx.ui.core.ClientDocument.getInstance().add(lv);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ListView_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ListView_4.html
new file mode 100644 (file)
index 0000000..f673bac
--- /dev/null
@@ -0,0 +1,58 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.listview.ListView with text cells.</p>
+    <p>Added some sort handling stuff.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var ld = [];
+      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+
+      for (var i=0, t; i<1000; i++)
+      {
+        t=Math.round(Math.random()*4);
+        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
+      };
+
+      var lc =
+      {
+        name : { label : "Name", width : 100, type : "text", sortable : true, sortProp : "text" },
+        size: { label : "Size", width : 50, type : "text", sortable : true, sortProp : "text", sortMethod : qx.util.Compare.byIntegerString, align : "right" },
+        type : { label : "Type", width : 80, type : "text", sortable : true, sortProp : "text" },
+        modified : { label : "Last Modified", width : 150, type : "text" },
+        rights : { label : "Rights", width: 80, type : "text" }
+      };
+
+      var lv = new qx.ui.listview.ListView(ld, lc);
+
+      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+      lv.setBackgroundColor("white");
+      lv.setWidth(600);
+      lv.setHeight(350);
+      lv.setLocation(20, 48);
+
+      qx.ui.core.ClientDocument.getInstance().add(lv);
+
+
+
+
+      // Color Themes
+      qx.manager.object.ColorManager.getInstance().createThemeList(qx.ui.core.ClientDocument.getInstance(), 20, 448);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/List_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/List_1.html
new file mode 100644 (file)
index 0000000..17981e6
--- /dev/null
@@ -0,0 +1,127 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>List implementation</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var l1 = new qx.ui.form.List;
+      
+      l1.set({ top : 48, left: 20, height: 200, width: 150, overflow : "scrollY" });
+      
+      var item;
+      for( var i=1; i<=35; i++ ) 
+      {
+        // item = new qx.ui.form.ListItem("Item No " + i);
+        item = new qx.ui.form.ListItem("Item No " + i, "icon/" + ((i % 4) ? "16" : "48") + "/folder.png");
+        
+        !(i % 9) && (item.setEnabled(false));
+        
+        l1.add(item);
+      };
+      
+      d.add(l1);
+      
+      var l2 = new qx.ui.form.List;
+      
+      l2.set({ top : 48, left: 400, height: 200, width: 150 });
+      l2.getManager().setMultiSelection(false);
+      //l2.setOverflow("scrollY");
+      l2.setHeight("auto");
+      
+      var l2l = [ "red", "violett", "rose", "blue", "green", "cyan", "magenta", "yellow", "brown", "orange", "black", "white", "grey", "gray", "brown" ];
+      
+      for (var i=0; i<l2l.length; i++) {
+        l2.add(new qx.ui.form.ListItem(l2l[i]));
+      };      
+      
+      d.add(l2);
+      
+
+      
+
+      var c1 = new qx.ui.form.CheckBox("Enable Multi-Selection");
+      var c2 = new qx.ui.form.CheckBox("Enable Drag-Selection");
+      var c3 = new qx.ui.form.CheckBox("Allow Deselection");
+      var c4 = new qx.ui.form.CheckBox("Enable Inline Find");
+
+      c1.setLocation(180, 48);
+      c2.setLocation(180, 68);
+      c3.setLocation(180, 88);
+      c4.setLocation(180, 108);
+      
+      d.add(c1, c2, c3, c4);
+      
+      c1.setChecked(true);
+      c2.setChecked(true);
+      c3.setChecked(true);
+      c4.setChecked(true);
+      
+      c1.addEventListener("changeChecked", function(e) {
+        l1.getManager().setMultiSelection(e.getData());
+      });
+      
+      c2.addEventListener("changeChecked", function(e) {
+        l1.getManager().setDragSelection(e.getData());
+      });
+
+      c3.addEventListener("changeChecked", function(e) {
+        l1.getManager().setCanDeselect(e.getData());
+      });
+      
+      c4.addEventListener("changeChecked", function(e) {
+        l1.setEnableInlineFind(e.getData());
+      });
+      
+      
+      
+      
+
+      var rd1 = new qx.ui.form.RadioButton("Show Label", "label");
+      var rd2 = new qx.ui.form.RadioButton("Show Icon", "icon");
+      var rd3 = new qx.ui.form.RadioButton("Show Both", "both");
+
+      rd1.set( { left: 180, top: 128 } );
+      rd2.set( { left: 180, top: 148 } );
+      rd3.set( { left: 180, top: 168 } );
+      
+      d.add(rd1, rd2, rd3);
+      
+      rd3.setChecked(true);
+
+      var rbm = new qx.manager.selection.RadioManager( name, [rd1, rd2, rd3]);
+
+      rbm.addEventListener("changeSelected", function(e)
+      {
+        for( var i=0; i<l1.getChildrenLength(); i++ ) {
+          l1.getChildren()[i].setShow(e.getData().getValue());
+        }
+      });
+      
+      
+      
+      
+      // Icon Themes
+      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 400);
+    
+      // Color Themes
+      qx.manager.object.ColorManager.getInstance().createThemeList(d, 200, 400);      
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Menu_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Menu_1.html
new file mode 100644 (file)
index 0000000..66fd0c8
--- /dev/null
@@ -0,0 +1,193 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>qx.ui.menu.Menu Implementation.</p>
+    <p>Added qx.client.Command support tests.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var q1 = new qx.client.Command("Ctrl+Z");
+      q1.addEventListener("execute", function(e) {
+        alert("Undo");
+      });
+
+      var q2 = new qx.client.Command("Ctrl+Y");
+      q2.addEventListener("execute", function(e) {
+        alert("Redo");
+      });
+
+      var q3 = new qx.client.Command("Ctrl+X");
+      q3.addEventListener("execute", function(e) {
+        alert("Cut");
+      });
+
+      var q4 = new qx.client.Command("Ctrl+C");
+      q4.addEventListener("execute", function(e) {
+        alert("Copy");
+      });
+
+      var q5 = new qx.client.Command("Ctrl+V");
+      q5.addEventListener("execute", function(e) {
+        alert("Paste");
+      });
+
+      var q6 = new qx.client.Command("Del");
+      q6.addEventListener("execute", function(e) {
+        alert("Delete");
+      });
+
+      var q7 = new qx.client.Command("Ctrl+A");
+      q7.addEventListener("execute", function(e) {
+        alert("Select All");
+      });
+
+      var q8 = new qx.client.Command("Ctrl+F");
+      q8.addEventListener("execute", function(e) {
+        alert("Search");
+      });
+
+      var q9 = new qx.client.Command("Ctrl+G");
+      q9.addEventListener("execute", function(e) {
+        alert("Search Again");
+      });
+
+      var q10 = new qx.client.Command();
+      q10.addEventListener("execute", function(e) {
+        alert("Syntax Highlighting");
+      });
+
+      var q11 = new qx.client.Command("Esc");
+      q11.addEventListener("execute", function(e) {
+        alert("Escape");
+      });
+
+      var q12 = new qx.client.Command(null, qx.event.type.KeyEvent.keys.space);
+      q12.addEventListener("execute", function(e) {
+        alert("Space");
+      });
+
+
+
+
+      var m2 = new qx.ui.menu.Menu;
+
+      var mb2_01 = new qx.ui.menu.Button("New Window");
+      var mb2_02 = new qx.ui.menu.Button("Overlapping");
+      var mb2_03 = new qx.ui.menu.Button("Split Vertical");
+      var mb2_04 = new qx.ui.menu.Button("Split Horizontal");
+      var mb2_05 = new qx.ui.menu.Button("Next Window");
+      var mb2_06 = new qx.ui.menu.Button("Previous Window");
+
+      m2.add(mb2_01, mb2_02, mb2_03, mb2_04, mb2_05, mb2_06);
+
+
+
+
+      var m3 = new qx.ui.menu.Menu;
+
+      var mb3_01 = new qx.ui.menu.Button("Tahoma, 11pt");
+      var mb3_02 = new qx.ui.menu.Button("Tahoma, 12pt");
+      var mb3_03 = new qx.ui.menu.Button("Tahoma, 13pt");
+      var mb3_04 = new qx.ui.menu.Button("Tahoma, 14pt");
+      var mb3_05 = new qx.ui.menu.Button("Tahoma, 15pt");
+
+      m3.add(mb3_01, mb3_02, mb3_03, mb3_04, mb3_05);
+
+
+
+      var m1 = new qx.ui.menu.Menu;
+
+      var mb1_01 = new qx.ui.menu.Button("View/Lists", null, q12);
+      var mb1_02 = new qx.ui.menu.Button("Syntax Highlighting", null, q10);
+      var ms1    = new qx.ui.menu.Separator();
+      var mb1_03 = new qx.ui.menu.Button("Window Font", null, q11);
+      var mb1_04 = new qx.ui.menu.Button("Printer Font", null, null, m3);
+      var ms2    = new qx.ui.menu.Separator();
+      var mb1_05 = new qx.ui.menu.Button("Undo", null, q1);
+      var mb1_06 = new qx.ui.menu.Button("Redo", null, q2);
+      var ms3    = new qx.ui.menu.Separator();
+      var mb1_07 = new qx.ui.menu.Button("Cut", "icon/16/edit-cut.png", q3);
+      var mb1_08 = new qx.ui.menu.Button("Copy", "icon/16/edit-copy.png", q4);
+      var mb1_09 = new qx.ui.menu.Button("Paste", "icon/16/edit-paste.png", q5);
+      var mb1_10 = new qx.ui.menu.Button("Delete", "icon/16/edit-delete.png", q6);
+      var mb1_11 = new qx.ui.menu.Button("Select All", null, q7);
+      var ms4    = new qx.ui.menu.Separator();
+      var mb1_12 = new qx.ui.menu.Button("Search", null, q8);
+      var mb1_13 = new qx.ui.menu.Button("Search Again", null, q9);
+      var ms5    = new qx.ui.menu.Separator();
+      var mb1_14 = new qx.ui.menu.Button("View", null, null, m2);
+      var mb1_15 = new qx.ui.menu.Button("Editor Settings...");
+      var mb1_16 = new qx.ui.menu.Button("Editor Plugins");
+      var mb1_17 = new qx.ui.menu.Button("Framework Settings");
+
+      m1.add(mb1_01, mb1_02, ms1, mb1_03, mb1_04, ms2, mb1_05, mb1_06, ms3, mb1_07, mb1_08, mb1_09, mb1_10, mb1_11, ms4, mb1_12, mb1_13, ms5, mb1_14, mb1_15, mb1_16, mb1_17);
+
+
+      d.add(m1, m2, m3);
+
+
+
+
+
+      var w1 = new qx.ui.form.Button("Open");
+
+      w1.setTop(48);
+      w1.setLeft(20);
+
+      w1.addEventListener("click", function(e)
+      {
+        if (m1.isSeeable())
+        {
+          m1.hide();
+        }
+        else
+        {
+          var el = this.getElement();
+
+          m1.setLeft(qx.dom.Location.getPageBoxLeft(el));
+          m1.setTop(qx.dom.Location.getPageBoxBottom(el));
+
+          m1.show();
+        };
+
+        e.setPropagationStopped(true);
+      });
+
+      w1.addEventListener("mousedown", function(e)
+      {
+        e.setPropagationStopped(true);
+      });
+
+
+      d.add(w1);
+
+
+
+
+
+
+      // Icon Themes
+      qx.manager.object.ImageManager.getInstance().createThemeList(d, 180, 48);
+
+      // Color Themes
+      qx.manager.object.ColorManager.getInstance().createThemeList(d, 380, 48);
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/NativeWindow_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/NativeWindow_1.html
new file mode 100644 (file)
index 0000000..4d607a4
--- /dev/null
@@ -0,0 +1,198 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Native Windows. Could be understood as an enhanced window.open with some additional options like to create modal windows.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var w1 = new qx.client.NativeWindow("http://www.google.com");
+
+    w1.setDimension(600, 400);
+
+
+    w1.addEventListener("load", function(e) {
+      this.debug("Content loaded: " + this.isLoaded());
+    });
+
+    w1.addEventListener("close", function(e) {
+      this.debug("Window closed: " + this.isClosed());
+    });
+
+
+
+
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var btn1 = new qx.ui.form.Button("Open Native Window", "icon/16/appearance.png");
+    with(btn1)
+    {
+      setTop(48);
+      setLeft(20);
+
+      addEventListener("click", function() { w1.open(); } );
+    };
+
+    d.add(btn1);
+
+
+
+
+
+    var l = new qx.ui.layout.VerticalBoxLayout;
+    l.setLocation(20, 96);
+    l.setWidth("auto");
+    l.setHeight("auto");
+    d.add(l);
+
+    var fs1 = new qx.ui.groupbox.GroupBox("Initial Settings");
+    fs1.setHeight("auto");
+    l.add(fs1);
+
+
+    var chk1 = new qx.ui.form.CheckBox("Resizeable");
+    chk1.setLocation(0, 0);
+    chk1.setChecked(true);
+    chk1.addEventListener("changeChecked", function(e) {
+      w1.setResizeable(e.getData());
+    });
+
+    var chk2 = new qx.ui.form.CheckBox("Show Statusbar");
+    chk2.setLocation(0, 20);
+    chk2.setChecked(false);
+    chk2.addEventListener("changeChecked", function(e) {
+      w1.setShowStatusbar(e.getData());
+    });
+
+    var chk3 = new qx.ui.form.CheckBox("Show Menubar");
+    chk3.setLocation(0, 40);
+    chk3.setChecked(false);
+    chk3.addEventListener("changeChecked", function(e) {
+      w1.setShowMenubar(e.getData());
+    });
+
+    var chk4 = new qx.ui.form.CheckBox("Show Location");
+    chk4.setLocation(0, 60);
+    chk4.setChecked(false);
+    chk4.addEventListener("changeChecked", function(e) {
+      w1.setShowLocation(e.getData());
+    });
+
+    var chk5 = new qx.ui.form.CheckBox("Show Toolbar");
+    chk5.setLocation(0, 80);
+    chk5.setChecked(false);
+    chk5.addEventListener("changeChecked", function(e) {
+      w1.setShowToolbar(e.getData());
+    });
+
+    var chk6 = new qx.ui.form.CheckBox("Allow Scrollbars");
+    chk6.setLocation(0, 100);
+    chk6.setChecked(true);
+    chk6.addEventListener("changeChecked", function(e) {
+      w1.setAllowScrollbars(e.getData());
+    });
+
+    var chk7 = new qx.ui.form.CheckBox("Modal");
+    chk7.setLocation(0, 120);
+    chk7.setChecked(false);
+    chk7.addEventListener("changeChecked", function(e) {
+      w1.setModal(e.getData());
+    });
+
+    var chk8 = new qx.ui.form.CheckBox("Dependent");
+    chk8.setLocation(0, 140);
+    chk8.setChecked(true);
+    chk8.addEventListener("changeChecked", function(e) {
+      w1.setDependent(e.getData());
+    });
+
+    fs1.add(chk1, chk2, chk3, chk4, chk5, chk6, chk7, chk8);
+
+
+
+
+
+
+
+
+    var fs2 = new qx.ui.groupbox.GroupBox("Runtime Settings");
+    fs2.setHeight("auto");
+    l.add(fs2);
+
+
+
+    var tf1 = new qx.ui.form.TextField("http://www.google.com");
+    tf1.setLocation(0, 2);
+    tf1.setWidth(150);
+
+    var btn1 = new qx.ui.form.Button("Set Url", "icon/16/button-ok.png");
+    btn1.setLocation(155, 0);
+    btn1.addEventListener("click", function() {
+      w1.setUrl(tf1.getValue());
+    });
+
+
+
+
+    var tf2 = new qx.ui.form.TextField("600");
+    tf2.setLocation(0, 42);
+    tf2.setWidth(50);
+
+    var btn2 = new qx.ui.form.Button("Set Width", "icon/16/button-ok.png");
+    btn2.setLocation(55, 40);
+    btn2.addEventListener("click", function() {
+      w1.setWidth(parseInt(tf2.getValue()));
+    });
+
+
+
+
+    var tf3 = new qx.ui.form.TextField("400");
+    tf3.setLocation(0, 72);
+    tf3.setWidth(50);
+
+    var btn3 = new qx.ui.form.Button("Set Height", "icon/16/button-ok.png");
+    btn3.setLocation(55, 70);
+    btn3.addEventListener("click", function() {
+      w1.setHeight(parseInt(tf3.getValue()));
+    });
+
+
+
+    var btn4 = new qx.ui.form.Button("Center to screen", "icon/16/paint.png");
+    btn4.setLocation(0, 110);
+    btn4.addEventListener("click", function() {
+      w1.centerToScreen()
+    });
+
+    var btn5 = new qx.ui.form.Button("Center to screen area", "icon/16/paint.png");
+    btn5.setLocation(0, 140);
+    btn5.addEventListener("click", function() {
+      w1.centerToScreenArea()
+    });
+
+    var btn6 = new qx.ui.form.Button("Center to opener", "icon/16/paint.png");
+    btn6.setLocation(0, 170);
+    btn6.addEventListener("click", function() {
+      w1.centerToOpener()
+    });
+
+
+
+    fs2.add(tf1, btn1, tf2, btn2, tf3, btn3, btn4, btn5, btn6);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/RadioButton_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/RadioButton_1.html
new file mode 100644 (file)
index 0000000..6976cb5
--- /dev/null
@@ -0,0 +1,114 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>    
+  
+  <div id="demoDescription"> 
+    <p>Tests for qx.ui.form.RadioButton. qx.ui.form.RadioButton extends qx.ui.basic.Atom and so it inherits all the options and properties defined there.</p>
+    <p>To group multiple QxRadioButtons you must define a instance of qx.manager.selection.RadioManager and add them to this new instance. All QxRadioButtons assigned to the same group make sure that only one of them is checked at the same time.</p>
+    <p>
+  </div>
+  
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+    
+    var rb1 = new qx.ui.form.RadioButton("Option #1", "rb1");
+    with(rb1)
+    {
+      setTop(80);
+      setLeft(20);
+    };
+    d.add(rb1);
+
+    var rb2 = new qx.ui.form.RadioButton("Option #2", "rb2");
+    with(rb2)
+    {
+      setTop(110);
+      setLeft(20);
+    };
+    d.add(rb2);
+    rb2.setChecked(true);
+    
+    
+    var rb3 = new qx.ui.form.RadioButton("Top RadioButton", "rb3");
+    with(rb3)
+    {
+      setTop(160);
+      setLeft(20);
+      setIconPosition("top");
+    };
+    d.add(rb3);
+    
+    var rb4 = new qx.ui.form.RadioButton("Bottom RadioButton", "rb4");
+    with(rb4)
+    {
+      setTop(160);
+      setLeft(160);
+      setIconPosition("bottom");
+    };
+    d.add(rb4);    
+
+
+    var rb5 = new qx.ui.form.RadioButton("Left RadioButton", "rb5");
+    with(rb5)
+    {
+      setTop(220);
+      setLeft(20);
+      setIconPosition("left");
+    };
+    d.add(rb5);
+    
+    var rb6 = new qx.ui.form.RadioButton("Right RadioButton", "rb6");
+    with(rb6)
+    {
+      setTop(220);
+      setLeft(160);
+      setIconPosition("right");
+    };
+    d.add(rb6);  
+    
+    var rb7 = new qx.ui.form.RadioButton(null, "rb7");
+    with(rb7)
+    {
+      setTop(280);
+      setLeft(20);
+    };
+    d.add(rb7);     
+    
+
+    var rg1 = new qx.manager.selection.RadioManager("mygroup", [rb1, rb2, rb3, rb4, rb5, rb6, rb7]);
+
+
+    
+
+
+    var linfo = new qx.ui.basic.Atom("Current Value: \"" + rg1.getSelected().getLabel() + "\" (" + rg1.getSelected().getValue() + ")", "icon/16/forward.png");
+
+    with(linfo)
+    {
+      setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      setPadding(2, 4);
+      setBackgroundColor("white");
+      setTop(48);
+      setLeft(20);
+    };
+    
+    rg1.addEventListener("changeSelected", function(e) {
+      linfo.setLabel("Current Value: \"" + e.getData().getLabel() + "\" (" + e.getData().getValue() + ")");
+    });
+    
+    d.add(linfo);
+  });
+  </script>
+</body>
+</html>  
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/RepeatButton_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/RepeatButton_1.html
new file mode 100644 (file)
index 0000000..3858e75
--- /dev/null
@@ -0,0 +1,73 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test the qx.ui.form.RepeatButton constructor. qx.ui.form.RepeatButton is based on qx.ui.form.Button but adds some interval handled event mechanism.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    function buttonExecute() { this.debug("Executed: " + this.getLabel()); };
+
+    var btn1 = new qx.ui.form.RepeatButton("Repeat Button No #1");
+    with(btn1)
+    {
+      setTop(48);
+      setLeft(20);
+      addEventListener("execute", buttonExecute);
+    };
+
+    d.add(btn1);
+
+
+
+    var btn2 = new qx.ui.form.RepeatButton("Repeat Button No #2");
+    with(btn2)
+    {
+      setTop(48);
+      setLeft(160);
+      addEventListener("execute", buttonExecute);
+      setEnabled(false);
+    };
+
+    d.add(btn2);
+
+
+
+    var btn3 = new qx.ui.form.RepeatButton("Repeat Button No #3");
+    with(btn3)
+    {
+      setTop(48);
+      setLeft(300);
+      addEventListener("execute", buttonExecute);
+    };
+
+    d.add(btn3);
+
+
+    var btn4 = new qx.ui.form.RepeatButton("Repeat Button No #4", "icon/16/forward.png");
+    with(btn4)
+    {
+      setTop(148);
+      setLeft(20);
+      addEventListener("execute", buttonExecute);
+    };
+
+    d.add(btn4);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Resizer_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Resizer_1.html
new file mode 100755 (executable)
index 0000000..05ed00b
--- /dev/null
@@ -0,0 +1,63 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+  
+  <div id="demoDescription">
+    <p>Test for qx.ui.resizer.Rezizer.</p>
+    <p>
+      The Resizer widget acts as a wrapper of another widget.  It allows the child widget to be resized by the end user.
+    </p>
+  </div>  
+
+  <script type="text/javascript">
+    function newResizer() {
+      var tArea = new qx.ui.form.TextArea;
+      tArea.setValue("Resize me\nI'm resizable");
+      tArea.set({
+        minWidth: 100,
+        minHeight: 50,
+        width: 200,
+        height: 100
+      });
+      return new qx.ui.resizer.Resizer(tArea);
+    }
+    
+    function newHBox() {
+      var hBox = new qx.ui.layout.BoxLayout;
+      hBox.set({
+        spacing: 10
+      });
+      hBox.auto();
+      hBox.add(newResizer(), newResizer());
+      return hBox;
+    }
+    
+    qx.core.Init.getInstance().defineMain(function() {
+      var vBox = new qx.ui.layout.VerticalBoxLayout;
+      var list = new qx.ui.form.List;
+      list.set({width: 100, height: 200, minWidth: 50, minHeight: 100, overflow: 'auto'});
+      for (var i = 0; i < 100; i++) {
+        list.add(new qx.ui.form.ListItem('Option number '+i));
+      }
+      vBox.add(new qx.ui.resizer.Resizer(list));
+      vBox.set({
+        spacing: 10,
+        top: 50,
+        left: 30
+      });
+      vBox.auto();
+      vBox.add(newHBox(), newHBox());
+      vBox.addToDocument();
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/RpcTreeFullControl_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/RpcTreeFullControl_1.html
new file mode 100644 (file)
index 0000000..3bd0fed
--- /dev/null
@@ -0,0 +1,194 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link
+   type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+
+  <div id="demoDescription">
+  <p><strong>Only works together with a RPC backend!</strong></p>
+    <p>
+    Shows a tree which listens for tree events.  This script communicates via
+    JSON-RPC to a backend server.  Each time a new tree node is opened, the
+    children are requested from the server.  See the server-side functions
+    at backend/php/services/qooxdoo/fs.php.
+  </p>
+  </div>
+
+<script type="text/javascript">
+qx.core.Init.getInstance().defineMain(
+    function()
+    {
+        var addChildren = function(parent, children)
+        {
+            var t;
+            var trs;
+            var child;
+
+            for (i = 0; i < children.length; i++)
+            {
+                child = children[i];
+
+                trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().newRow();
+
+                // Here's our indentation and tree-lines
+                trs.addIndent();
+
+                // If not a file or directory, change the icon
+                var bIsDirectory = ((child.mode & 0040000) != 0);
+                var bIsFile = ((child.mode & 0100000) != 0);
+                if (! bIsDirectory && ! bIsFile)
+                {
+                    trs.addIcon("icon/16/desktop.png",
+                                "icon/16/dictionary.png");
+                }
+                else
+                {
+                    trs.addIcon();
+                }
+
+                // The label
+                trs.addLabel(child.name);
+
+                // All else should be right justified
+                obj = new qx.ui.basic.HorizontalSpacer;
+                trs.addObject(obj, true);
+
+                // Add the permissions
+                mode = "";
+                mode = ((child.mode & 0001) ? "x" : "-") + mode;
+                mode = ((child.mode & 0002) ? "w" : "-") + mode;
+                mode = ((child.mode & 0004) ? "r" : "-") + mode;
+                mode = ((child.mode & 0010) ? "x" : "-") + mode;
+                mode = ((child.mode & 0020) ? "w" : "-") + mode;
+                mode = ((child.mode & 0040) ? "r" : "-") + mode;
+                mode = ((child.mode & 0100) ? "x" : "-") + mode;
+                mode = ((child.mode & 0200) ? "w" : "-") + mode;
+                mode = ((child.mode & 0400) ? "r" : "-") + mode;
+                obj = new qx.ui.basic.Label(mode);
+                obj.setWidth(80);
+                obj.setStyleProperty("fontFamily", "monospace");
+                trs.addObject(obj, true);
+
+                // Add a file size, date and mode
+                obj = new qx.ui.basic.Label(child.size + "");
+                obj.setWidth(50);
+                obj.setStyleProperty("fontFamily", "monospace");
+                trs.addObject(obj, true);
+
+                var d = new Date();
+                d.setTime(child.mtime * 1000);
+                obj = new qx.ui.basic.Label(d.toString().slice(0,33));
+                obj.setWidth(200);
+                obj.setStyleProperty("fontFamily", "monospace");
+                trs.addObject(obj, true);
+
+                if (bIsDirectory)
+                {
+                    t = new qx.ui.treefullcontrol.TreeFolder(trs);
+                }
+                else
+                {
+                    t = new qx.ui.treefullcontrol.TreeFile(trs);
+                }
+                parent.add(t);
+            }
+        }
+
+        /*
+         * Reset the default of always showing the plus/minus symbol.  The
+         * default is 'false'.  We want to always display it for each folder
+         * (and then stop displaying it if we determine upon open that there
+         * are no contents).
+         */
+        var constructor = qx.OO.classes["qx.ui.treefullcontrol.TreeFolder"];
+        qx.Proto = constructor.prototype;
+        qx.OO.changeProperty({
+              name : "alwaysShowPlusMinusSymbol",
+              type : "boolean",
+              defaultValue : true });
+
+        var rpc = new qx.io.remote.Rpc();
+        rpc.setTimeout(10000);
+        rpc.setUrl("/services/");
+        rpc.setServiceName("qooxdoo.fs");
+        rpc.setCrossDomain(false);
+
+        var mycall = null;
+
+        var trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Root");
+        var t = new qx.ui.treefullcontrol.Tree(trs);
+
+        with(t)
+        {
+            setBackgroundColor(255);
+            setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+            setOverflow("scrollY");
+
+            setHeight(null);
+            setTop(48);
+            setLeft(20);
+            setWidth(700);
+            setBottom(48);
+
+            setHideNode(true);          // hide the root node
+            setUseTreeLines(true);      // display tree lines
+        };
+
+        /*
+         * All subtrees will use this root node's event listeners.  Create an
+         * event listener for an open while empty.
+         */
+        t.addEventListener(
+            "treeOpenWhileEmpty",
+            function(e)
+            {
+                var parent = e.getData();
+                var hierarchy = parent.getHierarchy(new Array());
+
+                parent.debug("Requesting children...");
+
+                // Strip off the root node
+                hierarchy.shift();
+
+                mycall = rpc.callAsync(
+                    function(result, ex, id)
+                    {
+                        mycall = null;
+                        if (ex == null) {
+                            parent.debug("Children obtained.  Rendering...");
+                            addChildren(parent, result);
+                            parent.debug("Rendering complete.");
+                        } else {
+                            alert("Async(" + id + ") exception: " + ex);
+                        }
+                    },
+                    "readDirEntries",
+                    hierarchy,
+                    true);
+            });
+
+        qx.ui.core.ClientDocument.getInstance().add(t);
+
+        var trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Sandbox");
+        var tf = new qx.ui.treefullcontrol.TreeFolder(trs);
+        t.add(tf);
+    });
+/*
+ * Local Variables:
+ * mode: java
+ * End:
+ */
+</script>
+
+</body>
+</html>
+
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Spinner_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Spinner_1.html
new file mode 100644 (file)
index 0000000..05406d5
--- /dev/null
@@ -0,0 +1,106 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for qx.ui.form.Spinner.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+    var s1 = new qx.ui.form.Spinner;
+
+    with(s1)
+    {
+      setLeft(20);
+      setTop(64);
+    };
+
+    d.add(s1);
+
+    d.add( (new qx.ui.basic.Label("100").set({left:20, top:48})) );
+    d.add( (new qx.ui.basic.Label("0").set({left:20, top:90})) );
+
+    var s2 = new qx.ui.form.Spinner;
+
+    with(s2)
+    {
+      setLeft(100);
+      setTop(64);
+      setValue(30);
+      setMin(-30);
+      setMax(30);
+    };
+
+    d.add(s2);
+
+    d.add( (new qx.ui.basic.Label("30").set({left:100, top:48})) );
+    d.add( (new qx.ui.basic.Label("-30").set({left:100, top:90})) );
+
+    var s3 = new qx.ui.form.Spinner;
+
+    with(s3)
+    {
+      setLeft(180);
+      setTop(64);
+      setValue(0);
+      setMin(-3000);
+      setMax(3000);
+    };
+
+    d.add(s3);
+
+    d.add( (new qx.ui.basic.Label("3000").set({left:180, top:48})) );
+    d.add( (new qx.ui.basic.Label("-3000").set({left:180, top:90})) );
+
+    /*
+    s3._manager.addEventListener("changeValue", function(e) {
+      this.debug("Value: " + e.getData());
+    });
+    */
+
+    var s4 = new qx.ui.form.Spinner;
+    
+    with(s4)
+    {
+      setLeft(260);
+      setTop(64);
+      setValue(0);
+      setMin(100);
+      setMax(200);
+    };
+
+    d.add(s4);
+
+    d.add( (new qx.ui.basic.Label("200").set({left:260, top:48})) );
+    d.add( (new qx.ui.basic.Label("100").set({left:260, top:90})) );
+
+
+    var s5 = new qx.ui.form.Spinner( -200, null, -100);
+
+    with(s5)
+    {
+      setLeft(340);
+      setTop(64);
+    };
+
+    d.add(s5);
+
+    d.add( (new qx.ui.basic.Label("-100").set({left:340, top:48})) );
+    d.add( (new qx.ui.basic.Label("-200").set({left:340, top:90})) );
+
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/SplitPane_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/SplitPane_1.html
new file mode 100644 (file)
index 0000000..2f965c1
--- /dev/null
@@ -0,0 +1,72 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for normal width Splitpane, no holding knobs, live resize enabled.</p>
+  </div>
+
+  <script type="text/javascript">
+
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var frame = new qx.ui.layout.CanvasLayout;
+    frame.setLocation(20, 48);
+    frame.setBottom(48);
+    frame.setRight(300);
+    frame.setBackgroundColor("#134275");
+    frame.setPadding(20);
+    frame.addToDocument();
+
+    // the splitpane itself
+    var splitpane = new qx.ui.splitpane.HorizontalSplitPane("1*", "2*");
+    splitpane.setEdge(0);
+    splitpane.setLiveResize(true);
+    frame.add(splitpane);
+
+    // left Widget
+    var leftWidget = new qx.ui.form.TextArea("LeftWidget");
+    leftWidget.setWrap(true);
+    leftWidget.setBackgroundColor(new qx.renderer.color.Color("white"));
+    leftWidget.setWidth("100%");
+    leftWidget.setHeight("100%");
+
+    // rightWidget (another splitpane)
+    var rightWidget = new qx.ui.splitpane.VerticalSplitPane;
+    rightWidget.setHeight("100%");
+    rightWidget.setWidth("100%");
+    rightWidget.setLiveResize(true);
+
+    // add widgets to splitpane
+    splitpane.addLeft(leftWidget);
+    splitpane.addRight(rightWidget);
+
+
+
+    // right top widget
+    var topWidget = new qx.ui.form.TextArea("Right Top Widget");
+    topWidget.setBackgroundColor(new qx.renderer.color.Color("white"));
+    topWidget.setHeight("100%");
+    topWidget.setWidth("100%");
+
+    // right bottom widget
+    var bottomWidget = new qx.ui.embed.Iframe("http://www.qooxdoo.org");
+    bottomWidget.setHeight("100%");
+    bottomWidget.setWidth("100%");
+
+    // add widgets to right splitpane
+    rightWidget.addTop(topWidget);
+    rightWidget.addBottom(bottomWidget);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/SplitPane_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/SplitPane_2.html
new file mode 100644 (file)
index 0000000..29f07fe
--- /dev/null
@@ -0,0 +1,75 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for extra slim Splitpane, with holding knobs.</p>
+  </div>
+
+  <script type="text/javascript">
+
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var frame = new qx.ui.layout.CanvasLayout;
+    frame.setLocation(20, 48);
+    frame.setBottom(48);
+    frame.setRight(300);
+    frame.setBackgroundColor("#134275");
+    frame.setPadding(20);
+    frame.addToDocument();
+
+    // the splitpane itself
+    var splitpane = new qx.ui.splitpane.HorizontalSplitPane("1*", "2*");
+    splitpane.setEdge(0);
+    splitpane.setSplitterSize(1);
+    splitpane.setShowKnob(true);
+    frame.add(splitpane);
+
+    // left Widget
+    var leftWidget = new qx.ui.form.TextArea("LeftWidget");
+    leftWidget.setWrap(true);
+    leftWidget.setBackgroundColor(new qx.renderer.color.Color("white"));
+    leftWidget.setWidth("100%");
+    leftWidget.setHeight("100%");
+
+    // rightWidget (another splitpane)
+    var rightWidget = new qx.ui.splitpane.VerticalSplitPane;
+    rightWidget.setHeight("100%");
+    rightWidget.setWidth("100%");
+    rightWidget.setSplitterSize(1);
+    rightWidget.setShowKnob(true);
+
+
+    // add widgets to splitpane
+    splitpane.addLeft(leftWidget);
+    splitpane.addRight(rightWidget);
+
+
+
+    // right top widget
+    var topWidget = new qx.ui.form.TextArea("Right Top Widget");
+    topWidget.setBackgroundColor(new qx.renderer.color.Color("white"));
+    topWidget.setHeight("100%");
+    topWidget.setWidth("100%");
+
+    // right bottom widget
+    var bottomWidget = new qx.ui.embed.Iframe("http://www.qooxdoo.org");
+    bottomWidget.setHeight("100%");
+    bottomWidget.setWidth("100%");
+
+    // add widgets to right splitpane
+    rightWidget.addTop(topWidget);
+    rightWidget.addBottom(bottomWidget);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TabView_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TabView_1.html
new file mode 100644 (file)
index 0000000..0179891
--- /dev/null
@@ -0,0 +1,152 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tabbar implementation.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var tf1 = new qx.ui.pageview.tabview.TabView;
+    tf1.set({ left: 20, top: 48, right: 335, bottom: 48 });
+
+    var t1_1 = new qx.ui.pageview.tabview.Button("Edit");
+    var t1_2 = new qx.ui.pageview.tabview.Button("Find");
+    var t1_3 = new qx.ui.pageview.tabview.Button("Backup");
+
+    t1_1.setChecked(true);
+
+    tf1.getBar().add(t1_1, t1_2, t1_3);
+
+    var p1_1 = new qx.ui.pageview.tabview.Page(t1_1);
+    var p1_2 = new qx.ui.pageview.tabview.Page(t1_2);
+    var p1_3 = new qx.ui.pageview.tabview.Page(t1_3);
+
+    tf1.getPane().add(p1_1, p1_2, p1_3);
+
+    var f2 = new qx.ui.form.TextField("Find Anywhere");
+    var f3 = new qx.ui.form.TextField("Backup Input");
+
+    p1_2.add(f2);
+    p1_3.add(f3);
+
+    var c1 = new qx.ui.form.CheckBox("Place bar on top");
+    var c2 = new qx.ui.form.CheckBox("Align tabs to left");
+
+    c1.setTop(0);
+    c1.setChecked(true);
+
+    c2.setTop(20);
+    c2.setChecked(true);
+
+    p1_1.add(c1, c2);
+
+    c1.addEventListener("changeChecked", function(e) {
+      tf1.setPlaceBarOnTop(e.getData());
+    });
+
+    c2.addEventListener("changeChecked", function(e) {
+      tf1.setAlignTabsToLeft(e.getData());
+    });
+
+
+
+
+    var tf2 = new qx.ui.pageview.tabview.TabView;
+
+    tf2.set({ left: 0, top: 50, right: 0, bottom: 0 });
+
+
+
+    var t2_1 = new qx.ui.pageview.tabview.Button("Search for Files", "icon/16/file-open.png");
+    var t2_2 = new qx.ui.pageview.tabview.Button("Search the Web", "icon/16/network.png");
+    var t2_3 = new qx.ui.pageview.tabview.Button("Search for Text", "icon/16/contents.png");
+    var t2_4 = new qx.ui.pageview.tabview.Button("Search for Persons", "icon/16/emoticon.png");
+    var t2_5 = new qx.ui.pageview.tabview.Button("Search in Mails", "icon/16/mail.png");
+
+    t2_1.setChecked(true);
+
+    tf2.getBar().add(t2_1, t2_2, t2_3, t2_4, t2_5);
+
+    var p2_1 = new qx.ui.pageview.tabview.Page(t2_1);
+    var p2_2 = new qx.ui.pageview.tabview.Page(t2_2);
+    var p2_3 = new qx.ui.pageview.tabview.Page(t2_3);
+    var p2_4 = new qx.ui.pageview.tabview.Page(t2_4);
+    var p2_5 = new qx.ui.pageview.tabview.Page(t2_5);
+
+    tf2.getPane().add(p2_1, p2_2, p2_3, p2_4, p2_5);
+
+    var t2_1 = new qx.ui.form.TextField("Files...");
+    var t2_2 = new qx.ui.form.TextField("Web...");
+    var t2_3 = new qx.ui.form.TextField("Printers...");
+    var t2_4 = new qx.ui.form.TextField("Persons...");
+    var t2_5 = new qx.ui.form.TextField("Mails...");
+
+    t2_1.set({ top: 2, left: 0, width: 140 });
+    t2_2.set({ top: 2, left: 0, width: 140 });
+    t2_3.set({ top: 2, left: 0, width: 140 });
+    t2_4.set({ top: 2, left: 0, width: 140 });
+    t2_5.set({ top: 2, left: 0, width: 140 });
+
+    p2_1.add(t2_1);
+    p2_2.add(t2_2);
+    p2_3.add(t2_3);
+    p2_4.add(t2_4);
+    p2_5.add(t2_5);
+
+    var b2_1 = new qx.ui.form.Button("Search", "icon/16/search.png");
+    var b2_2 = new qx.ui.form.Button("Search", "icon/16/search.png");
+    var b2_3 = new qx.ui.form.Button("Search", "icon/16/search.png");
+    var b2_4 = new qx.ui.form.Button("Search", "icon/16/search.png");
+    var b2_5 = new qx.ui.form.Button("Search", "icon/16/search.png");
+
+    b2_1.set({ top: 0, left: 150 });
+    b2_2.set({ top: 0, left: 150 });
+    b2_3.set({ top: 0, left: 150 });
+    b2_4.set({ top: 0, left: 150 });
+    b2_5.set({ top: 0, left: 150 });
+
+    p2_1.add(b2_1);
+    p2_2.add(b2_2);
+    p2_3.add(b2_3);
+    p2_4.add(b2_4);
+    p2_5.add(b2_5);
+
+    function dosearch(e) {
+      alert("Searching...");
+    };
+
+    b2_1.addEventListener("click", dosearch);
+    b2_2.addEventListener("click", dosearch);
+    b2_3.addEventListener("click", dosearch);
+    b2_4.addEventListener("click", dosearch);
+    b2_5.addEventListener("click", dosearch);
+
+
+
+
+    p1_2.add(tf2);
+
+
+
+
+
+
+    d.add(tf1);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TabView_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TabView_2.html
new file mode 100644 (file)
index 0000000..0599a12
--- /dev/null
@@ -0,0 +1,127 @@
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+    <script type="text/javascript" src="../../script/qx.js"></script>
+  </head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tabbar implementation.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var tf1 = new qx.ui.pageview.tabview.TabView;
+    tf1.set({ left: 20, top: 48, right: 335, bottom: 48 });
+
+    var t1_1 = new qx.ui.pageview.tabview.Button("Edit");
+    var t1_2 = new qx.ui.pageview.tabview.Button("Find");
+    var t1_3 = new qx.ui.pageview.tabview.Button("Backup");
+    var t1_4 = new qx.ui.pageview.tabview.Button("System");
+    var t1_5 = new qx.ui.pageview.tabview.Button("Tools");
+    var t1_6 = new qx.ui.pageview.tabview.Button("Infos");
+
+    // set tab 1 active
+    t1_1.setChecked(true);    
+    
+    // add close images to tab
+    t1_1.setShowCloseButton(true);
+    t1_2.setShowCloseButton(true);
+    t1_3.setShowCloseButton(true);
+    t1_4.setShowCloseButton(true);
+    t1_5.setShowCloseButton(true);
+    t1_6.setShowCloseButton(true);
+
+    
+    // modify the default images
+    t1_2.setCloseButtonImage("icon/16/error.png");
+    t1_4.setCloseButtonImage("icon/16/apply.png");
+    // add an eventlistener on the buttons
+    t1_1.addEventListener("closetab", _ontabclose);
+    t1_2.addEventListener("closetab", _ontabclose);
+    t1_3.addEventListener("closetab", _ontabclose);
+    t1_4.addEventListener("closetab", _ontabclose);
+    t1_5.addEventListener("closetab", _ontabclose);
+    t1_6.addEventListener("closetab", _ontabclose);
+    
+    
+    
+    // this handler gets called if a tab-button fires a "closetab" event
+    function _ontabclose(e){
+      var btn = e.getData();
+      
+      var pagesArray = tf1.getPane().getChildren();
+      var pageSearched = null;
+      
+      for(var i = 0, l = pagesArray.length; i < l; i++){
+        var tmpPage = pagesArray[i];
+        if(tmpPage.getButton() === btn){
+          pageSearched = tmpPage;
+        }
+      }
+      if(pageSearched){
+
+        var itemsList = tf1.getBar().getChildren();
+        var lengthList = itemsList.length;    
+        var btnIndex = itemsList.indexOf(btn);
+      
+  // never remove the last tab
+        if( lengthList > 1 ) { 
+
+          // Select another tab
+          if (btnIndex < lengthList-1 ){
+            itemsList[btnIndex+1].setChecked(true);
+          }
+          else {
+            itemsList[btnIndex-1].setChecked(true);
+          }         
+          
+          btn.getManager().remove(btn);
+          tf1.getBar().remove(btn);
+          
+          tf1.getPane().remove(pageSearched);
+          
+          pageSearched.dispose();
+          btn.dispose();
+        } else {
+    alert("Last Tab won't be removed!");
+  }
+      }
+     
+      e.stopPropagation();
+    }
+    
+    tf1.getBar().add(t1_1, t1_2, t1_3, t1_4, t1_5, t1_6);
+
+    var p1_1 = new qx.ui.pageview.tabview.Page(t1_1);
+    var p1_2 = new qx.ui.pageview.tabview.Page(t1_2);
+    var p1_3 = new qx.ui.pageview.tabview.Page(t1_3);
+    var p1_4 = new qx.ui.pageview.tabview.Page(t1_4);
+    var p1_5 = new qx.ui.pageview.tabview.Page(t1_5);
+    var p1_6 = new qx.ui.pageview.tabview.Page(t1_6);
+
+    p1_1.setBackgroundColor("green");
+    p1_2.setBackgroundColor("red");
+    p1_3.setBackgroundColor("blue");
+    p1_4.setBackgroundColor("black");
+    p1_5.setBackgroundColor("yellow");
+    p1_6.setBackgroundColor("orange");
+    
+    tf1.getPane().add(p1_1, p1_2, p1_3, p1_4, p1_5, p1_6);
+
+    d.add(tf1);
+    
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Table_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Table_1.html
new file mode 100644 (file)
index 0000000..1fcf4b0
--- /dev/null
@@ -0,0 +1,107 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>A table with virtual scrolling, model-view-controller, renderers,
+      editing, sorting, column resizing, column reordering,
+      column hiding.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var main = new qx.ui.layout.VerticalBoxLayout();
+    main.set({ left:10, top:30, right:300, bottom:30, spacing:5 });
+
+    var nextId = 0;
+    var createRandomRows = function(rowCount) {
+      var rowData = [];
+      var now = new Date().getTime();
+      var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
+      for (var row = 0; row < rowCount; row++) {
+        var date = new Date(now + Math.random() * dateRange - dateRange / 2);
+        rowData.push([ nextId++, Math.random() * 10000, date, (Math.random() > 0.5) ]);
+      }
+      return rowData;
+    };
+
+    // Create the initial data
+    var rowData = createRandomRows(50);
+
+    // Add some encoding relevant stuff
+    rowData[15][1] = "<b>A html &amp; entities escaping test</b>";
+
+    // table model
+    var tableModel = new qx.ui.table.SimpleTableModel();
+    tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
+    tableModel.setData(rowData);
+    tableModel.setColumnEditable(1, true);
+    tableModel.setColumnEditable(2, true);
+
+    // table
+    var table = new qx.ui.table.Table(tableModel);
+    with (table) {
+      set({ width:"100%", height:"1*", border:qx.renderer.border.BorderPresets.getInstance().thinInset });
+      getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
+      getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
+      setColumnWidth(0, 80);
+      setColumnWidth(1, 200);
+      setColumnWidth(2, 150);
+    };
+    main.add(table);
+
+    var buttonBar = new qx.ui.layout.HorizontalBoxLayout();
+    buttonBar.set({ width:"100%", height:"auto", spacing:5 });
+    main.add(buttonBar);
+
+    var button = new qx.ui.form.Button("Change row with ID 10");
+    button.addEventListener("execute", function(evt) {
+      var rowData = createRandomRows(1);
+      for (var i = 1; i < tableModel.getColumnCount(); i++) {
+        tableModel.setValue(i, 10, rowData[0][i]);
+      }
+      this.info("Row 10 changed");
+    });
+    buttonBar.add(button);
+
+    var button = new qx.ui.form.Button("Add 10 rows");
+    button.addEventListener("execute", function(evt) {
+      var rowData = createRandomRows(10);
+      tableModel.addRows(rowData);
+      this.info("10 rows added");
+    });
+    buttonBar.add(button);
+
+    var button = new qx.ui.form.Button("Remove 5 rows");
+    button.addEventListener("execute", function(evt) {
+      var rowCount = tableModel.getRowCount();
+      tableModel.removeRows(rowCount-5, 5);
+      this.info("5 rows removed");
+    });
+    buttonBar.add(button);
+
+    var checkBox = new qx.ui.form.CheckBox("keepFirstVisibleRowComplete", null, null, table.getKeepFirstVisibleRowComplete());
+    checkBox.setToolTip(new qx.ui.popup.ToolTip("Whether the the first visible row should be rendered completely when scrolling."));
+    checkBox.addEventListener("changeChecked", function(evt) {
+      table.setKeepFirstVisibleRowComplete(checkBox.getChecked());
+      this.info("Set keepFirstVisibleRowComplete to: " + checkBox.getChecked());
+    });
+    buttonBar.add(checkBox);
+
+    d.add(main);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Table_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Table_2.html
new file mode 100644 (file)
index 0000000..d09cc85
--- /dev/null
@@ -0,0 +1,50 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>A table with fixed columns.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    // table model
+    var tableModel = new qx.ui.table.SimpleTableModel();
+    tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
+    var rowData = [];
+    var now = new Date().getTime();
+    var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
+    for (var row = 0; row < 100; row++) {
+      var date = new Date(now + Math.random() * dateRange - dateRange / 2);
+      rowData.push([ row, Math.random() * 10000, date, (Math.random() > 0.5) ]);
+    }
+    tableModel.setData(rowData);
+    tableModel.setColumnEditable(1, true);
+    tableModel.setColumnEditable(2, true);
+
+    // table
+    var table = new qx.ui.table.Table(tableModel);
+    with (table) {
+      set({ left:10, top:30, width:350, height:300, border:qx.renderer.border.BorderPresets.getInstance().thinInset });
+      setMetaColumnCounts([1, -1]);
+      getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
+      getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
+    };
+
+    d.add(table);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ToolBar_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ToolBar_1.html
new file mode 100644 (file)
index 0000000..5fdd183
--- /dev/null
@@ -0,0 +1,252 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Introduce all classes needed for creating real qx.ui.toolbar.ToolBars. This includes qx.ui.toolbar.ToolBars,
+    qx.ui.toolbar.ToolBarParts, qx.ui.toolbar.Separator and qx.ui.toolbar.ToolBarButtons.</p>
+
+    <p>The qx.ui.toolbar.ToolBarButtons and QxRadioButtons in this example are beautifully
+    decoupled by "global" qx.event.type.DataEvent.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var tb = new qx.ui.toolbar.ToolBar;
+      with(tb)
+      {
+        setTop(48);
+        setLeft(20);
+        setRight(335);
+        
+        // setWidth("auto");
+      };
+
+      var btns1 = [
+        { type : "button", icon : "file-new", text : "New" },
+        { type : "separator" },
+        { type : "button", icon : "edit-copy", text : "Copy" },
+        { type : "button", icon : "edit-cut", text : "Cut" },
+        { type : "button", icon : "edit-paste", text : "Paste" }
+      ];
+
+      var btns2 = [
+        { type : "button", icon : "up", text : "Upload" },
+        { type : "button", icon : "down", text : "Download" }
+      ];
+
+      var btns3 = [
+        { type : "button", icon : "help", text : "Help" }
+      ];
+
+      var bars = [ btns1, btns2, btns3 ];
+
+      function changeLayout(e) {
+        this.setShow(e.getData());
+      };
+      
+      function changeSize(e) {
+        var v = e.getData();
+        var o = v == 22 ? 32 : 22;
+        
+        this.setIcon(this.getIcon().replace(o, v));
+      };      
+      
+      function buttonExecute() { this.debug("Executed: " + this.getLabel()); };
+
+      var useParts = true;
+
+
+      for (var j=0; j<bars.length; j++)
+      {
+        var btns = bars[j];
+
+        if (useParts) {
+          var tbp = new qx.ui.toolbar.Part;
+        };
+
+        for (var i=0; i<btns.length; i++)
+        {
+          var btn = btns[i];
+
+          switch(btn.type)
+          {
+            case "separator":
+              var o = new qx.ui.toolbar.Separator;
+              break;
+
+            case "button":
+              var o = new qx.ui.toolbar.Button(btn.text, "icon/22/" + btn.icon + ".png");
+
+              // beautiful decoupling: toolbar buttons don't know about radio boxes
+
+              d.addEventListener("changeLayout", changeLayout, o);
+              d.addEventListener("changeSize", changeSize, o);
+              
+              o.addEventListener("execute", buttonExecute);
+              break;
+          };
+
+          if (useParts)
+          {
+            tbp.add(o);
+          }
+          else
+          {
+            tb.add(o);
+          };
+        };
+
+        if (useParts) {
+          tb.add(tbp);
+        };
+      };
+
+      d.add(tb);
+
+
+
+
+
+
+      var rd1 = new qx.ui.form.RadioButton("Show Icons and Label", "both");
+      var rd2 = new qx.ui.form.RadioButton("Show Icons", "icon");
+      var rd3 = new qx.ui.form.RadioButton("Show Label", "label");
+
+      with(rd1)
+      {
+        setTop(140);
+        setLeft(20);
+        setChecked(true);
+      };
+
+      with(rd2)
+      {
+        setTop(160);
+        setLeft(20);
+      };
+
+      with(rd3)
+      {
+        setTop(180);
+        setLeft(20);
+      };
+
+
+      var rbm = new qx.manager.selection.RadioManager();
+
+      rbm.add(rd1);
+      rbm.add(rd2);
+      rbm.add(rd3);
+
+
+      // beautiful decoupling: radio boxes don't know about toolbar buttons
+      rbm.addEventListener("changeSelected", function(e) {
+        d.dispatchEvent( new qx.event.type.DataEvent("changeLayout", e.getData().getValue() ) );
+      });
+
+      d.add(rd1, rd2, rd3);
+
+
+
+      // Alignment
+      var ra1 = new qx.ui.form.RadioButton("Left Aligned", "left");
+      var ra2 = new qx.ui.form.RadioButton("Centered", "center");
+      var ra3 = new qx.ui.form.RadioButton("Right Aligned", "right");
+
+      with(ra1)
+      {
+        setTop(140);
+        setLeft(220);
+        setChecked(true);
+      };
+
+      with(ra2)
+      {
+        setTop(160);
+        setLeft(220);
+      };
+
+      with(ra3)
+      {
+        setTop(180);
+        setLeft(220);
+      };
+
+
+      var ram = new qx.manager.selection.RadioManager();
+
+      ram.add(ra1);
+      ram.add(ra2);
+      ram.add(ra3);
+
+      d.add(ra1, ra2, ra3);
+
+      ram.addEventListener("changeSelected", function(e) {
+        tb.setHorizontalChildrenAlign(e.getData().getValue());
+      });
+
+
+
+
+      // Icon Sizes
+      var b3 = new qx.ui.form.Button("Icons: 22 Pixel", "icon/16/colors.png");
+
+      with(b3)
+      {
+        setTop(140);
+        setLeft(420);
+        setHorizontalAlign("center");
+      };
+
+      b3.addEventListener("execute", function(e) {
+        d.dispatchEvent(new qx.event.type.DataEvent("changeSize", 22));
+      });
+
+      var b4 = new qx.ui.form.Button("Icons: 32 Pixel", "icon/16/colors.png");
+
+      with(b4)
+      {
+        setTop(170);
+        setLeft(420);
+        setHorizontalAlign("center");
+      };
+
+      b4.addEventListener("execute", function(e) {
+        d.dispatchEvent(new qx.event.type.DataEvent("changeSize", 32));
+      });
+
+      d.add(b3, b4);
+      
+      
+      
+      
+
+      // Icon & Color Themes
+      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 248);
+      qx.manager.object.ColorManager.getInstance().createThemeList(d, 220, 248);
+       
+
+     
+      /*
+      Test for cloning support
+      
+      tb2 = tb.clone(true);
+      tb2.setTop(400);
+      */
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ToolBar_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ToolBar_2.html
new file mode 100644 (file)
index 0000000..13ccd5b
--- /dev/null
@@ -0,0 +1,269 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Introducing qx.ui.toolbar.CheckBox and qx.ui.toolbar.RadioButton.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      function changeLayout(e) {
+        this.setShow(e.getData());
+      };
+
+      function changeSize(e) {
+        var v = e.getData();
+        var o = v == 22 ? 32 : 22;
+
+        this.setIcon(this.getIcon().replace(o, v));
+      };
+
+      var tb = new qx.ui.toolbar.ToolBar;
+      with(tb)
+      {
+        setTop(48);
+        setLeft(20);
+        setRight(335);
+        setParent(d);
+      };
+
+
+      var tbp1 = new qx.ui.toolbar.Part;
+      tb.add(tbp1);
+
+      var tbp2 = new qx.ui.toolbar.Part;
+      tb.add(tbp2);
+
+      var tbp3 = new qx.ui.toolbar.Part;
+      tb.add(tbp3);
+
+      var tbp4 = new qx.ui.toolbar.Part;
+      tb.add(tbp4);
+
+
+
+      // Default
+      var tbd1 = new qx.ui.toolbar.Button("Default", "icon/22/file-new.png");
+      tbp1.add(tbd1);
+      d.addEventListener("changeLayout", changeLayout, tbd1);
+      d.addEventListener("changeSize", changeSize, tbd1);
+
+      tbd1._marker = true;
+
+      tbp1.setDisplay(false);
+      tbd1.setDisplay(false);
+
+
+
+      // Checkbox
+      var tbc1 = new qx.ui.toolbar.CheckBox("Check", "icon/22/configure.png", true);
+      tbp2.add(tbc1);
+      d.addEventListener("changeLayout", changeLayout, tbc1);
+      d.addEventListener("changeSize", changeSize, tbc1);
+
+
+
+      // Radio
+      var tbr1 = new qx.ui.toolbar.RadioButton("Radio1", "icon/22/view-choose.png");
+      tbp3.add(tbr1);
+      d.addEventListener("changeLayout", changeLayout, tbr1);
+      d.addEventListener("changeSize", changeSize, tbr1);
+
+      var tbr2 = new qx.ui.toolbar.RadioButton("Radio2", "icon/22/view-detailed.png", true);
+      tbp3.add(tbr2);
+      d.addEventListener("changeLayout", changeLayout, tbr2);
+      d.addEventListener("changeSize", changeSize, tbr2);
+
+      var tbr3 = new qx.ui.toolbar.RadioButton("Radio3", "icon/22/view-icon.png");
+      tbp3.add(tbr3);
+      d.addEventListener("changeLayout", changeLayout, tbr3);
+      d.addEventListener("changeSize", changeSize, tbr3);
+
+      // Radio Mananger
+      var tbr_manager = new qx.manager.selection.RadioManager(null, [tbr1, tbr2, tbr3]);
+
+
+
+
+      // Radio
+      var tbs1 = new qx.ui.toolbar.RadioButton("Radio1", "icon/22/view-choose.png");
+      tbp4.add(tbs1);
+      tbs1.setDisableUncheck(true);
+      d.addEventListener("changeLayout", changeLayout, tbs1);
+      d.addEventListener("changeSize", changeSize, tbs1);
+
+      var tbs2 = new qx.ui.toolbar.RadioButton("Radio2", "icon/22/view-detailed.png", true);
+      tbp4.add(tbs2);
+      tbs2.setDisableUncheck(true);
+      d.addEventListener("changeLayout", changeLayout, tbs2);
+      d.addEventListener("changeSize", changeSize, tbs2);
+
+      var tbs3 = new qx.ui.toolbar.RadioButton("Radio3", "icon/22/view-icon.png");
+      tbp4.add(tbs3);
+      tbs3.setDisableUncheck(true);
+      d.addEventListener("changeLayout", changeLayout, tbs3);
+      d.addEventListener("changeSize", changeSize, tbs3);
+
+      // Radio Mananger
+      var tbs_manager = new qx.manager.selection.RadioManager(null, [tbs1, tbs2, tbs3]);
+
+
+
+
+      var rd1 = new qx.ui.form.RadioButton("Show Icons and Label", "both");
+      var rd2 = new qx.ui.form.RadioButton("Show Icons", "icon");
+      var rd3 = new qx.ui.form.RadioButton("Show Label", "label");
+
+      with(rd1)
+      {
+        setTop(140);
+        setLeft(20);
+      };
+
+      with(rd2)
+      {
+        setTop(160);
+        setLeft(20);
+      };
+
+      with(rd3)
+      {
+        setTop(180);
+        setLeft(20);
+      };
+
+
+      var rbm = new qx.manager.selection.RadioManager();
+
+      rbm.add(rd1);
+      rbm.add(rd2);
+      rbm.add(rd3);
+
+      // beautiful decoupling: radio boxes don't know about toolbar buttons
+      rbm.addEventListener("changeSelected", function(e)
+      {
+        d.dispatchEvent( new qx.event.type.DataEvent("changeLayout", e.getData().getValue() ) );
+      });
+
+      d.add(rd1, rd2, rd3);
+
+
+      // apply default layout
+      rd1.setChecked(true);
+
+
+
+
+
+      // Alignment
+      var ra1 = new qx.ui.form.RadioButton("Left Aligned", "left");
+      var ra2 = new qx.ui.form.RadioButton("Centered", "center");
+      var ra3 = new qx.ui.form.RadioButton("Right Aligned", "right");
+
+      with(ra1)
+      {
+        setTop(140);
+        setLeft(220);
+        setChecked(true);
+      };
+
+      with(ra2)
+      {
+        setTop(160);
+        setLeft(220);
+      };
+
+      with(ra3)
+      {
+        setTop(180);
+        setLeft(220);
+      };
+
+
+      var ram = new qx.manager.selection.RadioManager();
+
+      ram.add(ra1);
+      ram.add(ra2);
+      ram.add(ra3);
+
+      d.add(ra1, ra2, ra3);
+
+      ram.addEventListener("changeSelected", function(e) {
+        tb.setHorizontalChildrenAlign(e.getData().getValue());
+      });
+
+
+
+
+      // Icon Sizes
+      var b3 = new qx.ui.form.Button("Icons: 22 Pixel", "icon/16/colors.png");
+
+      with(b3)
+      {
+        setTop(140);
+        setLeft(420);
+        setHorizontalAlign("center");
+      };
+
+      b3.addEventListener("execute", function(e) {
+        d.dispatchEvent(new qx.event.type.DataEvent("changeSize", 22));
+      });
+
+      var b4 = new qx.ui.form.Button("Icons: 32 Pixel", "icon/16/colors.png");
+
+      with(b4)
+      {
+        setTop(170);
+        setLeft(420);
+        setHorizontalAlign("center");
+      };
+
+      b4.addEventListener("execute", function(e) {
+        d.dispatchEvent(new qx.event.type.DataEvent("changeSize", 32));
+      });
+
+      d.add(b3, b4);
+
+
+
+
+
+
+      var chkShowBtn1 = new qx.ui.form.CheckBox("Show First Button");
+
+      chkShowBtn1.setLocation(20, 500);
+      chkShowBtn1.addEventListener("changeChecked", function(e) {
+        tbd1.setDisplay(e.getData());
+      });
+
+      var chkShowPart1 = new qx.ui.form.CheckBox("Show First Part");
+
+      chkShowPart1.setLocation(220, 500);
+      chkShowPart1.addEventListener("changeChecked", function(e) {
+        tbp1.setDisplay(e.getData());
+      });
+
+      d.add(chkShowBtn1, chkShowPart1);
+
+
+
+      // Icon & Color Themes
+      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 248);
+      qx.manager.object.ColorManager.getInstance().createThemeList(d, 220, 248);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ToolBar_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ToolBar_3.html
new file mode 100644 (file)
index 0000000..7cb8745
--- /dev/null
@@ -0,0 +1,184 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Again a nice example which shows how to use qx.ui.toolbar.ToolBar as a menubar system.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+      
+      var c1 = new qx.client.Command();
+      c1.addEventListener("execute", function(e) {
+        this.debug("Execute: " + e.getData().getLabel());
+      });
+      
+      
+      
+
+      var m1 = new qx.ui.menu.Menu;
+      
+      var mb1_01 = new qx.ui.menu.Button("New", null, c1);
+      var mb1_02 = new qx.ui.menu.Button("Open", null, c1);
+      var mb1_03 = new qx.ui.menu.Button("Save", null, c1);
+      var mb1_04 = new qx.ui.menu.Button("Save as", null, c1);
+      var mb1_05 = new qx.ui.menu.Button("Close", null, c1);
+      var mb1_06 = new qx.ui.menu.Button("Restore last saved", null, c1);
+      
+      m1.add(mb1_01, mb1_02, mb1_03, mb1_04, mb1_05, mb1_06);
+
+
+      var m2 = new qx.ui.menu.Menu;
+
+      var mb2_01 = new qx.ui.menu.Button("Undo", null, c1);
+      var mb2_02 = new qx.ui.menu.Button("Redo", null, c1);
+      var mb2_b1 = new qx.ui.menu.Separator();
+      var mb2_03 = new qx.ui.menu.Button("Cut", "icon/16/edit-cut.png", c1);
+      var mb2_04 = new qx.ui.menu.Button("Copy", "icon/16/edit-copy.png", c1);
+      var mb2_05 = new qx.ui.menu.Button("Paste", "icon/16/edit-paste.png", c1);
+      var mb2_06 = new qx.ui.menu.Button("Delete", "icon/16/edit-delete.png", c1);
+      var mb2_b2 = new qx.ui.menu.Separator();
+      var mb2_07 = new qx.ui.menu.Button("Select All", null, c1);
+      var mb2_08 = new qx.ui.menu.Button("Find", null, c1);
+      var mb2_09 = new qx.ui.menu.Button("Find Again", null, c1);
+      
+      
+      
+
+      mb2_05.setEnabled(false);
+      mb2_06.setEnabled(false);
+      mb2_09.setEnabled(false);
+      
+      m2.add(mb2_01, mb2_02, mb2_b1, mb2_03, mb2_04, mb2_05, mb2_06, mb2_b2, mb2_07, mb2_08, mb2_09);
+
+
+      var m3 = new qx.ui.menu.Menu;
+      var m3_suba = new qx.ui.menu.Menu;
+      var m3_subb = new qx.ui.menu.Menu;
+      var m3_subc = new qx.ui.menu.Menu;
+      var m3_subd = new qx.ui.menu.Menu;
+
+      var mb3_01 = new qx.ui.menu.CheckBox("File List", c1, false);
+      var mb3_02 = new qx.ui.menu.CheckBox("Syntax Highlighting", c1, true);
+      var mb3_03 = new qx.ui.menu.CheckBox("Statusbar", c1, true);
+      var mb3_b1 = new qx.ui.menu.Separator();
+      var mb3_04 = new qx.ui.menu.Button("Printer Font", null, null, m3_suba);
+      var mb3_05 = new qx.ui.menu.Button("Editor Font", null, null, m3_subb);
+      var mb3_06 = new qx.ui.menu.Button("Export Font", null, null, m3_subc);
+      var mb3_b2 = new qx.ui.menu.Separator();
+      var mb3_07 = new qx.ui.menu.Button("Advanced", null, null, m3_subd);
+      
+      m3.add(mb3_01, mb3_02, mb3_03, mb3_b1, mb3_04, mb3_05, mb3_06, mb3_b2, mb3_07);
+      
+      var mb3_suba_01 = new qx.ui.menu.Button("Tahoma, 11pt", null, c1);
+      var mb3_suba_02 = new qx.ui.menu.Button("Tahoma, 12pt", null, c1);
+      var mb3_suba_03 = new qx.ui.menu.Button("Tahoma, 13pt", null, c1);
+      var mb3_suba_04 = new qx.ui.menu.Button("Tahoma, 14pt", null, c1);
+      var mb3_suba_05 = new qx.ui.menu.Button("Tahoma, 15pt", null, c1);
+
+      m3_suba.add(mb3_suba_01, mb3_suba_02, mb3_suba_03, mb3_suba_04, mb3_suba_05);      
+      
+      var mb3_subb_01 = new qx.ui.menu.Button("Verdana, 11pt", null, c1);
+      var mb3_subb_02 = new qx.ui.menu.Button("Verdana, 12pt", null, c1);
+      var mb3_subb_03 = new qx.ui.menu.Button("Verdana, 13pt", null, c1);
+      var mb3_subb_04 = new qx.ui.menu.Button("Verdana, 14pt", null, c1);
+      var mb3_subb_05 = new qx.ui.menu.Button("Verdana, 15pt", null, c1);
+
+      m3_subb.add(mb3_subb_01, mb3_subb_02, mb3_subb_03, mb3_subb_04, mb3_subb_05);      
+
+      var mb3_subc_01 = new qx.ui.menu.Button("Courier, 11pt", null, c1);
+      var mb3_subc_02 = new qx.ui.menu.Button("Courier, 12pt", null, c1);
+      var mb3_subc_03 = new qx.ui.menu.Button("Courier, 13pt", null, c1);
+      var mb3_subc_04 = new qx.ui.menu.Button("Courier, 14pt", null, c1);
+      var mb3_subc_05 = new qx.ui.menu.Button("Courier, 15pt", null, c1);
+
+      m3_subc.add(mb3_subc_01, mb3_subc_02, mb3_subc_03, mb3_subc_04, mb3_subc_05);      
+      
+      var mb3_subd_02_suba = new qx.ui.menu.Menu();
+      
+      var mb3_subd_02_suba_01 = new qx.ui.menu.Button("First", null, c1);
+      var mb3_subd_02_suba_02 = new qx.ui.menu.Button("Second", null, c1);
+      var mb3_subd_02_suba_03 = new qx.ui.menu.Button("Third", null, c1);
+      
+      mb3_subd_02_suba.add(mb3_subd_02_suba_01, mb3_subd_02_suba_02, mb3_subd_02_suba_03);
+      
+      var mb3_subd_01 = new qx.ui.menu.Button("First", null, c1);
+      var mb3_subd_02 = new qx.ui.menu.Button("Second", null, c1, mb3_subd_02_suba);
+      var mb3_subd_03 = new qx.ui.menu.Button("Third", null, c1);
+
+      m3_subd.add(mb3_subd_01, mb3_subd_02, mb3_subd_03);
+      
+      var m4 = new qx.ui.menu.Menu;
+      
+      var m4_suba = new qx.ui.menu.Menu;      
+
+      var mb4_01 = new qx.ui.menu.Button("View", null, c1, m4_suba);
+      var mb4_b1 = new qx.ui.menu.Separator();
+      var mb4_02 = new qx.ui.menu.Button("Editor Preferences...", null, c1);
+      var mb4_03 = new qx.ui.menu.Button("Editor Extensions", null, c1);
+      var mb4_04 = new qx.ui.menu.Button("Framework Preferences", null, c1);
+
+      m4.add(mb4_01, mb4_b1, mb4_02, mb4_03, mb4_04);
+      
+      var mb4_suba_01 = new qx.ui.menu.Button("New Window", null, c1);
+      var mb4_suba_b1 = new qx.ui.menu.Separator();
+      var mb4_suba_02 = new qx.ui.menu.RadioButton("Overlapping", c1, true);
+      var mb4_suba_03 = new qx.ui.menu.RadioButton("Split Horizontally", c1);
+      var mb4_suba_04 = new qx.ui.menu.RadioButton("Split Vertically", c1);
+      var mb4_suba_b2 = new qx.ui.menu.Separator();
+      var mb4_suba_05 = new qx.ui.menu.Button("Next Window", null, c1);
+      var mb4_suba_06 = new qx.ui.menu.Button("Previous Window", null, c1);
+
+      m4_suba.add(mb4_suba_01, mb4_suba_b1, mb4_suba_02, mb4_suba_03, mb4_suba_04, mb4_suba_b2, mb4_suba_05, mb4_suba_06);
+
+      var mb4_manager = new qx.manager.selection.RadioManager("windowMode", [ mb4_suba_02, mb4_suba_03, mb4_suba_04 ]);
+
+      var m5 = new qx.ui.menu.Menu;
+      
+      var mb5_01 = new qx.ui.menu.Button("Help", null, c1);
+      var mb5_02 = new qx.ui.menu.Button("About", null, c1);
+      
+      m5.add(mb5_01, mb5_02);
+      
+      d.add(m1, m2, m3, m3_suba, m3_subb, m3_subc, m3_subd, mb3_subd_02_suba, m4, m4_suba, m5);
+
+
+      var mb1 = new qx.ui.toolbar.ToolBar;
+      
+      mb1.setTop(48);
+      mb1.setRight(335);
+      mb1.setLeft(20);      
+      
+      var mbb1 = new qx.ui.toolbar.MenuButton("File", m1);
+      var mbb2 = new qx.ui.toolbar.MenuButton("Edit", m2);
+      var mbb3 = new qx.ui.toolbar.MenuButton("View", m3);
+      var mbb4 = new qx.ui.toolbar.MenuButton("Options", m4);
+      var mbb5 = new qx.ui.toolbar.MenuButton("Help", m5);
+            
+      mb1.add(mbb1, mbb2, mbb3, mbb4, mbb5);
+      
+      d.add(mb1);
+      
+      
+      
+
+      // Icon & Color Themes
+      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 348);
+      qx.manager.object.ColorManager.getInstance().createThemeList(d, 220, 348);      
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ToolBar_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ToolBar_4.html
new file mode 100644 (file)
index 0000000..28aff30
--- /dev/null
@@ -0,0 +1,196 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Again a nice example which shows how to use qx.ui.toolbar.ToolBar as a menubar system.</p>
+    <p>Added some parts and a new flex zone which aligns the help button to the right edge</p>
+    <p>Added some image and a qx.ui.toolbar.CheckBox, you can event combine all these features as you can easily see here.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var c1 = new qx.client.Command();
+      c1.addEventListener("execute", function(e) {
+        this.debug("Execute: " + e.getData().getLabel());
+      });
+
+
+
+
+      var m1 = new qx.ui.menu.Menu;
+
+      var mb1_01 = new qx.ui.menu.Button("New", null, c1);
+      var mb1_02 = new qx.ui.menu.Button("Open", null, c1);
+      var mb1_03 = new qx.ui.menu.Button("Save", null, c1);
+      var mb1_04 = new qx.ui.menu.Button("Save as", null, c1);
+      var mb1_05 = new qx.ui.menu.Button("Close", null, c1);
+      var mb1_06 = new qx.ui.menu.Button("Restore last saved", null, c1);
+
+      m1.add(mb1_01, mb1_02, mb1_03, mb1_04, mb1_05, mb1_06);
+
+
+      var m2 = new qx.ui.menu.Menu;
+
+      var mb2_01 = new qx.ui.menu.Button("Undo", null, c1);
+      var mb2_02 = new qx.ui.menu.Button("Redo", null, c1);
+      var mb2_b1 = new qx.ui.menu.Separator();
+      var mb2_03 = new qx.ui.menu.Button("Cut", "icon/16/edit-cut.png", c1);
+      var mb2_04 = new qx.ui.menu.Button("Copy", "icon/16/edit-copy.png", c1);
+      var mb2_05 = new qx.ui.menu.Button("Paste", "icon/16/edit-paste.png", c1);
+      var mb2_06 = new qx.ui.menu.Button("Delete", "icon/16/edit-delete.png", c1);
+      var mb2_b2 = new qx.ui.menu.Separator();
+      var mb2_07 = new qx.ui.menu.Button("Select All", null, c1);
+      var mb2_08 = new qx.ui.menu.Button("Find", null, c1);
+      var mb2_09 = new qx.ui.menu.Button("Find Again", null, c1);
+
+
+
+
+      mb2_05.setEnabled(false);
+      mb2_06.setEnabled(false);
+      mb2_09.setEnabled(false);
+
+      m2.add(mb2_01, mb2_02, mb2_b1, mb2_03, mb2_04, mb2_05, mb2_06, mb2_b2, mb2_07, mb2_08, mb2_09);
+
+
+      var m3 = new qx.ui.menu.Menu;
+      var m3_suba = new qx.ui.menu.Menu;
+      var m3_subb = new qx.ui.menu.Menu;
+      var m3_subc = new qx.ui.menu.Menu;
+      var m3_subd = new qx.ui.menu.Menu;
+
+      var mb3_01 = new qx.ui.menu.CheckBox("File List", c1, false);
+      var mb3_02 = new qx.ui.menu.CheckBox("Syntax Highlighting", c1, true);
+      var mb3_03 = new qx.ui.menu.CheckBox("Statusbar", c1, true);
+      var mb3_b1 = new qx.ui.menu.Separator();
+      var mb3_04 = new qx.ui.menu.Button("Printer Font", null, null, m3_suba);
+      var mb3_05 = new qx.ui.menu.Button("Editor Font", null, null, m3_subb);
+      var mb3_06 = new qx.ui.menu.Button("Export Font", null, null, m3_subc);
+      var mb3_b2 = new qx.ui.menu.Separator();
+      var mb3_07 = new qx.ui.menu.Button("Advanced", null, null, m3_subd);
+
+      m3.add(mb3_01, mb3_02, mb3_03, mb3_b1, mb3_04, mb3_05, mb3_06, mb3_b2, mb3_07);
+
+      var mb3_suba_01 = new qx.ui.menu.Button("Tahoma, 11pt", null, c1);
+      var mb3_suba_02 = new qx.ui.menu.Button("Tahoma, 12pt", null, c1);
+      var mb3_suba_03 = new qx.ui.menu.Button("Tahoma, 13pt", null, c1);
+      var mb3_suba_04 = new qx.ui.menu.Button("Tahoma, 14pt", null, c1);
+      var mb3_suba_05 = new qx.ui.menu.Button("Tahoma, 15pt", null, c1);
+
+      m3_suba.add(mb3_suba_01, mb3_suba_02, mb3_suba_03, mb3_suba_04, mb3_suba_05);
+
+      var mb3_subb_01 = new qx.ui.menu.Button("Verdana, 11pt", null, c1);
+      var mb3_subb_02 = new qx.ui.menu.Button("Verdana, 12pt", null, c1);
+      var mb3_subb_03 = new qx.ui.menu.Button("Verdana, 13pt", null, c1);
+      var mb3_subb_04 = new qx.ui.menu.Button("Verdana, 14pt", null, c1);
+      var mb3_subb_05 = new qx.ui.menu.Button("Verdana, 15pt", null, c1);
+
+      m3_subb.add(mb3_subb_01, mb3_subb_02, mb3_subb_03, mb3_subb_04, mb3_subb_05);
+
+      var mb3_subc_01 = new qx.ui.menu.Button("Courier, 11pt", null, c1);
+      var mb3_subc_02 = new qx.ui.menu.Button("Courier, 12pt", null, c1);
+      var mb3_subc_03 = new qx.ui.menu.Button("Courier, 13pt", null, c1);
+      var mb3_subc_04 = new qx.ui.menu.Button("Courier, 14pt", null, c1);
+      var mb3_subc_05 = new qx.ui.menu.Button("Courier, 15pt", null, c1);
+
+      m3_subc.add(mb3_subc_01, mb3_subc_02, mb3_subc_03, mb3_subc_04, mb3_subc_05);
+
+      var mb3_subd_02_suba = new qx.ui.menu.Menu();
+
+      var mb3_subd_02_suba_01 = new qx.ui.menu.Button("First", null, c1);
+      var mb3_subd_02_suba_02 = new qx.ui.menu.Button("Second", null, c1);
+      var mb3_subd_02_suba_03 = new qx.ui.menu.Button("Third", null, c1);
+
+      mb3_subd_02_suba.add(mb3_subd_02_suba_01, mb3_subd_02_suba_02, mb3_subd_02_suba_03);
+
+      var mb3_subd_01 = new qx.ui.menu.Button("First", null, c1);
+      var mb3_subd_02 = new qx.ui.menu.Button("Second", null, c1, mb3_subd_02_suba);
+      var mb3_subd_03 = new qx.ui.menu.Button("Third", null, c1);
+
+      m3_subd.add(mb3_subd_01, mb3_subd_02, mb3_subd_03);
+
+      var m4 = new qx.ui.menu.Menu;
+
+      var m4_suba = new qx.ui.menu.Menu;
+
+      var mb4_01 = new qx.ui.menu.Button("View", null, c1, m4_suba);
+      var mb4_b1 = new qx.ui.menu.Separator();
+      var mb4_02 = new qx.ui.menu.Button("Editor Preferences...", null, c1);
+      var mb4_03 = new qx.ui.menu.Button("Editor Extensions", null, c1);
+      var mb4_04 = new qx.ui.menu.Button("Framework Preferences", null, c1);
+
+      m4.add(mb4_01, mb4_b1, mb4_02, mb4_03, mb4_04);
+
+      var mb4_suba_01 = new qx.ui.menu.Button("New Window", null, c1);
+      var mb4_suba_b1 = new qx.ui.menu.Separator();
+      var mb4_suba_02 = new qx.ui.menu.RadioButton("Overlapping", c1, true);
+      var mb4_suba_03 = new qx.ui.menu.RadioButton("Split Horizontally", c1);
+      var mb4_suba_04 = new qx.ui.menu.RadioButton("Split Vertically", c1);
+      var mb4_suba_b2 = new qx.ui.menu.Separator();
+      var mb4_suba_05 = new qx.ui.menu.Button("Next Window", null, c1);
+      var mb4_suba_06 = new qx.ui.menu.Button("Previous Window", null, c1);
+
+      m4_suba.add(mb4_suba_01, mb4_suba_b1, mb4_suba_02, mb4_suba_03, mb4_suba_04, mb4_suba_b2, mb4_suba_05, mb4_suba_06);
+
+      var mb4_manager = new qx.manager.selection.RadioManager("windowMode", [ mb4_suba_02, mb4_suba_03, mb4_suba_04 ]);
+
+
+      var m5 = new qx.ui.menu.Menu;
+
+      var mb5_01 = new qx.ui.menu.Button("Help", null, c1);
+      var mb5_02 = new qx.ui.menu.Button("About", null, c1);
+
+      m5.add(mb5_01, mb5_02);
+
+      d.add(m1, m2, m3, m3_suba, m3_subb, m3_subc, m3_subd, mb3_subd_02_suba, m4, m4_suba, m5);
+
+
+      var mb1 = new qx.ui.toolbar.ToolBar;
+
+      mb1.setTop(48);
+      mb1.setRight(335);
+      mb1.setLeft(20);
+
+      var mp1 = new qx.ui.toolbar.Part;
+      var mp2 = new qx.ui.toolbar.Part;
+      var mp3 = new qx.ui.toolbar.Part;
+
+      mb1.add(mp1, mp2, new qx.ui.basic.HorizontalSpacer, mp3);
+
+      var mbb1 = new qx.ui.toolbar.MenuButton("File", m1, "icon/16/file-new.png");
+      var mbb2 = new qx.ui.toolbar.MenuButton("Edit", m2, "icon/16/edit.png");
+      var mbb3 = new qx.ui.toolbar.MenuButton("View", m3, "icon/16/appearance.png");
+      var mbb4 = new qx.ui.toolbar.MenuButton("Options", m4, "icon/16/control-center.png");
+      var mbb5 = new qx.ui.toolbar.MenuButton("Help", m5, "icon/16/help.png");
+
+      var tbb1 = new qx.ui.toolbar.CheckBox("Checkbox", "icon/16/chart.png", true);
+
+      mp1.add(mbb1, mbb2);
+      mp2.add(mbb3, mbb4, tbb1);
+      mp3.add(mbb5);
+
+      d.add(mb1);
+
+
+
+
+      // Icon & Color Themes
+      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 348);
+      qx.manager.object.ColorManager.getInstance().createThemeList(d, 220, 348);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ToolTip_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/ToolTip_1.html
new file mode 100644 (file)
index 0000000..9beebd5
--- /dev/null
@@ -0,0 +1,111 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for QxToolTips. Each qx.ui.popup.ToolTip could be assigned to any
+    instance of qx.ui.core.Widget. You could also use one qx.ui.popup.ToolTip instance
+    for multiple QxWidgets (to show the same tooltip any multiple items).</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var c1 = new qx.ui.basic.Atom("Hover me");
+    with(c1)
+    {
+      setTop(48);
+      setLeft(20);
+      setBackgroundColor(new qx.renderer.color.Color("#BDD2EF"));
+      setWidth(100);
+      setHeight(100);
+      setTabIndex(1);
+      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    };
+    d.add(c1);
+
+
+
+    var c2 = new qx.ui.basic.Atom("Hover me");
+    with(c2)
+    {
+      setTop(48);
+      setLeft(140);
+      setBackgroundColor(new qx.renderer.color.Color("#D1DFAD"));
+      setWidth(100);
+      setHeight(100);
+      setTabIndex(1);
+      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    };
+    d.add(c2);
+
+
+    var c3 = new qx.ui.basic.Atom("Hover me");
+    with(c3)
+    {
+      setTop(48);
+      setLeft(260);
+      setBackgroundColor(new qx.renderer.color.Color("#D1A4AD"));
+      setWidth(100);
+      setHeight(100);
+      setTabIndex(1);
+      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    };
+    d.add(c3);
+
+
+    var c4 = new qx.ui.basic.Atom("Hover me");
+    with(c4)
+    {
+      setTop(48);
+      setLeft(380);
+      setBackgroundColor(new qx.renderer.color.Color("#F5E0BB"));
+      setWidth(100);
+      setHeight(100);
+      setTabIndex(1);
+      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    };
+    d.add(c4);
+
+
+    var c5 = new qx.ui.basic.Atom("Hover me", "icon/32/colors.png");
+    with(c5)
+    {
+      setTop(248);
+      setLeft(20);
+      setBackgroundColor(new qx.renderer.color.Color("#F5E0BB"));
+      setTabIndex(1);
+      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+      setPadding(4);
+    };
+    d.add(c5);
+
+
+    var tt1 = new qx.ui.popup.ToolTip("Hello World #1");
+    c1.setToolTip(tt1);
+    c2.setToolTip(tt1);
+
+    var tt2 = new qx.ui.popup.ToolTip(null, "icon/16/help.png");
+    c3.setToolTip(tt2);
+
+    var tt3 = new qx.ui.popup.ToolTip("Hello World #3", "icon/16/help.png");
+    c4.setToolTip(tt3);
+
+    var tt4 = new qx.ui.popup.ToolTip("Such a great tooltip with a<br/>(show) timeout of 50ms.", "icon/32/bug.png");
+    c5.setToolTip(tt4);
+    tt4.setShowInterval(50);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TreeFullControl_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TreeFullControl_1.html
new file mode 100644 (file)
index 0000000..e46e855
--- /dev/null
@@ -0,0 +1,235 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Shows a tree, with user-defined icons for some nodes.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Root");
+      var t = new qx.ui.treefullcontrol.Tree(trs);
+
+      with(t)
+      {
+        setBackgroundColor(255);
+        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+        setOverflow("scrollY");
+
+        setHeight(null);
+        setTop(48);
+        setLeft(20);
+        setWidth(200);
+        setBottom(48);
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(t);
+      // One icon for selected and one for unselected states
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Desktop", "icon/16/desktop.png", "icon/16/dictionary.png");
+      var te1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      t.add(te1);
+
+      desktop = te1;
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Files");
+      var te1_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Workspace");
+      var te1_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Network");
+      var te1_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Trash");
+      var te1_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      te1.add(te1_1, te1_2, te1_3, te1_4);
+
+      // One icon specified, and used for both selected unselected states
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Windows (C:)", "icon/16/harddrive.png");
+      var te1_2_1 = new qx.ui.treefullcontrol.TreeFile(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Documents (D:)", "icon/16/harddrive.png");
+      var te1_2_2 = new qx.ui.treefullcontrol.TreeFile(trs);
+
+      te1_2.add(te1_2_1, te1_2_2);
+
+      arbeitsplatz = te1_2;
+
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Inbox");
+      var te2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      posteingang = te2;
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Presets");
+      var te2_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Sent");
+      var te2_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Trash", "icon/16/trash.png");
+      var te2_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Data");
+      var te2_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Edit");
+      var te2_5 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      editieren = te2_5;
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Chat");
+      var te2_5_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Pustefix");
+      var te2_5_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("TINC");
+      var te2_5_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Announce");
+      var te2_5_3_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Devel");
+      var te2_5_3_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      te2_5_3.add(te2_5_3_1, te2_5_3_2);
+
+      te2_5.add(te2_5_1, te2_5_2, te2_5_3);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Lists");
+      var te2_6 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Relations");
+      var te2_6_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Company");
+      var te2_6_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Questions");
+      var te2_6_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Internal");
+      var te2_6_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Products");
+      var te2_6_5 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Press");
+      var te2_6_6 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Development");
+      var te2_6_7 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Competition");
+      var te2_6_8 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Personal");
+      var te2_7 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Bugs");
+      var te2_7_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Family");
+      var te2_7_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Projects");
+      var te2_7_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Holiday");
+      var te2_7_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Big");
+      var te2_8 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      for (var i=0;i<50; i++) {
+        trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Item " + i);
+        te2_8.add(new qx.ui.treefullcontrol.TreeFolder(trs));
+      };
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Spam");
+      var te2_9 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      spam = te2_9;
+
+      te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
+
+      t.add(te2);
+      qx.ui.core.ClientDocument.getInstance().add(t);
+
+
+
+
+
+
+      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
+
+      with(commandFrame)
+      {
+        setTop(48);
+        setLeft(250);
+
+        setWidth("auto");
+        setHeight("auto");
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
+
+
+
+
+      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
+
+      with(tCurrentLabel)
+      {
+        setLeft(0);
+        setTop(0);
+      };
+
+      commandFrame.add(tCurrentLabel);
+
+
+
+      var tCurrentInput = new qx.ui.form.TextField;
+
+      with(tCurrentInput)
+      {
+        setLeft(0);
+        setRight(0);
+        setTop(20);
+
+        setReadOnly(true);
+      };
+
+      commandFrame.add(tCurrentInput);
+
+      t.getManager().addEventListener("changeSelection", function(e) {
+        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
+      });
+
+
+
+      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
+
+      with(tDoubleClick) {
+        setTop(60);
+        setLeft(0);
+      };
+
+      commandFrame.add(tDoubleClick);
+
+      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
+
+
+
+
+      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
+
+      with(tTreeLines) {
+        setTop(80);
+        setLeft(0);
+        setChecked(true);
+      };
+
+      commandFrame.add(tTreeLines);
+
+      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
+
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TreeFullControl_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TreeFullControl_2.html
new file mode 100644 (file)
index 0000000..18c7cda
--- /dev/null
@@ -0,0 +1,270 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+<p>Shows a tree, with user-defined extra fields.  In this example, the extra
+fields include a left-justified icon, a checkbox between the node icon and the
+label, and a whole series of right-justified fields.  Additionally, the root node may be hidden. </p>
+  </div>
+
+  <script type="text/javascript">
+    var treeRowStructure;
+
+    function stuff(vLabel, vIcon, vIconSelected)
+    {
+        treeRowStructure = qx.ui.treefullcontrol.TreeRowStructure.getInstance().newRow();
+
+        // A left-justified icon
+        if (Math.floor(Math.random() * 4) == 0)
+        {
+          obj = new qx.ui.basic.Image("icon/16/alarm.png", 16);
+        }
+        else
+        {
+          obj = new qx.ui.basic.Image(null, 16);
+        }
+        treeRowStructure.addObject(obj, true);
+
+        // Here's our indentation and tree-lines
+        treeRowStructure.addIndent();
+
+        // The standard tree icon follows
+        treeRowStructure.addIcon(
+          arguments.length >= 2 ? vIcon : "icon/16/desktop.png",
+          arguments.length >= 3 ? vIconSelected : "icon/16/dictionary.png");
+
+        // A checkbox comes right after the tree icon
+        obj = new qx.ui.form.CheckBox(
+          null, 23, null, Math.floor(Math.random() * 2) == 0 ? false : true);
+        obj.setPadding(0, 0);
+        treeRowStructure.addObject(obj, true);
+
+        // The label
+        treeRowStructure.addLabel(vLabel);
+
+        // All else should be right justified
+        obj = new qx.ui.basic.HorizontalSpacer;
+        treeRowStructure.addObject(obj, true);
+
+        // Add a file size, date and mode
+        obj = new qx.ui.basic.Label(Math.round(Math.random() * 100) + "kb");
+        obj.setWidth(50);
+        treeRowStructure.addObject(obj, true);
+        obj = new qx.ui.basic.Label(
+          "May " + Math.round(Math.random() * 30 + 1) + " 2005");
+        obj.setWidth(150);
+        treeRowStructure.addObject(obj, true);
+        obj = new qx.ui.basic.Label("-rw-r--r--");
+        obj.setWidth(80);
+        treeRowStructure.addObject(obj, true);
+
+        return treeRowStructure;
+        }
+
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var x = new qx.ui.basic.Atom("Test #1", "icon/16/reload.png", 16, 16);
+        x.debug("In main");
+
+      var t = new qx.ui.treefullcontrol.Tree(stuff("Root"));
+      with(t)
+      {
+        setBackgroundColor(255);
+        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+        setOverflow("scrollY");
+
+        setHeight(null);
+        setTop(48);
+        setLeft(20);
+        setWidth(600);
+        setBottom(48);
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(t);
+      // One icon for selected and one for unselected states
+      var te1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Desktop"));
+      t.add(te1);
+
+      desktop = te1;
+
+      var te1_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Files"));
+      var te1_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Workspace"));
+      var te1_3 = new qx.ui.treefullcontrol.TreeFolder(stuff("Network"));
+      var te1_4 = new qx.ui.treefullcontrol.TreeFolder(stuff("Trash"));
+
+      te1.add(te1_1, te1_2, te1_3, te1_4);
+
+      // One icon specified, and used for both selected unselected states
+      var te1_2_1 = new qx.ui.treefullcontrol.TreeFile(stuff("Windows (C:)", "icon/16/harddrive.png"));
+      var te1_2_2 = new qx.ui.treefullcontrol.TreeFile(stuff("Documents (D:)", "icon/16/harddrive.png"));
+
+      te1_2.add(te1_2_1, te1_2_2);
+
+      arbeitsplatz = te1_2;
+
+
+      var te2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Inbox"));
+      posteingang = te2;
+
+      var te2_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Presets"));
+      var te2_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Sent"));
+      var te2_3 = new qx.ui.treefullcontrol.TreeFolder(stuff("Trash", "icon/16/trash.png"));
+      var te2_4 = new qx.ui.treefullcontrol.TreeFolder(stuff("Data"));
+      var te2_5 = new qx.ui.treefullcontrol.TreeFolder(stuff("Edit"));
+
+      editieren = te2_5;
+
+      var te2_5_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Chat"));
+      var te2_5_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Pustefix"));
+      var te2_5_3 = new qx.ui.treefullcontrol.TreeFolder(stuff("TINC"));
+
+      var te2_5_3_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Announce"));
+      var te2_5_3_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Devel"));
+
+      te2_5_3.add(te2_5_3_1, te2_5_3_2);
+
+      te2_5.add(te2_5_1, te2_5_2, te2_5_3);
+
+      var te2_6 = new qx.ui.treefullcontrol.TreeFolder(stuff("Lists"));
+
+      var te2_6_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Relations"));
+      var te2_6_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Company"));
+      var te2_6_3 = new qx.ui.treefullcontrol.TreeFolder(stuff("Questions"));
+      var te2_6_4 = new qx.ui.treefullcontrol.TreeFolder(stuff("Internal"));
+      var te2_6_5 = new qx.ui.treefullcontrol.TreeFolder(stuff("Products"));
+      var te2_6_6 = new qx.ui.treefullcontrol.TreeFolder(stuff("Press"));
+      var te2_6_7 = new qx.ui.treefullcontrol.TreeFolder(stuff("Development"));
+      var te2_6_8 = new qx.ui.treefullcontrol.TreeFolder(stuff("Competition"));
+
+      te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
+
+      var te2_7 = new qx.ui.treefullcontrol.TreeFolder(stuff("Personal"));
+
+      var te2_7_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Bugs"));
+      var te2_7_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Family"));
+      var te2_7_3 = new qx.ui.treefullcontrol.TreeFolder(stuff("Projects"));
+      var te2_7_4 = new qx.ui.treefullcontrol.TreeFolder(stuff("Holiday"));
+
+      te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
+
+      var te2_8 = new qx.ui.treefullcontrol.TreeFolder(stuff("Big"));
+
+      for (var i=0;i<50; i++) {
+        te2_8.add(new qx.ui.treefullcontrol.TreeFolder(stuff("Item " + i)));
+      };
+
+      var te2_9 = new qx.ui.treefullcontrol.TreeFolder(stuff("Spam"));
+      spam = te2_9;
+
+      te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
+
+      t.add(te2);
+      qx.ui.core.ClientDocument.getInstance().add(t);
+
+
+
+
+
+
+      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
+
+      with(commandFrame)
+      {
+        setTop(48);
+        setLeft(650);
+
+        setWidth("auto");
+        setHeight("auto");
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
+
+
+
+
+      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
+
+      with(tCurrentLabel)
+      {
+        setLeft(0);
+        setTop(0);
+      };
+
+      commandFrame.add(tCurrentLabel);
+
+
+
+      var tCurrentInput = new qx.ui.form.TextField;
+
+      with(tCurrentInput)
+      {
+        setLeft(0);
+        setRight(0);
+        setTop(20);
+
+        setReadOnly(true);
+      };
+
+      commandFrame.add(tCurrentInput);
+
+      t.getManager().addEventListener("changeSelection", function(e) {
+        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
+      });
+
+
+
+      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
+
+      with(tDoubleClick) {
+        setTop(60);
+        setLeft(0);
+      };
+
+      commandFrame.add(tDoubleClick);
+
+      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
+
+
+
+
+      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
+
+      with(tTreeLines) {
+        setTop(80);
+        setLeft(0);
+        setChecked(true);
+      };
+
+      commandFrame.add(tTreeLines);
+
+      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
+
+
+
+
+      var tHideNode = new qx.ui.form.CheckBox("Hide the root node?");
+
+      with(tHideNode) {
+        setTop(100);
+        setLeft(0);
+        setChecked(false);
+      };
+
+      commandFrame.add(tHideNode);
+
+      tHideNode.addEventListener("changeChecked", function(e) { t.setHideNode(e.getData()); });
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TreeFullControl_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TreeFullControl_3.html
new file mode 100644 (file)
index 0000000..cbbf442
--- /dev/null
@@ -0,0 +1,298 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Shows a tree, with user-defined icons for some nodes.  This tests
+    listening for tree events.  A separate alert is generated upon opening a
+    folder that has contents; when opening a folder that has no contents; and
+    closing a folder.</p><p>We also demonstrate changing the default value of
+    'allowShowPlusMinusSymbol' so that all folders initially have a plus/minus
+    symbol.  Then, upon opening an empty folder, we remove that
+    icon.</p><p>Lastly, we demonstrate in the alert presented by tree events,
+    use of the getHierarchy() method to obtain a full "path" for a tree
+    node.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      /*
+       * Reset the default of always showing the plus/minus symbol.  The
+       * default is 'false'.  We want to always display it for each folder
+       * (and then stop displaying it if we determine upon open that there are
+       * no contents).
+       *
+       * The changeProperty() function assumes that it is being called
+       * shortly after defineClass() is called.  We therefore need to kludge
+       * qx.Proto to point to the right place.
+       *
+       * TODO: There should be a mechanism to change a property attribute
+       * without having to jump through these hoops.
+       */
+      var constructor = qx.OO.classes["qx.ui.treefullcontrol.TreeFolder"];
+      qx.Proto = constructor.prototype;
+      qx.OO.changeProperty({ name : "alwaysShowPlusMinusSymbol", type : "boolean", defaultValue : true });
+
+
+      var trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Root");
+      var t = new qx.ui.treefullcontrol.Tree(trs);
+
+      /*
+       * All subtrees will use this root node's event listeners.  Create event
+       * listeners for each of the possible events.
+       */
+      t.addEventListener("treeOpenWithContent", function(e) {
+                           alert('treeOpenWithContent ' + e.getData().getHierarchy(new Array()).join("/"));
+                         });
+
+      t.addEventListener("treeClose", function(e) {
+                           alert('treeClose ' + e.getData().getHierarchy(new Array()).join("/"));
+                         });
+
+      /*
+       * We handle opening an empty folder specially.  We demonstrate how to
+       * disable the plus/minus sign once we've determined there's nothing in
+       * it.  This feature might be used to dynamically retrieve the contents
+       * of the folder, and if nothing is available, indicate it by removing
+       * the plus/minus sign.
+       */
+      t.addEventListener("treeOpenWhileEmpty", function(e) {
+                           alert('treeOpenWhileEmpty ' + e.getData().getHierarchy(new Array()).join("/"));
+                           e.getData().setAlwaysShowPlusMinusSymbol(false);
+                         });
+
+      with(t)
+      {
+        setBackgroundColor(255);
+        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+        setOverflow("scrollY");
+
+        setHeight(null);
+        setTop(48);
+        setLeft(20);
+        setWidth(200);
+        setBottom(48);
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(t);
+      // One icon for selected and one for unselected states
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Desktop", "icon/16/desktop.png", "icon/16/dictionary.png");
+      var te1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      t.add(te1);
+
+      desktop = te1;
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Files");
+      var te1_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Workspace");
+      var te1_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Network");
+      var te1_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Trash");
+      var te1_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      te1.add(te1_1, te1_2, te1_3, te1_4);
+
+      // One icon specified, and used for both selected unselected states
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Windows (C:)", "icon/16/harddrive.png");
+      var te1_2_1 = new qx.ui.treefullcontrol.TreeFile(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Documents (D:)", "icon/16/harddrive.png");
+      var te1_2_2 = new qx.ui.treefullcontrol.TreeFile(trs);
+
+      te1_2.add(te1_2_1, te1_2_2);
+
+      arbeitsplatz = te1_2;
+
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Inbox");
+      var te2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      posteingang = te2;
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Presets");
+      var te2_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Sent");
+      var te2_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Trash", "icon/16/trash.png");
+      var te2_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Data");
+      var te2_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Edit");
+      var te2_5 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      editieren = te2_5;
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Chat");
+      var te2_5_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Pustefix");
+      var te2_5_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("TINC");
+      var te2_5_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Announce");
+      var te2_5_3_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Devel");
+      var te2_5_3_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      te2_5_3.add(te2_5_3_1, te2_5_3_2);
+
+      te2_5.add(te2_5_1, te2_5_2, te2_5_3);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Lists");
+      var te2_6 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Relations");
+      var te2_6_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Company");
+      var te2_6_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Questions");
+      var te2_6_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Internal");
+      var te2_6_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Products");
+      var te2_6_5 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Press");
+      var te2_6_6 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Development");
+      var te2_6_7 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Competition");
+      var te2_6_8 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Personal");
+      var te2_7 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Bugs");
+      var te2_7_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Family");
+      var te2_7_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Projects");
+      var te2_7_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Holiday");
+      var te2_7_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Big");
+      var te2_8 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      for (var i=0;i<50; i++) {
+        trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Item " + i);
+        te2_8.add(new qx.ui.treefullcontrol.TreeFolder(trs));
+      };
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Spam");
+      var te2_9 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      spam = te2_9;
+
+      te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
+
+      t.add(te2);
+      qx.ui.core.ClientDocument.getInstance().add(t);
+
+
+
+
+
+
+      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
+
+      with(commandFrame)
+      {
+        setTop(48);
+        setLeft(250);
+
+        setWidth("auto");
+        setHeight("auto");
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
+
+
+
+
+      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
+
+      with(tCurrentLabel)
+      {
+        setLeft(0);
+        setTop(0);
+      };
+
+      commandFrame.add(tCurrentLabel);
+
+
+
+      var tCurrentInput = new qx.ui.form.TextField;
+
+      with(tCurrentInput)
+      {
+        setLeft(0);
+        setRight(0);
+        setTop(20);
+
+        setReadOnly(true);
+      };
+
+      commandFrame.add(tCurrentInput);
+
+      t.getManager().addEventListener("changeSelection", function(e) {
+        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
+      });
+
+
+
+      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
+
+      with(tDoubleClick) {
+        setTop(60);
+        setLeft(0);
+      };
+
+      commandFrame.add(tDoubleClick);
+
+      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
+
+
+
+
+      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
+
+      with(tTreeLines) {
+        setTop(80);
+        setLeft(0);
+        setChecked(true);
+      };
+
+      commandFrame.add(tTreeLines);
+
+      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
+
+
+      var tHideNode = new qx.ui.form.CheckBox("Hide the root node?");
+
+      with(tHideNode) {
+        setTop(100);
+        setLeft(0);
+        setChecked(false);
+      };
+
+      commandFrame.add(tHideNode);
+
+      tHideNode.addEventListener("changeChecked", function(e) { t.setHideNode(e.getData()); });
+
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TreeFullControl_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/TreeFullControl_4.html
new file mode 100644 (file)
index 0000000..b3c701f
--- /dev/null
@@ -0,0 +1,384 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Shows a tree and allows playing with the settings of the Tree
+    properties <i>hideNode</i> and <i>rootOpenClose</i>.  Also demonstrates
+    manipulating display (or not) of tree lines at specific indentation
+    levels, using the <i>excludeSpecificTreeLines</i> property.</p>
+
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Root");
+      var t = new qx.ui.treefullcontrol.Tree(trs);
+
+      with(t)
+      {
+        setBackgroundColor(255);
+        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+        setOverflow("scrollY");
+
+        setHeight(null);
+        setTop(48);
+        setLeft(20);
+        setWidth(200);
+        setBottom(48);
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(t);
+      // One icon for selected and one for unselected states
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Desktop", "icon/16/desktop.png", "icon/16/dictionary.png");
+      var te1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      t.add(te1);
+
+      desktop = te1;
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Files");
+      var te1_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Workspace");
+      var te1_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Network");
+      var te1_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Trash");
+      var te1_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      te1.add(te1_1, te1_2, te1_3, te1_4);
+
+      // One icon specified, and used for both selected unselected states
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Windows (C:)", "icon/16/harddrive.png");
+      var te1_2_1 = new qx.ui.treefullcontrol.TreeFile(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Documents (D:)", "icon/16/harddrive.png");
+      var te1_2_2 = new qx.ui.treefullcontrol.TreeFile(trs);
+
+      te1_2.add(te1_2_1, te1_2_2);
+
+      arbeitsplatz = te1_2;
+
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Inbox");
+      var te2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      posteingang = te2;
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Presets");
+      var te2_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Sent");
+      var te2_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Trash", "icon/16/trash.png");
+      var te2_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Data");
+      var te2_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Edit");
+      var te2_5 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      editieren = te2_5;
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Chat");
+      var te2_5_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Pustefix");
+      var te2_5_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("TINC");
+      var te2_5_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Announce");
+      var te2_5_3_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Devel");
+      var te2_5_3_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      te2_5_3.add(te2_5_3_1, te2_5_3_2);
+
+      te2_5.add(te2_5_1, te2_5_2, te2_5_3);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Lists");
+      var te2_6 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Relations");
+      var te2_6_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Company");
+      var te2_6_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Questions");
+      var te2_6_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Internal");
+      var te2_6_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Products");
+      var te2_6_5 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Press");
+      var te2_6_6 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Development");
+      var te2_6_7 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Competition");
+      var te2_6_8 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Personal");
+      var te2_7 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Bugs");
+      var te2_7_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Family");
+      var te2_7_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Projects");
+      var te2_7_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Holiday");
+      var te2_7_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Big");
+      var te2_8 = new qx.ui.treefullcontrol.TreeFolder(trs);
+
+      for (var i=0;i<50; i++) {
+        trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Item " + i);
+        te2_8.add(new qx.ui.treefullcontrol.TreeFolder(trs));
+      };
+
+      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Spam");
+      var te2_9 = new qx.ui.treefullcontrol.TreeFolder(trs);
+      spam = te2_9;
+
+      te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
+
+      t.add(te2);
+      qx.ui.core.ClientDocument.getInstance().add(t);
+
+
+
+
+
+
+      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
+
+      with(commandFrame)
+      {
+        setTop(48);
+        setLeft(250);
+
+        setWidth("auto");
+        setHeight("auto");
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
+
+
+
+
+      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
+
+      with(tCurrentLabel)
+      {
+        setLeft(0);
+        setTop(0);
+      };
+
+      commandFrame.add(tCurrentLabel);
+
+
+
+      var tCurrentInput = new qx.ui.form.TextField;
+
+      with(tCurrentInput)
+      {
+        setLeft(0);
+        setRight(0);
+        setTop(20);
+
+        setReadOnly(true);
+      };
+
+      commandFrame.add(tCurrentInput);
+
+      t.getManager().addEventListener("changeSelection", function(e) {
+        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
+      });
+
+
+
+      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
+
+      with(tDoubleClick) {
+        setTop(60);
+        setLeft(0);
+      };
+
+      commandFrame.add(tDoubleClick);
+
+      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
+
+
+
+
+      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
+
+      with(tTreeLines) {
+        setTop(80);
+        setLeft(0);
+        setChecked(true);
+      };
+
+      commandFrame.add(tTreeLines);
+
+      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
+
+
+      var tHideNode = new qx.ui.form.CheckBox("Hide the root node?");
+
+      with(tHideNode) {
+        setTop(100);
+        setLeft(0);
+        setChecked(false);
+      };
+
+      commandFrame.add(tHideNode);
+
+      tHideNode.addEventListener("changeChecked", function(e) { t.setHideNode(e.getData()); });
+
+      var tIncludeRootOpenClose =
+        new qx.ui.form.CheckBox("Include root open/close button?");
+
+      with(tIncludeRootOpenClose) {
+        setTop(120);
+        setLeft(0);
+        setChecked(true);
+      };
+
+      commandFrame.add(tIncludeRootOpenClose);
+
+      tIncludeRootOpenClose.addEventListener("changeChecked", function(e) { t.setRootOpenClose(e.getData()); });
+
+      tExcludeTreeLines0 =
+        new qx.ui.form.CheckBox("Exclude tree lines at level 0?");
+
+      with(tExcludeTreeLines0) {
+        setTop(140);
+        setLeft(0);
+        setChecked(false);
+      };
+
+      commandFrame.add(tExcludeTreeLines0);
+
+      tExcludeTreeLines0.addEventListener(
+          "changeChecked",
+          function(e)
+          {
+              var excl = t.getExcludeSpecificTreeLines();
+              if (e.getData()) {
+                  excl[0] = true;
+              } else {
+                  delete(excl[0]);
+              }
+              t.setExcludeSpecificTreeLines(excl);
+          });
+
+      tExcludeTreeLines1 =
+        new qx.ui.form.CheckBox("Exclude tree lines at level 1?");
+
+      with(tExcludeTreeLines1) {
+        setTop(160);
+        setLeft(0);
+        setChecked(false);
+      };
+
+      commandFrame.add(tExcludeTreeLines1);
+
+      tExcludeTreeLines1.addEventListener(
+          "changeChecked",
+          function(e)
+          {
+              var excl = t.getExcludeSpecificTreeLines();
+              if (e.getData()) {
+                  excl[1] = true;
+              } else {
+                  delete(excl[1]);
+              }
+              t.setExcludeSpecificTreeLines(excl);
+          });
+
+      tExcludeTreeLines2 =
+        new qx.ui.form.CheckBox("Exclude tree lines at level 2?");
+
+      with(tExcludeTreeLines2) {
+        setTop(180);
+        setLeft(0);
+        setChecked(false);
+      };
+
+      commandFrame.add(tExcludeTreeLines2);
+
+      tExcludeTreeLines2.addEventListener(
+          "changeChecked",
+          function(e)
+          {
+              var excl = t.getExcludeSpecificTreeLines();
+              if (e.getData()) {
+                  excl[2] = true;
+              } else {
+                  delete(excl[2]);
+              }
+              t.setExcludeSpecificTreeLines(excl);
+          });
+
+      tExcludeTreeLines3 =
+        new qx.ui.form.CheckBox("Exclude tree lines at level 3?");
+
+      with(tExcludeTreeLines3) {
+        setTop(200);
+        setLeft(0);
+        setChecked(false);
+      };
+
+      commandFrame.add(tExcludeTreeLines3);
+
+      tExcludeTreeLines3.addEventListener(
+          "changeChecked",
+          function(e)
+          {
+              var excl = t.getExcludeSpecificTreeLines();
+              if (e.getData()) {
+                  excl[3] = true;
+              } else {
+                  delete(excl[3]);
+              }
+              t.setExcludeSpecificTreeLines(excl);
+          });
+
+      tExcludeTreeLines4 =
+        new qx.ui.form.CheckBox("Exclude tree lines at level 4?");
+
+      with(tExcludeTreeLines4) {
+        setTop(220);
+        setLeft(0);
+        setChecked(false);
+      };
+
+      commandFrame.add(tExcludeTreeLines4);
+
+      tExcludeTreeLines4.addEventListener(
+          "changeChecked",
+          function(e)
+          {
+              var excl = t.getExcludeSpecificTreeLines();
+              if (e.getData()) {
+                  excl[4] = true;
+              } else {
+                  delete(excl[4]);
+              }
+              t.setExcludeSpecificTreeLines(excl);
+          });
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Tree_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Tree_1.html
new file mode 100644 (file)
index 0000000..ef29240
--- /dev/null
@@ -0,0 +1,191 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Shows a tree, with user-defined icons for some nodes.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var t = new qx.ui.tree.Tree("Root");
+
+      with(t)
+      {
+        setBackgroundColor(255);
+        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+        setOverflow("scrollY");
+
+        setHeight(null);
+        setTop(48);
+        setLeft(20);
+        setWidth(200);
+        setBottom(48);
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(t);
+      // One icon for selected and one for unselected states
+      var te1 = new qx.ui.tree.TreeFolder("Desktop", "icon/16/desktop.png", "icon/16/dictionary.png");
+      t.add(te1);
+
+      var te1_1 = new qx.ui.tree.TreeFolder("Files");
+      var te1_2 = new qx.ui.tree.TreeFolder("Workspace");
+      var te1_3 = new qx.ui.tree.TreeFolder("Network");
+      var te1_4 = new qx.ui.tree.TreeFolder("Trash");
+
+      te1.add(te1_1, te1_2, te1_3, te1_4);
+
+      // One icon specified, and used for both selected unselected states
+      var te1_2_1 = new qx.ui.tree.TreeFile("Windows (C:)", "icon/16/harddrive.png");
+      var te1_2_2 = new qx.ui.tree.TreeFile("Documents (D:)", "icon/16/harddrive.png");
+
+      te1_2.add(te1_2_1, te1_2_2);
+
+
+      var te2 = new qx.ui.tree.TreeFolder("Inbox");
+
+      var te2_1 = new qx.ui.tree.TreeFolder("Presets");
+      var te2_2 = new qx.ui.tree.TreeFolder("Sent");
+      var te2_3 = new qx.ui.tree.TreeFolder("Trash", "icon/16/trash.png");
+      var te2_4 = new qx.ui.tree.TreeFolder("Data");
+      var te2_5 = new qx.ui.tree.TreeFolder("Edit");
+
+      var te2_5_1 = new qx.ui.tree.TreeFolder("Chat");
+      var te2_5_2 = new qx.ui.tree.TreeFolder("Pustefix");
+      var te2_5_3 = new qx.ui.tree.TreeFolder("TINC");
+
+      var te2_5_3_1 = new qx.ui.tree.TreeFolder("Announce");
+      var te2_5_3_2 = new qx.ui.tree.TreeFolder("Devel");
+
+      te2_5_3.add(te2_5_3_1, te2_5_3_2);
+
+      te2_5.add(te2_5_1, te2_5_2, te2_5_3);
+
+      var te2_6 = new qx.ui.tree.TreeFolder("Lists");
+
+      var te2_6_1 = new qx.ui.tree.TreeFolder("Relations");
+      var te2_6_2 = new qx.ui.tree.TreeFolder("Company");
+      var te2_6_3 = new qx.ui.tree.TreeFolder("Questions");
+      var te2_6_4 = new qx.ui.tree.TreeFolder("Internal");
+      var te2_6_5 = new qx.ui.tree.TreeFolder("Products");
+      var te2_6_6 = new qx.ui.tree.TreeFolder("Press");
+      var te2_6_7 = new qx.ui.tree.TreeFolder("Development");
+      var te2_6_8 = new qx.ui.tree.TreeFolder("Competition");
+
+      te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
+
+      var te2_7 = new qx.ui.tree.TreeFolder("Personal");
+
+      var te2_7_1 = new qx.ui.tree.TreeFolder("Bugs");
+      var te2_7_2 = new qx.ui.tree.TreeFolder("Family");
+      var te2_7_3 = new qx.ui.tree.TreeFolder("Projects");
+      var te2_7_4 = new qx.ui.tree.TreeFolder("Holiday");
+
+      te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
+
+      var te2_8 = new qx.ui.tree.TreeFolder("Big");
+
+      for (var i=0;i<50; i++) {
+        te2_8.add(new qx.ui.tree.TreeFolder("Item " + i));
+      };
+
+      var te2_9 = new qx.ui.tree.TreeFolder("Spam");
+
+      te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
+
+      t.add(te2);
+      qx.ui.core.ClientDocument.getInstance().add(t);
+
+
+
+
+
+
+      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
+
+      with(commandFrame)
+      {
+        setTop(48);
+        setLeft(250);
+
+        setWidth("auto");
+        setHeight("auto");
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
+
+
+
+
+      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
+
+      with(tCurrentLabel)
+      {
+        setLeft(0);
+        setTop(0);
+      };
+
+      commandFrame.add(tCurrentLabel);
+
+
+
+      var tCurrentInput = new qx.ui.form.TextField;
+
+      with(tCurrentInput)
+      {
+        setLeft(0);
+        setRight(0);
+        setTop(20);
+
+        setReadOnly(true);
+      };
+
+      commandFrame.add(tCurrentInput);
+
+      t.getManager().addEventListener("changeSelection", function(e) {
+        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
+      });
+
+
+
+      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
+
+      with(tDoubleClick) {
+        setTop(60);
+        setLeft(0);
+      };
+
+      commandFrame.add(tDoubleClick);
+
+      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
+
+
+
+
+      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
+
+      with(tTreeLines) {
+        setTop(80);
+        setLeft(0);
+        setChecked(true);
+      };
+
+      commandFrame.add(tTreeLines);
+
+      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
+
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Window_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Window_1.html
new file mode 100644 (file)
index 0000000..6d87761
--- /dev/null
@@ -0,0 +1,308 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>This is the qx.ui.window.Window widget. These should emulate the default look and behaviour of the application windows running under Microsoft Windows(TM).</p>
+  </div>
+  
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var w1 = new qx.ui.window.Window("First Window", "icon/16/bell.png");
+    w1.setSpace(20, 400, 48, 250);
+    d.add(w1);
+
+    var w2 = new qx.ui.window.Window("Second Window", "icon/16/colors.png");
+    w2.setSpace(250, "auto", 120, "auto");
+    d.add(w2);
+
+    var w3 = new qx.ui.window.Window("Third Window", "icon/16/network.png");
+    w3.setSpace(100, 300, 200, 300);
+    w3.setMaxWidth(450);
+    w3.setMaxHeight(400);
+    d.add(w3);
+
+    var wm1 = new qx.ui.window.Window("First Modal Dialog");
+    wm1.setSpace(150, 200, 150, 200);
+    wm1.setModal(true);
+    d.add(wm1);
+
+    var wm2 = new qx.ui.window.Window("Second Modal Dialog");
+    wm2.setSpace(100, 200, 100, 150);
+    wm2.setModal(true);
+    wm2.setShowClose(false);
+    d.add(wm2);
+
+
+
+
+    var a1 = new qx.ui.basic.Atom("Welcome to your first own Window.<br/>Have fun!", "icon/32/chart.png");
+    a1.set({ top: 4, left: 4 });
+    w1.add(a1);
+
+
+
+
+    var tf1 = new qx.ui.pageview.tabview.TabView;
+    tf1.set({ left: 10, top: 52, right: 10, bottom: 10 });
+
+    var t1_1 = new qx.ui.pageview.tabview.Button("Explore");
+    var t1_2 = new qx.ui.pageview.tabview.Button("Internet");
+    var t1_3 = new qx.ui.pageview.tabview.Button("Future");
+
+    t1_1.setChecked(true);
+
+    tf1.getBar().add(t1_1, t1_2, t1_3);
+
+    var p1_1 = new qx.ui.pageview.tabview.Page(t1_1);
+    var p1_2 = new qx.ui.pageview.tabview.Page(t1_2);
+    var p1_3 = new qx.ui.pageview.tabview.Page(t1_3);
+
+    tf1.getPane().add(p1_1, p1_2, p1_3);
+
+    w1.add(tf1);
+
+
+
+    var at1 = new qx.ui.basic.Atom("Your second window", "icon/22/find.png");
+    at1.setLocation(8, 8);
+    w2.add(at1);
+
+
+
+
+    var btn1 = new qx.ui.form.Button("Open Modal Dialog 1", "icon/16/control-center.png");
+    btn1.setLocation(4, 4);
+    w3.add(btn1);
+
+    btn1.addEventListener("execute", function(e) {
+      wm1.open();
+    });
+
+
+    var btn2 = new qx.ui.form.Button("Open Modal Dialog 2", "icon/16/control-center.png");
+    btn2.setLocation(4, 4);
+    wm1.add(btn2);
+
+    btn2.addEventListener("execute", function(e) {
+      wm2.open();
+    });
+
+
+    var chkm1 = new qx.ui.form.CheckBox("Modal", null, null, true);
+    chkm1.setLocation(4, 50);
+    wm1.add(chkm1);
+
+    chkm1.addEventListener("changeChecked", function(e) {
+      wm1.setModal(e.getData());
+    });
+
+
+
+    var fs1 = new qx.ui.groupbox.GroupBox("Settings");
+    fs1.setLocation(4, 40);
+    fs1.setRight(4);
+    fs1.setBottom(4);
+
+
+    var chk1 = new qx.ui.form.CheckBox("Show Icon");
+    chk1.setLocation(0, 0);
+    chk1.setChecked(true);
+    chk1.addEventListener("changeChecked", function(e) {
+      w2.setShowIcon(e.getData());
+    });
+
+    var chk2 = new qx.ui.form.CheckBox("Show Caption");
+    chk2.setLocation(0, 20);
+    chk2.setChecked(true);
+    chk2.addEventListener("changeChecked", function(e) {
+      w2.setShowCaption(e.getData());
+    });
+
+
+
+    var chk3 = new qx.ui.form.CheckBox("Resizeable");
+    chk3.setLocation(0, 50);
+    chk3.setChecked(true);
+    chk3.addEventListener("changeChecked", function(e) {
+      w2.setResizeable(e.getData());
+    });
+
+    var chk4 = new qx.ui.form.CheckBox("Moveable");
+    chk4.setLocation(0, 70);
+    chk4.setChecked(true);
+    chk4.addEventListener("changeChecked", function(e) {
+      w2.setMoveable(e.getData());
+    });
+
+
+
+    var chk5 = new qx.ui.form.CheckBox("Show Close");
+    chk5.setLocation(140, 0);
+    chk5.setChecked(true);
+    chk5.addEventListener("changeChecked", function(e) {
+      w2.setShowClose(e.getData());
+    });
+
+    var chk6 = new qx.ui.form.CheckBox("Show Maximize/Restore");
+    chk6.setLocation(140, 20);
+    chk6.setChecked(true);
+    chk6.addEventListener("changeChecked", function(e) {
+      w2.setShowMaximize(e.getData());
+    });
+
+    var chk7 = new qx.ui.form.CheckBox("Show Minimize");
+    chk7.setLocation(140, 40);
+    chk7.setChecked(true);
+    chk7.addEventListener("changeChecked", function(e) {
+      w2.setShowMinimize(e.getData());
+    });
+
+
+
+    var chk8 = new qx.ui.form.CheckBox("Allow Close");
+    chk8.setLocation(140, 70);
+    chk8.setChecked(true);
+    chk8.addEventListener("changeChecked", function(e) {
+      w2.setAllowClose(e.getData());
+    });
+
+    var chk9 = new qx.ui.form.CheckBox("Allow Maximize");
+    chk9.setLocation(140, 90);
+    chk9.setChecked(true);
+    chk9.addEventListener("changeChecked", function(e) {
+      w2.setAllowMaximize(e.getData());
+    });
+
+    var chk10 = new qx.ui.form.CheckBox("Allow Minimize");
+    chk10.setLocation(140, 110);
+    chk10.setChecked(true);
+    chk10.addEventListener("changeChecked", function(e) {
+      w2.setAllowMinimize(e.getData());
+    });
+
+
+
+
+    var l1 = new qx.ui.basic.Atom("Move Method", "icon/16/misc.png");
+    l1.setLocation(0, 100);
+
+    var rb1 = new qx.ui.form.RadioButton("Frame", "frame");
+    rb1.setLocation(0, 120);
+
+    var rb2 = new qx.ui.form.RadioButton("Opaque", "opaque");
+    rb2.setLocation(0, 140);
+    rb2.setChecked(true);
+
+    var rb3 = new qx.ui.form.RadioButton("Translucent", "translucent");
+    rb3.setLocation(0, 160);
+
+    var rbm1 = new qx.manager.selection.RadioManager("move", [rb1, rb2, rb3]);
+
+    rbm1.addEventListener("changeSelected", function(e) {
+      w2.setMoveMethod(e.getData().getValue());
+    });
+
+
+
+
+    var l2 = new qx.ui.basic.Atom("Resize Method", "icon/16/misc.png");
+    l2.setLocation(0, 190);
+
+    var rb4 = new qx.ui.form.RadioButton("Frame", "frame");
+    rb4.setLocation(0, 210);
+    rb4.setChecked(true);
+
+    var rb5 = new qx.ui.form.RadioButton("Opaque", "opaque");
+    rb5.setLocation(0, 230);
+
+    var rb6 = new qx.ui.form.RadioButton("Lazy Opaque", "lazyopaque");
+    rb6.setLocation(0, 250);
+
+    var rb7 = new qx.ui.form.RadioButton("Translucent", "translucent");
+    rb7.setLocation(0, 270);
+
+    var rbm2 = new qx.manager.selection.RadioManager("resize", [rb4, rb5, rb6, rb7]);
+
+    rbm2.addEventListener("changeSelected", function(e) {
+      w2.setResizeMethod(e.getData().getValue());
+    });
+
+
+
+
+    var chk11 = new qx.ui.form.CheckBox("Show Statusbar");
+    chk11.setLocation(140, 140);
+    chk11.setChecked(false);
+    chk11.addEventListener("changeChecked", function(e) {
+      w2.setShowStatusbar(e.getData());
+    });
+
+
+
+
+    var btnpack = new qx.ui.form.Button("Pack Window", "icon/16/cdrom.png");
+    btnpack.setLocation(140, 170);
+    btnpack.addEventListener("execute", function(e) {
+      w2.pack();
+    });
+
+
+    fs1.add(chk1, chk2, chk3, chk4, chk5, chk6, chk7, chk8, chk9, chk10, l1, rb1, rb2, rb3, l2, rb4, rb5, rb6, rb7, chk11, btnpack);
+    w2.add(fs1);
+
+
+    var icon1 = new qx.ui.basic.Image("icon/32/error.png");
+    var warn1 = new qx.ui.basic.Label("Do you want to delete<br/>all your personal data?");
+
+    icon1.setTop(10);
+    icon1.setLeft(10);
+
+    warn1.setTop(10);
+    warn1.setLeft(48);
+
+    var btn3 = new qx.ui.form.Button("Yes", "icon/16/button-ok.png");
+    var btn4 = new qx.ui.form.Button("No", "icon/16/button-cancel.png");
+
+    btn3.addEventListener("execute", function(e) {
+      alert("Thank you!");
+      wm2.close();
+    });
+
+    btn4.addEventListener("execute", function(e) {
+      alert("Sorry, please click 'Yes'!");
+    });
+
+    btn3.set({ bottom : 10, right : 10 });
+    btn4.set({ bottom : 10, left : 10 });
+
+    wm2.add(btn3, btn4, icon1, warn1);
+
+
+
+    // Icon & Color Themes
+    //qx.manager.object.ImageManager.getInstance().createThemeList(w3, 20, 248);
+    qx.manager.object.ColorManager.getInstance().createThemeList(w3, 4, 58);
+
+
+
+
+    w1.open();
+    w2.open();
+    w3.open();
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file1.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file1.swf
new file mode 100644 (file)
index 0000000..2e6d69a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file1.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file10.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file10.swf
new file mode 100644 (file)
index 0000000..eeafa9a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file10.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file2.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file2.swf
new file mode 100644 (file)
index 0000000..51c8f0f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file2.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file3.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file3.swf
new file mode 100644 (file)
index 0000000..0b6b56b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file3.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file4.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file4.swf
new file mode 100644 (file)
index 0000000..746baa8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file4.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file5.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file5.swf
new file mode 100644 (file)
index 0000000..a3333e1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file5.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file6.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file6.swf
new file mode 100644 (file)
index 0000000..2cad550
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file6.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file7.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file7.swf
new file mode 100644 (file)
index 0000000..b5f4eb4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file7.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file8.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file8.swf
new file mode 100644 (file)
index 0000000..54c9a11
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file8.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file9.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file9.swf
new file mode 100644 (file)
index 0000000..cc41ff1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/color/file9.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/fo_tester.fla b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/fo_tester.fla
new file mode 100644 (file)
index 0000000..afd4bb6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/fo_tester.fla differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/fo_tester.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/fo_tester.swf
new file mode 100644 (file)
index 0000000..8e0b966
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/image/flash/fo_tester.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/index.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/index.html
new file mode 100644 (file)
index 0000000..ac43754
--- /dev/null
@@ -0,0 +1,18 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Please choose an example from above.</p>
+  </div>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ArrayCreate_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ArrayCreate_1.html
new file mode 100644 (file)
index 0000000..0fe1f5f
--- /dev/null
@@ -0,0 +1,57 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for empty Array creation performance</p>
+    <ol>
+      <li>Using "[]"</li>
+      <li>Using "new Array"</li>
+      <li>Using "new Array()"</li>
+    </ol>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    function ArrayCreate1(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = [];
+      };
+    };
+
+    function ArrayCreate2(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = new Array;
+      };
+    };
+
+    function ArrayCreate3(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = new Array();
+      };
+    };
+
+    new qx.dev.TimeTracker(ArrayCreate1, ArrayCreate2, ArrayCreate3);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ArrayCreate_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ArrayCreate_2.html
new file mode 100644 (file)
index 0000000..fcc0a05
--- /dev/null
@@ -0,0 +1,47 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for filled Array creation performance</p>
+    <ol>
+      <li>Using "[ values ]"</li>
+      <li>Using "new Array(values)"</li>
+    </ol>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    function ArrayCreate1(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = [ 1, 2, 3, 4, 5 ];
+      };
+    };
+
+    function ArrayCreate2(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = new Array(1, 2, 3, 4, 5);
+      };
+    };
+
+    new qx.dev.TimeTracker(ArrayCreate1, ArrayCreate2);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/GlobalObject_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/GlobalObject_1.html
new file mode 100644 (file)
index 0000000..006745a
--- /dev/null
@@ -0,0 +1,43 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>JS Object Storage Performance</p>
+
+    <h1>Test Description</h1>
+    <p>Create 10.000 new (non stored) objects inside a loop. Identical to LocalObject_1.html.</p>
+
+    <h1>Result</h1>
+    <p>The performance in IE is quite good (~330ms for each loop), compared to the same stuff executed without the precreated stuff.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    function test()
+    {
+      var _s = (new Date).valueOf();
+
+      for (var i=0; i<10000; i++) {
+        new Object()
+      };
+
+      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
+      window.setTimeout(test, 1000);
+    }
+
+    test();
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/GlobalObject_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/GlobalObject_2.html
new file mode 100644 (file)
index 0000000..e6d2e2f
--- /dev/null
@@ -0,0 +1,51 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>JS Object Storage Performance</p>
+
+    <h1>Test Description</h1>
+    <p>Precreate 50.000 objects (globally stored). After this create 10.000 new (non stored) objects inside a loop.</p>
+    <p>Keep global storage over runtime.</p>
+
+    <h1>Result</h1>
+    <p>The performance in IE is poor (~1150ms for each loop), compared to the same stuff executed without so much precreated objects (previous example).</p>
+    <p>It makes no difference if we use a global or a local variable here. It's identical to LocalObject_2.html.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    window.store = [];
+
+    for (var i=0; i<50000; i++) {
+      window.store.push({});
+    };
+
+    function test()
+    {
+      var _s = (new Date).valueOf();
+
+      for (var i=0; i<10000; i++) {
+        new Object()
+      };
+
+      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
+      window.setTimeout(test, 1000);
+    }
+
+    test();
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/GlobalObject_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/GlobalObject_3.html
new file mode 100644 (file)
index 0000000..7d8f949
--- /dev/null
@@ -0,0 +1,53 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>JS Object Storage Performance</p>
+
+    <h1>Test Description</h1>
+    <p>Precreate 50.000 objects (globally stored). After this create 10.000 new (non stored) objects inside a loop.</p>
+    <p>Use removeAll to clean up global storage after first loop.</p>
+
+    <h1>Result</h1>
+    <p>The additional cleanup (remove all entries) of the global storage optimizes performance after the first loop. First loop is done after ~1150ms. The following loop needs ~490ms. Not bad, but poorly compared to the version, where the storage have never exist before. (See first examples, which executes in ~350ms.)</p>
+    <p>It makes no difference if we use a global or a local variable here. It's identical to LocalObject_3.html.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    window.store = [];
+
+    for (var i=0; i<50000; i++) {
+      window.store.push({});
+    };
+
+    function test()
+    {
+      var _s = (new Date).valueOf();
+
+      for (var i=0; i<10000; i++) {
+        new Object()
+      };
+
+      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
+      window.setTimeout(test, 1000);
+    }
+
+    test();
+
+    qx.lang.Array.removeAll(window.store);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/GlobalObject_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/GlobalObject_4.html
new file mode 100644 (file)
index 0000000..57220fc
--- /dev/null
@@ -0,0 +1,52 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>JS Object Storage Performance</p>
+
+    <h1>Test Description</h1>
+    <p>Precreate 50.000 objects (globally stored). After this create 10.000 new (non stored) objects inside a loop.</p>
+    <p>Overwrite global storage to clean up after first loop.</p>
+
+    <h1>Result</h1>
+    <p>The additional cleanup (overwrite with null) of the global storage optimizes performance after the first loop. First loop is done after ~1150ms. The following loop needs ~350ms. Quite good. The same value as in the first example, where the data have never exist.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    window.store = [];
+
+    for (var i=0; i<50000; i++) {
+      window.store.push({});
+    };
+
+    function test()
+    {
+      var _s = (new Date).valueOf();
+
+      for (var i=0; i<10000; i++) {
+        new Object()
+      };
+
+      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
+      window.setTimeout(test, 1000);
+    }
+
+    test();
+
+    window.store = null;
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/LocalObject_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/LocalObject_1.html
new file mode 100644 (file)
index 0000000..bca9610
--- /dev/null
@@ -0,0 +1,43 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>JS Object Storage Performance</p>
+
+    <h1>Test Description</h1>
+    <p>Create 10.000 new (non stored) objects inside a loop. Identical to GlobalObject_1.html.</p>
+
+    <h1>Result</h1>
+    <p>The performance in IE is quite good (~330ms for each loop), compared to the same stuff executed without the precreated stuff.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    function test()
+    {
+      var _s = (new Date).valueOf();
+
+      for (var i=0; i<10000; i++) {
+        new Object()
+      };
+
+      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
+      window.setTimeout(test, 1000);
+    }
+
+    test();
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/LocalObject_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/LocalObject_2.html
new file mode 100644 (file)
index 0000000..7a98805
--- /dev/null
@@ -0,0 +1,51 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>JS Object Storage Performance</p>
+
+    <h1>Test Description</h1>
+    <p>Precreate 50.000 objects (locally stored). After this create 10.000 new (not stored) objects inside a loop.</p>
+    <p>As the loop will be executed inside the scope of "store", the browser must keep the information about "store" with each execution of "test", even if called from the timeout.</p>
+
+    <h1>Result</h1>
+    <p>The performance in IE is poor (~1150ms for each loop), compared to the same stuff executed without so much precreated objects (previous example).</p>
+    <p>It makes no difference if we use a global or a local variable here. It's identical to GlobalObject_2.html.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var store = [];
+
+    for (var i=0; i<50000; i++) {
+      store.push({});
+    };
+
+    function test()
+    {
+      var _s = (new Date).valueOf();
+
+      for (var i=0; i<10000; i++) {
+        new Object()
+      };
+
+      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
+      window.setTimeout(test, 1000);
+    }
+
+    test();
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/LocalObject_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/LocalObject_3.html
new file mode 100644 (file)
index 0000000..ab55099
--- /dev/null
@@ -0,0 +1,52 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>JS Object Storage Performance</p>
+
+    <h1>Test Description</h1>
+    <p>Precreate 50.000 objects (locally stored). After this create 10.000 new (not stored) objects inside a loop.</p>
+
+    <h1>Result</h1>
+    <p>The additional cleanup (remove all entries) of the local storage optimizes performance after the first loop. First loop is done after ~1150ms. The following loop needs ~490ms. Not bad, but poorly compared to the version, where the storage have never exist before. (See first examples, which executes in ~350ms.)</p>
+    <p>It makes no difference if we use a global or a local variable here. It's identical to GlobalObject_3.html.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var store = [];
+
+    for (var i=0; i<50000; i++) {
+      store.push({});
+    };
+
+    function test()
+    {
+      var _s = (new Date).valueOf();
+
+      for (var i=0; i<10000; i++) {
+        new Object()
+      };
+
+      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
+      window.setTimeout(test, 1000);
+    }
+
+    test();
+
+    qx.lang.Array.removeAll(store);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/LocalObject_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/LocalObject_4.html
new file mode 100644 (file)
index 0000000..d633458
--- /dev/null
@@ -0,0 +1,53 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>JS Object Storage Performance</p>
+
+    <h1>Test Description</h1>
+    <p>Precreate 50.000 objects (locally stored). After this create 10.000 new (not stored) objects inside a loop.</p>
+    <p>The "store" variable will be resetted after the first loop with "null".</p>
+
+    <h1>Result</h1>
+    <p>The additional cleanup (overwrite with null) of the global storage optimizes performance after the first loop. First loop is done after ~1150ms. The following loop needs ~350ms. Quite good. The same value as in the first example, where the data have never exist.</p>
+    <p>Interesting because theoratically the function implemenetation of "test" is inside the scope of "store".</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var store = [];
+
+    for (var i=0; i<50000; i++) {
+      store.push({});
+    };
+
+    function test()
+    {
+      var _s = (new Date).valueOf();
+
+      for (var i=0; i<10000; i++) {
+        new Object()
+      };
+
+      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
+      window.setTimeout(test, 1000);
+    }
+
+    test();
+
+    store = null;
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/LocalObject_5.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/LocalObject_5.html
new file mode 100644 (file)
index 0000000..34f351c
--- /dev/null
@@ -0,0 +1,50 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>JS Object Storage Performance</p>
+
+    <h1>Test Description</h1>
+    <p>Precreate 50.000 objects (locally stored). After this create 10.000 new (not stored) objects inside a loop.</p>
+    <p>The test method is implemented outside of the scope of "store".</p>
+
+    <h1>Result</h1>
+    <p>We need no additional cleanup to get a good performance of the function. First loop is done after ~1150ms. The following loop needs ~350ms. Quite good. The same value as in the first example, where the data have never exist.</p>
+  </div>
+
+  <script type="text/javascript">
+  function test()
+  {
+    var _s = (new Date).valueOf();
+
+    for (var i=0; i<10000; i++) {
+      new Object()
+    };
+
+    window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
+    window.setTimeout(test, 1000);
+  }
+
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var store = [];
+
+    for (var i=0; i<50000; i++) {
+      store.push({});
+    };
+
+    test();
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/NumberCreate_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/NumberCreate_1.html
new file mode 100644 (file)
index 0000000..7cdb760
--- /dev/null
@@ -0,0 +1,110 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for Number creation performance</p>
+    <ol>
+      <li>Using simple number</li>
+      <li>Using parseInt</li>
+      <li>Using parseFloat</li>
+      <li>Using new with string int</li>
+      <li>Using new with string float</li>
+      <li>Using new with simple number</li>
+      <li>Using new with parseInt</li>
+      <li>Using new with parseFloat</li>
+    </ol>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var n1 = "2392";
+    var n2 = "223.92";
+
+    function NumberCreate1(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = 2392;
+      };
+    };
+
+    function NumberCreate2(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = parseInt(n1);
+      };
+    };
+
+    function NumberCreate3(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = parseFloat(n2);
+      };
+    };
+
+    function NumberCreate4(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = new Number(n1);
+      };
+    };
+
+    function NumberCreate5(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = new Number(n2);
+      };
+    };
+
+    function NumberCreate6(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = new Number(2392);
+      };
+    };
+
+    function NumberCreate7(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = new Number(parseInt(n1));
+      };
+    };
+
+    function NumberCreate8(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = new Number(parseFloat(n2));
+      };
+    };
+
+    new qx.dev.TimeTracker(NumberCreate1, NumberCreate2, NumberCreate3, NumberCreate4, NumberCreate5, NumberCreate6, NumberCreate7, NumberCreate8);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectCreate_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectCreate_1.html
new file mode 100644 (file)
index 0000000..d1b0c69
--- /dev/null
@@ -0,0 +1,57 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for empty Object creation performance</p>
+    <ol>
+      <li>Using "{}"</li>
+      <li>Using "new Object"</li>
+      <li>Using "new Object()"</li>
+    </ol>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    function ObjectCreate1(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = {};
+      };
+    };
+
+    function ObjectCreate2(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = new Object;
+      };
+    };
+
+    function ObjectCreate3(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = new Object();
+      };
+    };
+
+    new qx.dev.TimeTracker(ObjectCreate1, ObjectCreate2, ObjectCreate3);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectCreate_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectCreate_2.html
new file mode 100644 (file)
index 0000000..8a5128e
--- /dev/null
@@ -0,0 +1,77 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for filled Object creation performance</p>
+    <ol>
+      <li>Using "{ content }"</li>
+      <li>Using "new Object; obj.key = value"</li>
+      <li>Using "new Object(); obj.key = value"</li>
+    </ol>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    function ObjectCreate1(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++) {
+        foo = {
+          key1 : 1,
+          key2 : 2,
+          key3 : 3,
+          key4 : 4,
+          key5 : 5
+        };
+      };
+    };
+
+    function ObjectCreate2(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++)
+      {
+        foo = new Object;
+
+        foo.key1 = 1;
+        foo.key2 = 2;
+        foo.key3 = 3;
+        foo.key4 = 4;
+        foo.key5 = 5;
+      };
+    };
+
+    function ObjectCreate3(vLoops)
+    {
+      var foo;
+
+      for (var i=0; i<vLoops; i++)
+      {
+        foo = new Object();
+
+        foo.key1 = 1;
+        foo.key2 = 2;
+        foo.key3 = 3;
+        foo.key4 = 4;
+        foo.key5 = 5;
+      };
+    };
+
+    new qx.dev.TimeTracker(ObjectCreate1, ObjectCreate2, ObjectCreate3);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectLevel_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectLevel_1.html
new file mode 100755 (executable)
index 0000000..23106c5
--- /dev/null
@@ -0,0 +1,92 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing the influence of inheritance to object creation performance.</p>
+    <p>Result: Each inheritance level increases the negative effect.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    function l1() {
+      this.store = true;
+    }
+
+    function l2() {
+      l1.call(this);
+    }
+    l2.prototype = new l1;
+
+    function l3() {
+      l2.call(this);
+    }
+    l3.prototype = new l2;
+
+    function l4() {
+      l3.call(this);
+    }
+    l4.prototype = new l3;
+
+    function l5() {
+      l4.call(this);
+    }
+    l5.prototype = new l4;
+
+    function l6() {
+      l5.call(this);
+    }
+    l6.prototype = new l5;
+
+
+    function t1(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l1;
+      }
+    }
+
+    function t2(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l2;
+      }
+    }
+
+    function t3(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l3;
+      }
+    }
+
+    function t4(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l4;
+      }
+    }
+
+    function t5(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l5;
+      }
+    }
+
+    function t6(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l6;
+      }
+    }
+
+    new qx.dev.TimeTracker(t1, t2, t3, t4, t5, t6);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectLevel_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectLevel_2.html
new file mode 100755 (executable)
index 0000000..64aaf7c
--- /dev/null
@@ -0,0 +1,88 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing the influence of inheritance to object creation performance.</p>
+    <p>Don't execute superclass constructor.</p>
+    <p>Result: No negative effect!</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    function l1() {
+      this.store = true;
+    }
+
+    function l2() {
+    }
+    l2.prototype = new l1;
+
+    function l3() {
+    }
+    l3.prototype = new l2;
+
+    function l4() {
+    }
+    l4.prototype = new l3;
+
+    function l5() {
+    }
+    l5.prototype = new l4;
+
+    function l6() {
+    }
+    l6.prototype = new l5;
+
+
+    function t1(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l1;
+      }
+    }
+
+    function t2(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l2;
+      }
+    }
+
+    function t3(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l3;
+      }
+    }
+
+    function t4(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l4;
+      }
+    }
+
+    function t5(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l5;
+      }
+    }
+
+    function t6(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l6;
+      }
+    }
+
+    new qx.dev.TimeTracker(t1, t2, t3, t4, t5, t6);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectLevel_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectLevel_3.html
new file mode 100644 (file)
index 0000000..f69a14d
--- /dev/null
@@ -0,0 +1,97 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing the influence of inheritance to object creation performance.</p>
+    <p>Result: Each inheritance level increases the negative effect.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    function l1() {
+      this.store = true;
+    }
+
+    function l2() {
+      this._t = l1;
+      this._t();
+    }
+    l2.prototype = new l1;
+
+    function l3() {
+      this._t = l2;
+      this._t();
+    }
+    l3.prototype = new l2;
+
+    function l4() {
+      this._t = l3;
+      this._t();
+    }
+    l4.prototype = new l3;
+
+    function l5() {
+      this._t = l4;
+      this._t();
+    }
+    l5.prototype = new l4;
+
+    function l6() {
+      this._t = l5;
+      this._t();
+    }
+    l6.prototype = new l5;
+
+
+    function t1(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l1;
+      }
+    }
+
+    function t2(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l2;
+      }
+    }
+
+    function t3(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l3;
+      }
+    }
+
+    function t4(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l4;
+      }
+    }
+
+    function t5(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l5;
+      }
+    }
+
+    function t6(vLoops) {
+      for (var i=0; i<vLoops; i++) {
+        new l6;
+      }
+    }
+
+    new qx.dev.TimeTracker(t1, t2, t3, t4, t5, t6);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectSize_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/ObjectSize_1.html
new file mode 100755 (executable)
index 0000000..c80c05e
--- /dev/null
@@ -0,0 +1,62 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing the incluence to the performance of data using the prototype mechanism on classes.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var emptyObject = function() {};
+    var protoObject1 = function() {};
+    var protoObject2 = function() {};
+
+    for (var i=0; i<1000; i++)
+    {
+      protoObject1.prototype["i" + i] = function() {
+        alert("Hello World: " + i);
+      };
+    }
+
+    for (var i=0; i<1000; i++)
+    {
+      protoObject2.prototype["i" + i] = "Hello World";
+    }
+
+    function empty(vLoops)
+    {
+      for (var i=0; i<vLoops; i++) {
+        new emptyObject;
+      }
+    }
+
+    function protos1(vLoops)
+    {
+      for (var i=0; i<vLoops; i++) {
+        new protoObject1;
+      }
+    }
+
+    function protos2(vLoops)
+    {
+      for (var i=0; i<vLoops; i++) {
+        new protoObject2;
+      }
+    }
+
+    new qx.dev.TimeTracker(empty, protos1, protos2);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/Qooxdoo_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/Qooxdoo_1.html
new file mode 100644 (file)
index 0000000..bad5574
--- /dev/null
@@ -0,0 +1,83 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for qooxdoo object performance</p>
+    <ol>
+      <li>qx.core.Object</li>
+      <li>qx.core.Target</li>
+      <li>qx.event.type.Event</li>
+      <li>qx.event.type.MouseEvent</li>
+      <li>qx.ui.basic.Terminator</li>
+      <li>qx.ui.layout.CanvasLayout</li>
+      <li>qx.ui.layout.BoxLayout</li>
+    </ol>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    function TestObject(vLoops)
+    {
+      for (var i=0; i<vLoops; i++) {
+        new qx.core.Object;
+      };
+    };
+
+    function TestTarget(vLoops)
+    {
+      for (var i=0; i<vLoops; i++) {
+        new qx.core.Target;
+      };
+    };
+
+    function TestEvent(vLoops)
+    {
+      for (var i=0; i<vLoops; i++) {
+        new qx.event.type.Event;
+      };
+    };
+
+    function TestMouseEvent(vLoops)
+    {
+      for (var i=0; i<vLoops; i++) {
+        new qx.event.type.MouseEvent;
+      };
+    };
+
+    function TestTerminator(vLoops)
+    {
+      for (var i=0; i<vLoops; i++) {
+        new qx.ui.basic.Terminator;
+      };
+    };
+
+    function TestCanvasLayout(vLoops)
+    {
+      for (var i=0; i<vLoops; i++) {
+        new qx.ui.layout.CanvasLayout;
+      };
+    };
+
+    function TestBoxLayout(vLoops)
+    {
+      for (var i=0; i<vLoops; i++) {
+        new qx.ui.layout.BoxLayout;
+      };
+    };
+
+    new qx.dev.TimeTracker(TestObject, TestTarget, TestEvent, TestMouseEvent, TestTerminator, TestCanvasLayout, TestBoxLayout);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/StringConcat_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/StringConcat_1.html
new file mode 100644 (file)
index 0000000..f0d1ec9
--- /dev/null
@@ -0,0 +1,95 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for String Performance. Using new String instances for concat.</p>
+    <ol>
+      <li>Operator +=</li>
+      <li>Operators = and +</li>
+      <li>Concat function</li>
+      <li>Array Push</li>
+      <li>Array Index</li>
+      <li>StringBuilder Object</li>
+    </ol>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    function StringConcatShort(vLoops)
+    {
+      var s = "";
+
+      for (var i=0; i<vLoops; i++) {
+        s += "a";
+      };
+    };
+
+    function StringConcatShortAlt(vLoops)
+    {
+      var s = "";
+
+      for (var i=0; i<vLoops; i++) {
+        s = s + "a";
+      };
+    };
+
+    function StringConcatMethod(vLoops)
+    {
+      var s = "";
+
+      for (var i=0; i<vLoops; i++) {
+        s=s.concat("a");
+      };
+    };
+
+    function StringConcatArrayPush(vLoops)
+    {
+      var s = [];
+
+      for (var i=0; i<vLoops; i++) {
+        s.push("a");
+      };
+
+      s = s.join("");
+    };
+
+    function StringConcatArrayAdd(vLoops)
+    {
+      var s = [];
+
+      for (var i=0; i<vLoops; i++) {
+        s[s.length] = "a";
+      };
+
+      s = s.join("");
+    };
+
+    function StringConcatStringBuilder(vLoops)
+    {
+      var s = new qx.type.StringBuilder;
+
+      for (var i=0; i<vLoops; i++) {
+        s.add("a");
+      };
+
+      s = s.get();
+    };
+
+    new qx.dev.TimeTracker(StringConcatShort, StringConcatShortAlt, 
+      StringConcatMethod, StringConcatArrayPush, StringConcatArrayAdd, 
+      StringConcatStringBuilder);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/StringConcat_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/StringConcat_2.html
new file mode 100644 (file)
index 0000000..d2b2c14
--- /dev/null
@@ -0,0 +1,98 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for String Performance. Using cached string instances for concat.</p>
+    <ol>
+      <li>Operator +=</li>
+      <li>Operators = and +</li>
+      <li>Concat function</li>
+      <li>Array Push</li>
+      <li>Array Index</li>
+      <li>StringBuilder Object</li>
+    </ol>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var e = "";
+    var a = "a";
+
+    function StringConcatShort(vLoops)
+    {
+      var s = e;
+
+      for (var i=0; i<vLoops; i++) {
+        s += a;
+      };
+    };
+
+    function StringConcatShortAlt(vLoops)
+    {
+      var s = e;
+
+      for (var i=0; i<vLoops; i++) {
+        s = s + a;
+      };
+    };
+
+    function StringConcatMethod(vLoops)
+    {
+      var s = e;
+
+      for (var i=0; i<vLoops; i++) {
+        s=s.concat(a);
+      };
+    };
+
+    function StringConcatArrayPush(vLoops)
+    {
+      var s = [];
+
+      for (var i=0; i<vLoops; i++) {
+        s.push(a);
+      };
+
+      s = s.join(e);
+    };
+
+    function StringConcatArrayAdd(vLoops)
+    {
+      var s = [];
+
+      for (var i=0; i<vLoops; i++) {
+        s[s.length] = a;
+      };
+
+      s = s.join(e);
+    };
+
+    function StringConcatStringBuilder(vLoops)
+    {
+      var s = new qx.type.StringBuilder;
+
+      for (var i=0; i<vLoops; i++) {
+        s.add(a);
+      };
+
+      s = s.get();
+    };
+
+    new qx.dev.TimeTracker(StringConcatShort, StringConcatShortAlt, 
+      StringConcatMethod, StringConcatArrayPush, StringConcatArrayAdd, 
+      StringConcatStringBuilder);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/StringConcat_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/StringConcat_3.html
new file mode 100644 (file)
index 0000000..2169b81
--- /dev/null
@@ -0,0 +1,109 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for String Performance.</p>
+    <p>Getting an filled array of strings and try to combine them.</p>
+
+    <ol>
+      <li>Operator +=</li>
+      <li>Operators = and +</li>
+      <li>Concat function</li>
+      <li>Array Push</li>
+      <li>Array Index</li>
+      <li>Array Append</li>
+    </ol>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var e = "";
+    var a = "a";
+
+    function getStringArr(vLoops)
+    {
+      var s = [];
+
+      for (var i=0; i<vLoops; i++) {
+        s.push(a);
+      };
+
+      return s;
+    };
+
+    function StringConcatShort(vLoops)
+    {
+      var s = e;
+
+      for (var i=0; i<vLoops; i++) {
+        s += getStringArr(vLoops).join(e);
+      };
+    };
+
+    function StringConcatShortAlt(vLoops)
+    {
+      var s = e;
+
+      for (var i=0; i<vLoops; i++) {
+        s = s + getStringArr(vLoops).join(e);
+      };
+    };
+
+    function StringConcatMethod(vLoops)
+    {
+      var s = e;
+
+      for (var i=0; i<vLoops; i++) {
+        s=s.concat(getStringArr(vLoops).join(e));
+      };
+    };
+
+    function StringConcatArrayPush(vLoops)
+    {
+      var s = [];
+
+      for (var i=0; i<vLoops; i++) {
+        s.push(getStringArr(vLoops).join(e));
+      };
+
+      s = s.join(e);
+    };
+
+    function StringConcatArrayAdd(vLoops)
+    {
+      var s = [];
+
+      for (var i=0; i<vLoops; i++) {
+        s[s.length] = getStringArr(vLoops).join(e);
+      };
+
+      s = s.join(e);
+    };
+
+    function StringConcatArrayAppend(vLoops)
+    {
+      var s = [];
+
+      for (var i=0; i<vLoops; i++) {
+        s.push.apply(s, getStringArr(vLoops));
+      };
+
+      s = s.join(e);
+    };
+
+    new qx.dev.TimeTracker(StringConcatShort, StringConcatShortAlt, StringConcatMethod, StringConcatArrayPush, StringConcatArrayAdd, StringConcatArrayAppend);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/TypeCheck_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/TypeCheck_1.html
new file mode 100644 (file)
index 0000000..7ef0f0d
--- /dev/null
@@ -0,0 +1,84 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for typical value checks and their performance.</p>
+    <ol>
+      <li>Typeof with Strings</li>
+      <li>Typeof with Constants</li>
+      <li>Instanceof</li>
+    </ol>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var STR = "string";
+    var NR = "number";
+    var OBJ = "object";
+
+    var str = "Hello World"
+    var nr1 = 1000;
+    var nr2 = Infinity;
+    var nr3 = NaN;
+    var nr4 = 0.432;
+    var obj1 = {};
+    var obj2 = { key1 : "hello world", key2 : "hello world", key3 : "hello world" }
+
+    function typeCheckTypeof1(vLoops)
+    {
+      for (var i=0; i<vLoops; i++)
+      {
+        typeof str === "string";
+        typeof nr1 === "number";
+        typeof nr2 === "number";
+        typeof nr3 === "number";
+        typeof nr4 === "number";
+        typeof obj1 === "object";
+        typeof obj2 === "object";
+      }
+    }
+
+    function typeCheckTypeof2(vLoops)
+    {
+      for (var i=0; i<vLoops; i++)
+      {
+        typeof str === STR;
+        typeof nr1 === NR;
+        typeof nr2 === NR;
+        typeof nr3 === NR;
+        typeof nr4 === NR;
+        typeof obj1 === OBJ;
+        typeof obj2 === OBJ;
+      }
+    }
+
+    function typeCheckInstanceOf(vLoops)
+    {
+      for (var i=0; i<vLoops; i++)
+      {
+        str instanceof String
+        nr1 instanceof Number
+        nr2 instanceof Number
+        nr3 instanceof Number
+        nr4 instanceof Number
+        obj1 instanceof Object
+        obj2 instanceof Object
+      }
+    }
+
+    new qx.dev.TimeTracker(typeCheckTypeof1, typeCheckTypeof2, typeCheckInstanceOf);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/index.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/performance/index.html
new file mode 100644 (file)
index 0000000..ac43754
--- /dev/null
@@ -0,0 +1,18 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Please choose an example from above.</p>
+  </div>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/showcase/Showcase_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/showcase/Showcase_1.html
new file mode 100644 (file)
index 0000000..bbfe520
--- /dev/null
@@ -0,0 +1,128 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>A small example how a webmail application can look and feel using qooxdoo.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var doc = qx.ui.core.ClientDocument.getInstance();
+
+    var dockLayout = new qx.ui.layout.DockLayout;
+
+    dockLayout.setLocation(20, 48);
+    dockLayout.setDimension(700, 500);
+    dockLayout.setBackgroundColor("white");
+    dockLayout.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+
+    doc.add(dockLayout);
+
+    var menubar = new qx.ui.menubar.MenuBar;
+    var toolbar = new qx.ui.toolbar.ToolBar;
+    var tree = new qx.ui.tree.Tree("Inbox");
+    var status = new qx.ui.basic.Atom("Status", "icon/16/network.png");
+
+    tree.setWidth(200);
+    tree.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+    tree.add(new qx.ui.tree.TreeFolder("Drafts"));
+    tree.add(new qx.ui.tree.TreeFolder("Sent"));
+    tree.add(new qx.ui.tree.TreeFolder("Trash"));
+    tree.add(new qx.ui.tree.TreeFolder("Junk"));
+
+    status.setWidth(null);
+    status.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
+    status.setHorizontalChildrenAlign("left");
+    status.setPadding(2, 4);
+    status.setBackgroundColor("threedface");
+
+    dockLayout.addTop(menubar);
+    dockLayout.addTop(toolbar);
+    dockLayout.addBottom(status);
+    dockLayout.addLeft(tree);
+
+
+
+    var btns = [
+      { text : "New", icon : "icon/16/mail-new.png" },
+      { text : "Send/Receive", icon : "icon/16/mail-send.png" },
+      { text : "Adressbook", icon : "icon/16/appointment.png" }
+    ];
+
+    for (var i=0; i<btns.length; i++) {
+      toolbar.add(new qx.ui.toolbar.Button(btns[i].text, btns[i].icon));
+    };
+
+
+
+    var filemnu = new qx.ui.menu.Menu;
+    var editmnu = new qx.ui.menu.Menu;
+    var optimnu = new qx.ui.menu.Menu;
+    var helpmnu = new qx.ui.menu.Menu;
+
+    filemnu.add(new qx.ui.menu.Button("New Mail"));
+    filemnu.add(new qx.ui.menu.Button("Exit"));
+
+    editmnu.add(new qx.ui.menu.Button("Cut"));
+    editmnu.add(new qx.ui.menu.Button("Copy"));
+    editmnu.add(new qx.ui.menu.Button("Paste"));
+
+    optimnu.add(new qx.ui.menu.Button("View"));
+    optimnu.add(new qx.ui.menu.Button("Settings"));
+
+    helpmnu.add(new qx.ui.menu.Button("Help"));
+    helpmnu.add(new qx.ui.menu.Button("About"));
+
+    var filemn = new qx.ui.menubar.Button("File", filemnu);
+    var editmn = new qx.ui.menubar.Button("Edit", editmnu);
+    var optimn = new qx.ui.menubar.Button("Options", optimnu);
+    var helpmn = new qx.ui.menubar.Button("Help", helpmnu);
+
+    menubar.add(filemn, editmn, optimn, new qx.ui.basic.HorizontalSpacer, helpmn);
+    doc.add(filemnu, editmnu, optimnu, helpmnu);
+
+
+
+
+
+
+
+
+    var ld = [];
+    var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+
+    for (var i=0, t; i<333; i++)
+    {
+      t=Math.round(Math.random()*4);
+      ld.push({ subject : { text : "Subject " + i }, from : { text : "qooxdoo User" }, date : { text : "01/26/2006" }});
+    };
+
+    var lc =
+    {
+      subject : { label : "Subject", width : 200, type : "text" },
+      from : { label : "From", width : 100, type : "text" },
+      date: { label : "Date", width : 100, type : "text" }
+    };
+
+    var view = new qx.ui.listview.ListView(ld, lc);
+
+    view.setLocation(220, 95);
+    view.setDimension(499, 430);
+    view.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+
+    doc.add(view);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/showcase/index.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/showcase/index.html
new file mode 100644 (file)
index 0000000..f9f55f8
--- /dev/null
@@ -0,0 +1,18 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Please choose a showcase from above.</p>
+  </div>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_1.html
new file mode 100644 (file)
index 0000000..f8bebf6
--- /dev/null
@@ -0,0 +1,286 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Some speed tests for qx.ui.basic.Atom. Please regard, that many of things in the finished
+    page are modified on the already created and visible qx.ui.basic.Atom instances. This is not
+    a good example in scripting qooxdoo. It's always faster to configure a instance of qx.ui.core.Widget
+    completely, before add it to the qx.ui.core.ClientDocument or any other visible parent qx.ui.core.Widget.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    /*
+    ----------------------------------------------
+    TEST LEVEL I
+    ----------------------------------------------
+    */
+
+    var la1 = new qx.ui.basic.Atom("Test No #1", "icon/16/bell.png");
+    with(la1)
+    {
+      setTop(48);
+      setLeft(20);
+      setIconPosition("left");
+    };
+    d.add(la1);
+
+
+    var la2 = new qx.ui.basic.Atom("Test No #2", "icon/16/bell.png");
+    with(la2)
+    {
+      setTop(148);
+      setLeft(20);
+      setIconPosition("right");
+    };
+    d.add(la2);
+
+
+    var la3 = new qx.ui.basic.Atom("Test No #3", "icon/16/bell.png");
+    with(la3)
+    {
+      setTop(248);
+      setLeft(20);
+      setIconPosition("top");
+    };
+    d.add(la3);
+
+
+    var la4 = new qx.ui.basic.Atom("Test No #4", "icon/16/bell.png");
+    with(la4)
+    {
+      setTop(348);
+      setLeft(20);
+      setIconPosition("bottom");
+    };
+    d.add(la4);
+
+
+    /*
+    ----------------------------------------------
+    TEST LEVEL II
+    ----------------------------------------------
+    */
+
+    var lb1 = new qx.ui.basic.Atom("Test No #1", "icon/16/bell.png");
+    with(lb1)
+    {
+      setTop(48);
+      setLeft(120);
+      setIconPosition("left");
+    };
+    d.add(lb1);
+    lb1.setIconPosition("right");
+
+
+    var lb2 = new qx.ui.basic.Atom("Test No #2", "icon/16/bell.png");
+    with(lb2)
+    {
+      setTop(148);
+      setLeft(120);
+      setIconPosition("right");
+    };
+    d.add(lb2);
+    lb2.setIconPosition("left");
+
+
+    var lb3 = new qx.ui.basic.Atom("Test No #3", "icon/16/bell.png");
+    with(lb3)
+    {
+      setTop(248);
+      setLeft(120);
+      setIconPosition("top");
+    };
+    d.add(lb3);
+    lb3.setIconPosition("bottom");
+
+
+    var lb4 = new qx.ui.basic.Atom("Test No #4", "icon/16/bell.png");
+    with(lb4)
+    {
+      setTop(348);
+      setLeft(120);
+      setIconPosition("bottom");
+    };
+    d.add(lb4);
+    lb4.setIconPosition("top");
+
+
+
+
+    /*
+    ----------------------------------------------
+    TEST LEVEL III
+    ----------------------------------------------
+    */
+
+    var lc1 = new qx.ui.basic.Atom("Test No #1", "icon/16/bell.png");
+    with(lc1)
+    {
+      setTop(48);
+      setLeft(220);
+      setIconPosition("left");
+    };
+    d.add(lc1);
+    lc1.setIconPosition("top");
+
+
+    var lc2 = new qx.ui.basic.Atom("Test No #2", "icon/16/bell.png");
+    with(lc2)
+    {
+      setTop(148);
+      setLeft(220);
+      setIconPosition("right");
+    };
+    d.add(lc2);
+    lc2.setIconPosition("bottom");
+
+
+    var lc3 = new qx.ui.basic.Atom("Test No #3", "icon/16/bell.png");
+    with(lc3)
+    {
+      setTop(248);
+      setLeft(220);
+      setIconPosition("top");
+    };
+    d.add(lc3);
+    lc3.setIconPosition("right");
+
+
+    var lc4 = new qx.ui.basic.Atom("Test No #4", "icon/16/bell.png");
+    with(lc4)
+    {
+      setTop(348);
+      setLeft(220);
+      setIconPosition("bottom");
+    };
+    d.add(lc4);
+    lc4.setIconPosition("left");
+
+
+
+
+    /*
+    ----------------------------------------------
+    TEST LEVEL IV
+    ----------------------------------------------
+    */
+
+    var ld1 = new qx.ui.basic.Atom("Test No #1", "icon/16/bell.png");
+    with(ld1)
+    {
+      setTop(48);
+      setLeft(320);
+      setIconPosition("left");
+    };
+    d.add(ld1);
+    ld1.setIconPosition("bottom");
+
+
+    var ld2 = new qx.ui.basic.Atom("Test No #2", "icon/16/bell.png");
+    with(ld2)
+    {
+      setTop(148);
+      setLeft(320);
+      setIconPosition("right");
+    };
+    d.add(ld2);
+    ld2.setIconPosition("top");
+
+
+    var ld3 = new qx.ui.basic.Atom("Test No #3", "icon/16/bell.png");
+    with(ld3)
+    {
+      setTop(248);
+      setLeft(320);
+      setIconPosition("top");
+    };
+    d.add(ld3);
+    ld3.setIconPosition("left");
+
+
+    var ld4 = new qx.ui.basic.Atom("Test No #4", "icon/16/bell.png");
+    with(ld4)
+    {
+      setTop(348);
+      setLeft(320);
+      setIconPosition("bottom");
+    };
+    d.add(ld4);
+    ld4.setIconPosition("right");
+
+
+
+
+
+    /*
+    ----------------------------------------------
+    TEST LEVEL V
+    ----------------------------------------------
+    */
+
+    var le1 = new qx.ui.basic.Atom("Test No #1", "icon/16/bell.png");
+    with(le1)
+    {
+      setTop(48);
+      setLeft(420);
+      setIconPosition("right");
+    };
+    d.add(le1);
+    le1.setIconPosition("top");
+
+
+    var le2 = new qx.ui.basic.Atom("Test No #2", "icon/16/bell.png");
+    with(le2)
+    {
+      setTop(148);
+      setLeft(420);
+      setIconPosition("left");
+    };
+    d.add(le2);
+    le2.setIconPosition("bottom");
+
+
+    var le3 = new qx.ui.basic.Atom("Test No #3", "icon/16/bell.png");
+    with(le3)
+    {
+      setTop(248);
+      setLeft(420);
+      setIconPosition("top");
+    };
+    d.add(le3);
+    le3.setIconPosition("right");
+
+
+    var le4 = new qx.ui.basic.Atom("Test No #4", "icon/16/bell.png");
+    with(le4)
+    {
+      setTop(348);
+      setLeft(420);
+      setIconPosition("bottom");
+    };
+    d.add(le4);
+    le4.setIconPosition("left");
+
+
+
+
+
+
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_2.html
new file mode 100644 (file)
index 0000000..b80d641
--- /dev/null
@@ -0,0 +1,187 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Example to show correct calculations of qx.ui.basic.Atom sizes. Normally a qx.ui.basic.Atom has only the size of its content.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var w = qx.ui.core.ClientDocument.getInstance();
+
+
+      function alertoff() {
+        alert(this.getElement().offsetWidth + "x" + this.getElement().offsetHeight);
+      };
+
+      var l1 = new qx.ui.layout.CanvasLayout();
+      var l2 = new qx.ui.layout.CanvasLayout();
+
+      with(l1)
+      {
+        setTop(100);
+        setLeft(20);
+        setWidth(500);
+        setHeight(1);
+        setBackgroundColor("red");
+        setOverflow("hidden");
+      };
+
+      with(l2)
+      {
+        setTop(123);
+        setLeft(20);
+        setWidth(500);
+        setHeight(1);
+        setBackgroundColor("red");
+        setOverflow("hidden");
+      };
+
+      w.add(l1);
+      w.add(l2);
+
+
+
+      var a1 = new qx.ui.basic.Atom("Pure Text", "icon/22/folder.png");
+      var a2 = new qx.ui.basic.Atom(null, "icon/22/folder.png");
+
+      with(a1) {
+        setBorder(new qx.renderer.border.Border(1, "solid", "black"));
+        setTop(100);
+        setLeft(120);
+      };
+
+      with(a2) {
+        setBorder(new qx.renderer.border.Border(1, "solid", "black"));
+        setTop(100);
+        setLeft(300);
+      };
+
+      w.add(a1);
+      w.add(a2);
+
+      a1.addEventListener("click", alertoff);
+      a2.addEventListener("click", alertoff);
+
+
+
+      var l3 = new qx.ui.layout.CanvasLayout();
+      var l4 = new qx.ui.layout.CanvasLayout();
+
+      with(l3)
+      {
+        setTop(200);
+        setLeft(20);
+        setWidth(500);
+        setHeight(1);
+        setBackgroundColor("red");
+        setOverflow("hidden");
+      };
+
+      with(l4)
+      {
+        setTop(233);
+        setLeft(20);
+        setWidth(500);
+        setHeight(1);
+        setBackgroundColor("red");
+        setOverflow("hidden");
+      };
+
+      w.add(l3);
+      w.add(l4);
+
+
+      var b1 = new qx.ui.basic.Atom("Pure Text", "icon/32/network.png");
+      var b2 = new qx.ui.basic.Atom(null, "icon/32/network.png");
+
+      with(b1) {
+        setBorder(new qx.renderer.border.Border(1, "solid", "black"));
+        setTop(200);
+        setLeft(120);
+      };
+
+      with(b2) {
+        setBorder(new qx.renderer.border.Border(1, "solid", "black"));
+        setTop(200);
+        setLeft(300);
+      };
+
+      w.add(b1);
+      w.add(b2);
+
+      b1.addEventListener("click", alertoff);
+      b2.addEventListener("click", alertoff);
+
+
+
+
+
+
+      var l5 = new qx.ui.layout.CanvasLayout();
+      var l6 = new qx.ui.layout.CanvasLayout();
+
+      with(l5)
+      {
+        setTop(300);
+        setLeft(20);
+        setWidth(500);
+        setHeight(1);
+        setBackgroundColor("red");
+        setOverflow("hidden");
+      };
+
+      with(l6)
+      {
+        setTop(317);
+        setLeft(20);
+        setWidth(500);
+        setHeight(1);
+        setBackgroundColor("red");
+        setOverflow("hidden");
+      };
+
+      w.add(l5);
+      w.add(l6);
+
+
+      var c1 = new qx.ui.basic.Atom("Pure Text", "icon/16/network.png");
+      var c2 = new qx.ui.basic.Atom(null, "icon/16/network.png");
+
+      with(c1) {
+        setBorder(new qx.renderer.border.Border(1, "solid", "black"));
+        setTop(300);
+        setLeft(120);
+      };
+
+      with(c2) {
+        setBorder(new qx.renderer.border.Border(1, "solid", "black"));
+        setTop(300);
+        setLeft(300);
+      };
+
+      w.add(c1);
+      w.add(c2);
+
+      c1.addEventListener("click", alertoff);
+      c2.addEventListener("click", alertoff);
+
+
+
+
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_3.html
new file mode 100644 (file)
index 0000000..a824bb5
--- /dev/null
@@ -0,0 +1,322 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Layout tests for qx.ui.basic.Atom reimplementation.</p>
+  </div>
+  
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+      
+      
+      var a1 = new qx.ui.basic.Atom;
+      a1.setLabel("hello world");
+      a1.setTop(48);
+      a1.setLeft(20);
+      a1.setPadding(2, 4);
+      a1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(a1);
+
+      var a2 = new qx.ui.basic.Atom;
+      a2.setIcon("icon/32/run.png");
+      a2.setTop(48);
+      a2.setLeft(120);
+      a2.setPadding(2, 4);
+      a2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(a2);
+
+
+      
+
+      var b1 = new qx.ui.basic.Atom;
+      b1.setLabel("hello world");
+      b1.setIcon("icon/32/run.png");
+      b1.setIconPosition("left");
+      b1.setTop(100);
+      b1.setLeft(20);
+      b1.setPadding(2, 4);
+      b1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(b1);
+      
+      var b2 = new qx.ui.basic.Atom;
+      b2.setLabel("hello world");
+      b2.setIcon("icon/32/run.png");
+      b2.setIconPosition("top");
+      b2.setTop(100);
+      b2.setLeft(120);
+      b2.setPadding(2, 4);
+      b2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(b2);
+      
+      var b3 = new qx.ui.basic.Atom;
+      b3.setLabel("hello world");
+      b3.setIcon("icon/32/run.png");
+      b3.setIconPosition("right");
+      b3.setTop(100);
+      b3.setLeft(220);
+      b3.setPadding(2, 4);
+      b3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(b3);
+      
+      var b4 = new qx.ui.basic.Atom;
+      b4.setLabel("hello world");
+      b4.setIcon("icon/32/run.png");
+      b4.setIconPosition("bottom");
+      b4.setTop(100);
+      b4.setLeft(320);
+      b4.setPadding(2, 4);
+      b4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(b4);   
+      
+      
+      
+      
+      var c1 = new qx.ui.basic.Atom;
+      c1.setLabel("hello world");
+      c1.setIcon("icon/32/run.png");
+      c1.setShow("icon");
+      c1.setTop(180);
+      c1.setLeft(20);
+      c1.setPadding(2, 4);
+      c1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(c1);
+      
+      var c2 = new qx.ui.basic.Atom;
+      c2.setLabel("hello world");
+      c2.setIcon("icon/32/run.png");
+      c2.setShow("label");
+      c2.setTop(180);
+      c2.setLeft(120);
+      c2.setPadding(2, 4);
+      c2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(c2);
+                  
+                  
+                 
+                  
+                  
+      var d1 = new qx.ui.basic.Atom;
+      d1.setLabel("hello world");
+      d1.setIcon("icon/32/run.png");
+      d1.setShow("icon");
+      d1.setTop(250);
+      d1.setLeft(20);
+      d1.setPadding(2, 4);
+      d1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(d1);                           
+      d1.setShow("both");
+       
+      var d2 = new qx.ui.basic.Atom;
+      d2.setLabel("hello world");
+      d2.setIcon("icon/32/run.png");
+      d2.setShow("label");
+      d2.setTop(250);
+      d2.setLeft(120);
+      d2.setPadding(2, 4);
+      d2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(d2);                           
+      d2.setShow("both");   
+      
+      var d3 = new qx.ui.basic.Atom;
+      d3.setLabel("hello world");
+      d3.setIcon("icon/32/run.png");
+      d3.setShow("none");
+      d3.setTop(250);
+      d3.setLeft(220);
+      d3.setPadding(2, 4);
+      d3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(d3);                           
+      d3.setShow("both");
+      
+      
+      
+      
+      var e1 = new qx.ui.basic.Atom;
+      e1.setIcon("icon/32/run.png");
+      e1.setShow("none");
+      e1.setTop(300);
+      e1.setLeft(20);
+      e1.setPadding(2, 4);
+      e1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(e1);
+      e1.setShow("both");      
+      e1.setLabel("hello world");      
+      
+      var e2 = new qx.ui.basic.Atom;
+      e2.setLabel("hello world");
+      e2.setShow("none");
+      e2.setTop(300);
+      e2.setLeft(120);
+      e2.setPadding(2, 4);
+      e2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(e2);
+      e2.setShow("both");      
+      e2.setIcon("icon/32/run.png");       
+        
+      var e3 = new qx.ui.basic.Atom;
+      e3.setShow("none");
+      e3.setTop(300);
+      e3.setLeft(220);
+      e3.setPadding(2, 4);
+      e3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(e3);
+      e3.setShow("both");      
+      e3.setIcon("icon/32/run.png");            
+      e3.setLabel("hello world");
+
+      var e4 = new qx.ui.basic.Atom;
+      e4.setShow("none");
+      e4.setTop(300);
+      e4.setLeft(320);
+      e4.setPadding(2, 4);
+      e4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(e4);
+      e4.setShow("both");      
+      e4.setLabel("hello world");         
+      e4.setIcon("icon/32/run.png");            
+      
+      
+      
+      
+      var f1 = new qx.ui.basic.Atom;
+      f1.setLabel("hello world");
+      f1.setIcon("icon/32/run.png");
+      f1.setIconPosition("left");
+      f1.setTop(350);
+      f1.setLeft(20);
+      f1.setPadding(2, 4);
+      f1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(f1);
+      f1.setIconPosition("top");
+      
+      var f2 = new qx.ui.basic.Atom;
+      f2.setLabel("hello world");
+      f2.setIcon("icon/32/run.png");
+      f2.setIconPosition("left");
+      f2.setTop(350);
+      f2.setLeft(120);
+      f2.setPadding(2, 4);
+      f2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(f2);
+      f2.setIconPosition("right");      
+      
+      var f3 = new qx.ui.basic.Atom;
+      f3.setLabel("hello world");
+      f3.setIcon("icon/32/run.png");
+      f3.setIconPosition("left");
+      f3.setTop(350);
+      f3.setLeft(220);
+      f3.setPadding(2, 4);
+      f3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(f3);
+      f3.setIconPosition("bottom");      
+      
+      
+      
+      
+      var g1 = new qx.ui.basic.Atom;
+      g1.setLabel("hello world");
+      g1.setIcon("icon/32/run.png");
+      g1.setIconPosition("top");
+      g1.setTop(450);
+      g1.setLeft(20);
+      g1.setPadding(2, 4);
+      g1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(g1);
+      g1.setIconPosition("right");
+      
+      var g2 = new qx.ui.basic.Atom;
+      g2.setLabel("hello world");
+      g2.setIcon("icon/32/run.png");
+      g2.setIconPosition("top");
+      g2.setTop(450);
+      g2.setLeft(120);
+      g2.setPadding(2, 4);
+      g2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(g2);
+      g2.setIconPosition("bottom");      
+      
+      var g3 = new qx.ui.basic.Atom;
+      g3.setLabel("hello world");
+      g3.setIcon("icon/32/run.png");
+      g3.setIconPosition("top");
+      g3.setTop(450);
+      g3.setLeft(220);
+      g3.setPadding(2, 4);
+      g3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(g3);
+      g3.setIconPosition("left");       
+      
+      
+      
+      
+      
+      
+      var h1 = new qx.ui.basic.Atom;
+      h1.setLabel("hello world");
+      h1.setIcon("icon/32/run.png");
+      h1.setIconPosition("left");
+      h1.setTop(520);
+      h1.setLeft(20);
+      h1.setPadding(2, 4);
+      h1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(h1);    
+      h1.setSpacing(20);
+      
+      
+      var h2 = new qx.ui.basic.Atom;
+      h2.setLabel("hello world");
+      h2.setIcon("icon/32/run.png");
+      h2.setIconPosition("top");
+      h2.setTop(520);
+      h2.setLeft(150);
+      h2.setPadding(2, 4);
+      h2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      d.add(h2);
+      h2.setSpacing(20);
+            
+      
+      
+      
+
+      
+      var i1 = new qx.ui.basic.Atom;
+      i1.setLabel("hello world");
+      i1.setIcon("icon/32/run.png");
+      i1.setIconPosition("left");
+      i1.setTop(600);
+      i1.setLeft(20);
+      i1.setPadding(2, 4);
+      i1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      i1.setHeight(150);
+      i1.setWidth(150);
+      d.add(i1);
+      
+      var i2 = new qx.ui.basic.Atom;
+      i2.setLabel("hello world");
+      i2.setIcon("icon/32/run.png");
+      i2.setIconPosition("top");
+      i2.setTop(600);
+      i2.setLeft(200);
+      i2.setPadding(2, 4);
+      i2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
+      i2.setWidth(150);
+      i2.setHeight(150);
+      d.add(i2);      
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_4.html
new file mode 100644 (file)
index 0000000..a25990b
--- /dev/null
@@ -0,0 +1,46 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var icons = [ "clock", "colors", "date", "folder", "locale", "penguin" ];
+    var sizes = [ 16, 22, 32, 48, 64, 48, 32, 22, 16 ];
+
+    var atom;
+    var toppos = 48;
+
+    for (var j=0; j<sizes.length; j++)
+    {
+      for (var i=0; i<icons.length; i++)
+      {
+        atom = new qx.ui.basic.Atom("Atom " + (i+1) + "." + (j+1), "icon/" + sizes[j] + "/" + icons[i] + ".png");
+
+        atom.setTop(toppos);
+        atom.setLeft(20 + (120 *i));
+
+        d.add(atom);
+      };
+
+      toppos += sizes[j] + 20;
+    };
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_5.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_5.html
new file mode 100644 (file)
index 0000000..bc05b1e
--- /dev/null
@@ -0,0 +1,43 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Adding many qx.ui.basic.Atom widgets without setting the icon-width and -height.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var atom;
+    var toppos = 48;
+
+    for (var i=0; i<20; i++)
+    {
+      for (var j=0; j<10; j++)
+      {
+        atom = new qx.ui.basic.Atom("Date", "icon/16/date.png");
+
+        atom.setTop(toppos);
+        atom.setLeft(20 + (j*50));
+
+        d.add(atom);
+      };
+
+      toppos += 20;
+    };
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_6.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_6.html
new file mode 100644 (file)
index 0000000..9102269
--- /dev/null
@@ -0,0 +1,43 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Adding many qx.ui.basic.Atom widgets setting the icon-width and -height.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var atom;
+    var toppos = 48;
+
+    for (var i=0; i<20; i++)
+    {
+      for (var j=0; j<10; j++)
+      {
+        atom = new qx.ui.basic.Atom("Date", "icon/16/date.png", 16, 16);
+
+        atom.setTop(toppos);
+        atom.setLeft(20 + (j*50));
+
+        d.add(atom);
+      };
+
+      toppos += 20;
+    };
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_7.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_7.html
new file mode 100644 (file)
index 0000000..5be132a
--- /dev/null
@@ -0,0 +1,43 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var atom;
+    var toppos = 48;
+
+    for (var i=0; i<20; i++)
+    {
+      for (var j=0; j<10; j++)
+      {
+        atom = new qx.ui.basic.Atom(null, "icon/16/date.png", 16, 16);
+
+        atom.setTop(toppos);
+        atom.setLeft(20 + (j*50));
+
+        d.add(atom);
+      };
+
+      toppos += 20;
+    };
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_8.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_8.html
new file mode 100644 (file)
index 0000000..a08fa54
--- /dev/null
@@ -0,0 +1,43 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var atom;
+    var toppos = 48;
+
+    for (var i=0; i<20; i++)
+    {
+      for (var j=0; j<10; j++)
+      {
+        atom = new qx.ui.basic.Atom("Date");
+
+        atom.setTop(toppos);
+        atom.setLeft(20 + (j*50));
+
+        d.add(atom);
+      };
+
+      toppos += 20;
+    };
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_9.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Atom_9.html
new file mode 100644 (file)
index 0000000..563816f
--- /dev/null
@@ -0,0 +1,44 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    This uses qx.ui.basic.Label instead of qx.ui.basic.Atom for text only display. Stored as Atom test file
+    because this way we could compare it to the previous test file.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var atom;
+    var toppos = 48;
+
+    for (var i=0; i<20; i++)
+    {
+      for (var j=0; j<10; j++)
+      {
+        atom = new qx.ui.basic.Label("Date");
+
+        atom.setTop(toppos);
+        atom.setLeft(20 + (j*50));
+
+        d.add(atom);
+      };
+
+      toppos += 20;
+    };
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Border_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Border_1.html
new file mode 100644 (file)
index 0000000..6aa6af6
--- /dev/null
@@ -0,0 +1,177 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for qx.renderer.border.Border, a cross-browser advanced border engine.
+    Each instance of qx.renderer.border.Border allows to affect multiple QxTerminators.
+    When the one property of the qx.renderer.border.Border change, it informs all bounded
+    QxTerminators to rerender the border.</p>
+
+    <p>The qx.renderer.border.Border constructor also allows you to convert a string
+    (css-like) into and qx.renderer.border.Border instance (last example).</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+
+
+    var c1 = new qx.ui.basic.Terminator;
+    with(c1)
+    {
+      setTop(48);
+      setLeft(20);
+      setWidth(150);
+      setHeight(40);
+      setBackgroundColor(new qx.renderer.color.Color("#fff"));
+    };
+    d.add(c1);
+
+    var c2 = new qx.ui.basic.Terminator;
+    with(c2)
+    {
+      setTop(48);
+      setLeft(200);
+      setWidth(150);
+      setHeight(40);
+      setBackgroundColor(new qx.renderer.color.Color("#fff"));
+    };
+    d.add(c2);
+
+    var b1 = new qx.renderer.border.Border;
+
+    // before set border properties
+    c1.setBorder(b1);
+
+    b1.setWidth(2);
+    b1.setStyle("solid");
+    b1.setColor(new qx.renderer.color.Color("black"));
+    b1.setBottomStyle("dotted");
+    b1.setTopColor(new qx.renderer.color.Color("blue"));
+
+    // after set border properties
+    c2.setBorder(b1);
+
+
+
+
+
+
+
+
+    var c3 = new qx.ui.basic.Terminator;
+    with(c3)
+    {
+      setTop(110);
+      setLeft(20);
+      setWidth(40);
+      setHeight(40);
+      setBackgroundColor(new qx.renderer.color.ColorObject("threedface"));
+    };
+    d.add(c3);
+
+    c3.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
+
+    var c4 = new qx.ui.basic.Terminator;
+    with(c4)
+    {
+      setTop(110);
+      setLeft(80);
+      setWidth(40);
+      setHeight(40);
+      setBackgroundColor(new qx.renderer.color.ColorObject("threedface"));
+    };
+    d.add(c4);
+
+    c4.setBorder(qx.renderer.border.BorderPresets.getInstance().thinOutset);
+
+    var c5 = new qx.ui.basic.Terminator;
+    with(c5)
+    {
+      setTop(110);
+      setLeft(140);
+      setWidth(40);
+      setHeight(40);
+      setBackgroundColor(new qx.renderer.color.ColorObject("threedface"));
+    };
+    d.add(c5);
+
+    c5.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+
+
+    var c6 = new qx.ui.basic.Terminator;
+    with(c6)
+    {
+      setTop(110);
+      setLeft(200);
+      setWidth(40);
+      setHeight(40);
+      setBackgroundColor(new qx.renderer.color.ColorObject("threedface"));
+    };
+    d.add(c6);
+
+    c6.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+
+
+    var c7 = new qx.ui.basic.Terminator;
+    with(c7)
+    {
+      setTop(110);
+      setLeft(260);
+      setWidth(40);
+      setHeight(40);
+      setBackgroundColor(new qx.renderer.color.ColorObject("threedface"));
+    };
+    d.add(c7);
+
+    c7.setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
+
+    var c8 = new qx.ui.basic.Terminator;
+    with(c8)
+    {
+      setTop(110);
+      setLeft(320);
+      setWidth(40);
+      setHeight(40);
+      setBackgroundColor(new qx.renderer.color.ColorObject("threedface"));
+    };
+    d.add(c8);
+
+    c8.setBorder(qx.renderer.border.BorderPresets.getInstance().ridge);
+
+
+
+    var c9 = new qx.ui.basic.Terminator;
+    with(c9)
+    {
+      setTop(110);
+      setLeft(380);
+      setWidth(40);
+      setHeight(40);
+      setBackgroundColor(new qx.renderer.color.ColorObject("threedface"));
+    };
+    d.add(c9);
+
+    var b2 = qx.renderer.border.Border.fromString("2px solid red");
+    c9.setBorder(b2);
+    
+    
+    
+    // Color Themes
+    qx.manager.object.ColorManager.getInstance().createThemeList(d, 220, 248);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/BoxLayout_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/BoxLayout_1.html
new file mode 100644 (file)
index 0000000..36bcf5f
--- /dev/null
@@ -0,0 +1,283 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="testCommand" class="manualFrame">
+    <style type="text/css">
+      #testCommand{
+        position: absolute;
+        right: 335px;
+        bottom: 48px;
+        width: 350px;
+      }
+    
+      .setform select{
+        font-size: 11px;
+        min-width: 75px;
+      }
+
+      .setform button{
+        font-size: 11px;
+      }
+    </style>
+
+    <table class="setform"><tbody>
+
+    <tr>
+      <td>
+        <label for="sel_orientation">Orientation:</label>
+      </td>
+      <td>
+        <select id="sel_orientation">
+          <option selected="selected">horizontal</option>
+          <option>vertical</option>
+        </select>
+      </td>
+    </tr>
+
+    <tr>
+      <td>Width/Height:</td>
+      <td>
+        <select id="sel_width">
+          <option>100</option>
+          <option selected="selected">250</option>
+          <option>500</option>
+          <option>auto</option>
+        </select>
+        <select id="sel_height">
+          <option>100</option>
+          <option selected="selected">250</option>
+          <option>500</option>          
+          <option>auto</option>
+        </select>
+      </td>
+    </tr>
+
+    <tr>
+      <td>Spacing/Padding:</td>
+      <td>
+        <select id="sel_spacing">
+          <option selected="selected">0</option>
+          <option>2</option>
+          <option>4</option>
+          <option>8</option>
+        </select>
+        <select id="sel_padding">
+          <option selected="selected">0</option>
+          <option>2</option>
+          <option>4</option>
+          <option>8</option>
+        </select>
+      </td>
+    </tr>
+
+    <tr>
+      <td>
+        <label for="sel_order">Order/Stretching:</label>
+      </td>
+      <td>
+        <select id="sel_order">
+          <option selected="selected">default</option>
+          <option>reverse</option>
+        </select>
+        <select id="sel_stretch">
+          <option selected="selected">enabled</option>
+          <option>disabled</option>
+        </select>
+      </td>
+    </tr>
+
+    <tr>
+      <td>Horizontal/Vertical Align:</td>
+      <td>
+        <select id="sel_horalg">
+          <option selected="selected">left</option>
+          <option>center</option>
+          <option>right</option>
+        </select>
+        <select id="sel_veralg">
+          <option selected="selected">top</option>
+          <option>middle</option>
+          <option>bottom</option>
+        </select>
+      </td>
+    </tr>
+
+    <tr>
+      <td>&#160;</td>
+      <td>
+        <button id="btn_save">Apply</button>
+      </td>
+    </tr>
+
+    </tbody></table>  
+    
+    <p><b>Tests</b></p>
+    <ul>
+      <li><a href="javascript:test1()">Test 1: Remove blue widget</a></li>
+      <li><a href="javascript:test2()">Test 2: Add blue widget</a></li>
+      <li><a href="javascript:test3()">Test 3: Add blue widget at position 2</a></li>
+      <li><a href="javascript:test4()">Test 4: Add blue widget at position 4</a></li>
+      <li><a href="javascript:test5()">Test 5: Add green widget at before the cdrom</a></li>
+      <li><a href="javascript:test6()">Test 6: Add green widget at after the color palette</a></li>
+      <li><a href="javascript:test7()">Test 7: Add new widget to layout</a></li>
+    </ul>
+  </div>
+
+  <div id="demoDescription">
+    <p>Now something more complex. Try to configure multiple things and then press &lt;apply&gt;.</p>
+  </div>
+
+  <script type="text/javascript">
+
+  var bl, w1, w2, w3, w4, w5, w6, w7, w8;
+
+  var _b = document.getElementById("btn_save");
+  var _t = document.getElementById("sel_orientation");
+  var _w = document.getElementById("sel_width");
+  var _h = document.getElementById("sel_height");
+  var _s = document.getElementById("sel_spacing");
+  var _p = document.getElementById("sel_padding");
+  var _o = document.getElementById("sel_order");
+  var _r = document.getElementById("sel_stretch");
+  var _l = document.getElementById("sel_horalg");
+  var _v = document.getElementById("sel_veralg");
+
+  function save()
+  {
+    var vt = _t.options[_t.selectedIndex].firstChild.nodeValue;
+    var vw = _w.options[_w.selectedIndex].firstChild.nodeValue;
+    var vh = _h.options[_h.selectedIndex].firstChild.nodeValue;
+    var vs = _s.options[_s.selectedIndex].firstChild.nodeValue;
+    var vp = _p.options[_p.selectedIndex].firstChild.nodeValue;
+    var vo = _o.options[_o.selectedIndex].firstChild.nodeValue;
+    var vr = _r.options[_r.selectedIndex].firstChild.nodeValue;
+    var vl = _l.options[_l.selectedIndex].firstChild.nodeValue;
+    var vv = _v.options[_v.selectedIndex].firstChild.nodeValue;
+    
+    bl.setOrientation(vt);
+    bl.setWidth(vw == "auto" ? vw : parseInt(vw));
+    bl.setHeight(vh == "auto" ? vh : parseInt(vh));
+    bl.setSpacing(parseInt(vs));
+    bl.setPadding(parseInt(vp));
+    bl.setReverseChildrenOrder(vo == "reverse");
+    bl.setStretchChildrenOrthogonalAxis(vr == "enabled");
+    bl.setHorizontalChildrenAlign(vl);
+    bl.setVerticalChildrenAlign(vv);
+  };
+
+  if (_b.attachEvent)
+    _b.attachEvent("onclick", save);
+  else if (_b.addEventListener)
+    _b.addEventListener("click", save, false);
+    
+    
+  function test1() 
+  {
+    bl.remove(w2);
+    qx.ui.core.Widget.flushGlobalQueues();
+  };  
+  
+  function test2() 
+  {
+    bl.add(w2);
+    qx.ui.core.Widget.flushGlobalQueues();
+  };
+  
+  function test3() 
+  {
+    bl.addAt(w2, 2);
+    qx.ui.core.Widget.flushGlobalQueues();
+  };  
+
+  function test4() 
+  {
+    bl.addAt(w2, 4);
+    qx.ui.core.Widget.flushGlobalQueues();
+  };  
+
+  function test5() 
+  {
+    bl.addBefore(w3, w7);
+    qx.ui.core.Widget.flushGlobalQueues();
+  };  
+
+  function test6() 
+  {
+    bl.addAfter(w3, w4);
+    qx.ui.core.Widget.flushGlobalQueues();
+  }; 
+  
+  function test7() 
+  {
+    bl.addAt(w8, 1);
+    qx.ui.core.Widget.flushGlobalQueues();
+  };
+
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    bl = new qx.ui.layout.BoxLayout("horizontal");
+    bl.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    bl.setBackgroundColor(new qx.renderer.color.Color("white"));
+    bl.setWidth(250);
+    bl.setHeight(250);
+    bl.setTop(48);
+    bl.setLeft(20);
+
+    w1 = new qx.ui.layout.CanvasLayout;
+    w1.setBackgroundColor(new qx.renderer.color.Color("orange"));
+    w1.setMinWidth(20);
+    w1.setMinHeight(20);
+    w1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+
+    w2 = new qx.ui.layout.CanvasLayout;
+    w2.setBackgroundColor(new qx.renderer.color.Color("blue"));
+    w2.setMinWidth(20);
+    w2.setMinHeight(20);
+    w2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+
+    w3 = new qx.ui.layout.CanvasLayout;
+    w3.setBackgroundColor(new qx.renderer.color.Color("green"));
+    w3.setMinWidth(20);
+    w3.setMinHeight(20);
+    w3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    
+    w4 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    w5 = new qx.ui.layout.CanvasLayout;
+    w5.setBackgroundColor(new qx.renderer.color.Color("yellow"));
+    w5.setMinWidth(20);
+    w5.setMinHeight(20);
+    w5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+
+    w6 = new qx.ui.layout.CanvasLayout;
+    w6.setBackgroundColor(new qx.renderer.color.Color("red"));
+    w6.setMinWidth(20);
+    w6.setMinHeight(20);
+    w6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    
+    w7 = new qx.ui.basic.Image("icon/64/cdrom.png");
+    
+    w8 = new qx.ui.layout.CanvasLayout;
+    w8.setBackgroundColor(new qx.renderer.color.Color("fuchsia"));
+    w8.setMinWidth(20);
+    w8.setMinHeight(20);
+    w8.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+
+    bl.add(w1, w2, w3, w4, w5, w6, w7);
+    d.add(bl);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/BoxLayout_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/BoxLayout_2.html
new file mode 100644 (file)
index 0000000..ead48a1
--- /dev/null
@@ -0,0 +1,324 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="testCommand" class="manualFrame">
+    <style type="text/css">
+      #testCommand{
+        position: absolute;
+        right: 335px;
+        bottom: 48px;
+        width: 350px;
+      }
+    
+      .setform select{
+        font-size: 11px;
+        min-width: 75px;
+      }
+
+      .setform button{
+        font-size: 11px;
+      }
+    </style>
+
+    <table class="setform"><tbody>
+
+    <tr>
+      <td>
+        <label for="sel_orientation">Orientation:</label>
+      </td>
+      <td>
+        <select id="sel_orientation">
+          <option selected="selected">horizontal</option>
+          <option>vertical</option>
+        </select>
+      </td>
+    </tr>
+
+    <tr>
+      <td>Width/Height:</td>
+      <td>
+        <select id="sel_width">
+          <option>100</option>
+          <option selected="selected">250</option>
+          <option>500</option>
+          <option>auto</option>
+        </select>
+        <select id="sel_height">
+          <option>100</option>
+          <option selected="selected">250</option>
+          <option>500</option>          
+          <option>auto</option>
+        </select>
+      </td>
+    </tr>
+
+    <tr>
+      <td>Spacing/Padding:</td>
+      <td>
+        <select id="sel_spacing">
+          <option selected="selected">0</option>
+          <option>2</option>
+          <option>4</option>
+          <option>8</option>
+        </select>
+        <select id="sel_padding">
+          <option selected="selected">0</option>
+          <option>2</option>
+          <option>4</option>
+          <option>8</option>
+        </select>
+      </td>
+    </tr>
+
+    <tr>
+      <td>
+        <label for="sel_order">Order/Stretching:</label>
+      </td>
+      <td>
+        <select id="sel_order">
+          <option selected="selected">default</option>
+          <option>reverse</option>
+        </select>
+        <select id="sel_stretch">
+          <option selected="selected">enabled</option>
+          <option>disabled</option>
+        </select>
+      </td>
+    </tr>
+
+    <tr>
+      <td>Horizontal/Vertical Align:</td>
+      <td>
+        <select id="sel_horalg">
+          <option selected="selected">left</option>
+          <option>center</option>
+          <option>right</option>
+        </select>
+        <select id="sel_veralg">
+          <option selected="selected">top</option>
+          <option>middle</option>
+          <option>bottom</option>
+        </select>
+      </td>
+    </tr>
+
+    <tr>
+      <td>&#160;</td>
+      <td>
+        <button id="btn_save">Apply</button>
+      </td>
+    </tr>
+
+    </tbody></table>  
+    
+    <p><b>Tests</b></p>
+    <ul>
+      <li><a href="javascript:test1()">Test 1: Remove blue widget</a></li>
+      <li><a href="javascript:test2()">Test 2: Add blue widget</a></li>
+      <li><a href="javascript:test3()">Test 3: Add blue widget at position 2</a></li>
+      <li><a href="javascript:test4()">Test 4: Add blue widget at position 4</a></li>
+      <li><a href="javascript:test5()">Test 5: Add green widget at before the cdrom</a></li>
+      <li><a href="javascript:test6()">Test 6: Add green widget at after the color palette</a></li>
+      <li><a href="javascript:test7()">Test 7: Add new widget to layout</a></li>
+    </ul>
+  </div>
+
+  <div id="demoDescription">
+    <p>Now something more complex. Try to configure multiple things and then press &lt;apply&gt;.</p>
+    <p>Added initial support for children align override: Try to click on the color palette.</p>
+  </div>
+
+  <script type="text/javascript">
+
+  var bl, w1, w2, w3, w4, w5, w6, w7, w8;
+
+  var _b = document.getElementById("btn_save");
+  var _t = document.getElementById("sel_orientation");
+  var _w = document.getElementById("sel_width");
+  var _h = document.getElementById("sel_height");
+  var _s = document.getElementById("sel_spacing");
+  var _p = document.getElementById("sel_padding");
+  var _o = document.getElementById("sel_order");
+  var _r = document.getElementById("sel_stretch");
+  var _l = document.getElementById("sel_horalg");
+  var _v = document.getElementById("sel_veralg");
+
+  function save()
+  {
+    var vt = _t.options[_t.selectedIndex].firstChild.nodeValue;
+    var vw = _w.options[_w.selectedIndex].firstChild.nodeValue;
+    var vh = _h.options[_h.selectedIndex].firstChild.nodeValue;
+    var vs = _s.options[_s.selectedIndex].firstChild.nodeValue;
+    var vp = _p.options[_p.selectedIndex].firstChild.nodeValue;
+    var vo = _o.options[_o.selectedIndex].firstChild.nodeValue;
+    var vr = _r.options[_r.selectedIndex].firstChild.nodeValue;
+    var vl = _l.options[_l.selectedIndex].firstChild.nodeValue;
+    var vv = _v.options[_v.selectedIndex].firstChild.nodeValue;
+    
+    bl.setOrientation(vt);
+    bl.setWidth(vw == "auto" ? vw : parseInt(vw));
+    bl.setHeight(vh == "auto" ? vh : parseInt(vh));
+    bl.setSpacing(parseInt(vs));
+    bl.setPadding(parseInt(vp));
+    bl.setReverseChildrenOrder(vo == "reverse");
+    bl.setStretchChildrenOrthogonalAxis(vr == "enabled");
+    bl.setHorizontalChildrenAlign(vl);
+    bl.setVerticalChildrenAlign(vv);
+  };
+
+  if (_b.attachEvent)
+    _b.attachEvent("onclick", save);
+  else if (_b.addEventListener)
+    _b.addEventListener("click", save, false);
+    
+    
+  function test1() 
+  {
+    bl.remove(w2);
+    qx.ui.core.Widget.flushGlobalQueues();
+  };  
+  
+  function test2() 
+  {
+    bl.add(w2);
+    qx.ui.core.Widget.flushGlobalQueues();
+  };
+  
+  function test3() 
+  {
+    bl.addAt(w2, 2);
+    qx.ui.core.Widget.flushGlobalQueues();
+  };  
+
+  function test4() 
+  {
+    bl.addAt(w2, 4);
+    qx.ui.core.Widget.flushGlobalQueues();
+  };  
+
+  function test5() 
+  {
+    bl.addBefore(w3, w7);
+    qx.ui.core.Widget.flushGlobalQueues();
+  };  
+
+  function test6() 
+  {
+    bl.addAfter(w3, w4);
+    qx.ui.core.Widget.flushGlobalQueues();
+  };  
+  
+  function test7() 
+  {
+    bl.addAt(w8, 3);
+    qx.ui.core.Widget.flushGlobalQueues();
+  };
+
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    bl = new qx.ui.layout.BoxLayout("horizontal");
+    bl.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    bl.setBackgroundColor(new qx.renderer.color.Color("white"));
+    bl.setWidth(250);
+    bl.setHeight(250);
+    bl.setTop(48);
+    bl.setLeft(20);
+
+    w1 = new qx.ui.layout.CanvasLayout;
+    w1.setBackgroundColor(new qx.renderer.color.Color("orange"));
+    w1.setMinWidth(20);
+    w1.setMinHeight(20);
+    w1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1.setAllowStretchX(false);
+    w1.setAllowStretchY(false);
+    w1.setVerticalAlign("middle");
+    w1.setHorizontalAlign("center");
+
+    w2 = new qx.ui.layout.CanvasLayout;
+    w2.setBackgroundColor(new qx.renderer.color.Color("blue"));
+    w2.setMinWidth(20);
+    w2.setMinHeight(20);
+    w2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2.setAllowStretchX(false);
+    w2.setHorizontalAlign("center");
+
+    w3 = new qx.ui.layout.CanvasLayout;
+    w3.setBackgroundColor(new qx.renderer.color.Color("green"));
+    w3.setMinWidth(20);
+    w3.setMinHeight(20);
+    w3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3.setAllowStretchY(false);
+    w3.setVerticalAlign("middle");
+    
+    w4 = new qx.ui.basic.Image("icon/32/colors.png");
+    w4.setVerticalAlign("bottom");
+    w4.setHorizontalAlign("right");
+
+    w5 = new qx.ui.layout.CanvasLayout;
+    w5.setBackgroundColor(new qx.renderer.color.Color("yellow"));
+    w5.setMinWidth(20);
+    w5.setMinHeight(20);
+    w5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+
+    w6 = new qx.ui.layout.CanvasLayout;
+    w6.setBackgroundColor(new qx.renderer.color.Color("red"));
+    w6.setMinWidth(20);
+    w6.setMinHeight(20);
+    w6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    
+    w7 = new qx.ui.basic.Image("icon/64/cdrom.png");
+    w7.setVerticalAlign("middle");
+    w7.setHorizontalAlign("center");
+    
+    w8 = new qx.ui.layout.CanvasLayout;
+    w8.setBackgroundColor(new qx.renderer.color.Color("fuchsia"));
+    w8.setMinWidth(20);
+    w8.setMinHeight(20);
+    w8.setBorder(qx.renderer.border.BorderPresets.getInstance().black);    
+    
+    
+    w4.addEventListener("click", function()
+    {
+      var h, v;
+      
+      switch(this.getHorizontalAlign())
+      {
+        case "center":
+          h = "right";
+          v = "bottom";
+          break;
+          
+        case "right":
+          h = "left";
+          v = "top";
+          break;
+
+        default:
+          h = "center";
+          v = "middle";
+      };
+      
+      this.setHorizontalAlign(h);
+      this.setVerticalAlign(v);     
+    });
+    
+    
+
+    bl.add(w1, w2, w3, w4, w5, w6, w7);
+    d.add(bl);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_1.html
new file mode 100644 (file)
index 0000000..baa29c3
--- /dev/null
@@ -0,0 +1,73 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function() {
+      new qx.client.Builder().build(qx.ui.core.ClientDocument.getInstance(), document.getElementById('widgets'));
+    });
+
+    // test delegate object
+    var d = {
+      hello : 'world',
+      click : function(e) {
+        alert(e + '\n\nclick received at delegate object\n\n' + this.hello);
+      }
+    }
+
+    // test delegate function
+    var f = function(e) {
+        alert(e + '\n\nclick received at delegate function\n\n');
+    }
+  </script>
+  <div id="demoDescription">
+    <p>qx.client.Builder demo.</p>
+    <p>Build your web apps using qooxdooml.</p>
+    <p>Textarea example</p>
+  </div>
+  <textarea id='widgets' style='display:none'>
+    <qx.client.builder.Container>
+      <qx.ui.form.Button id='btn' label='Click Me!!!' location='20,50'>
+
+        <!-- function body event listener -->
+        <qx.client.builder.EventListener type='click' args='event'>
+          btn.setLabel(btn.getLabel() + ".");
+          alert(event + "\n\nClicked on: " + this.getLabel());
+        </qx.client.builder.EventListener>
+
+        <!--
+    global object.method delegation
+    when the button is clicked, d.click(event) will be called
+    -->
+        <qx.client.builder.EventListener type='click' delegate='d.click'/>
+
+        <!--
+    global function delegation
+    when the button is clicked, f(event) will be called
+    -->
+        <qx.client.builder.EventListener type='click' delegate='f'/>
+
+      </qx.ui.form.Button>
+      <qx.ui.basic.Atom id='atom1' label='Test No #1' icon='icon/16/penguin.png' border='qx.renderer.border.BorderPresets.getInstance().black' location='20,90'/>
+
+      <qx.ui.form.Button label='Test No #2' icon='icon/16/penguin.png' location='20,120'>
+          <qx.client.builder.EventListener type='click'>
+            atom1.setLabel(atom1.getLabel() + ".");
+          </qx.client.builder.EventListener>
+      </qx.ui.form.Button>
+      <qx.ui.basic.Atom label='Test No #3' icon='icon/16/penguin.png' location='20,160'/>
+      <qx.ui.basic.Atom label='a' icon='icon/16/penguin.png' location='20,200'/>
+      <qx.ui.basic.Atom label='b' icon='icon/16/penguin.png' location='20,240'/>
+    </qx.client.builder.Container>
+  </textarea>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_2.html
new file mode 100644 (file)
index 0000000..720e02f
--- /dev/null
@@ -0,0 +1,25 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function() {
+      new qx.client.Builder().buildFromUrl(qx.ui.core.ClientDocument.getInstance(), 'Builder_2.xml');
+    });
+  </script>
+  <div id="demoDescription">
+    <p>qx.client.Builder demo.</p>
+    <p>Build your web apps using qooxdooml.</p>
+    <p>XmlHttp Example</p>
+  </div>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_2.xml b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_2.xml
new file mode 100644 (file)
index 0000000..84b1adf
--- /dev/null
@@ -0,0 +1,51 @@
+<qx.client.builder.Container>
+  <qx.ui.form.Button id='btn' label='Click Me!!!' location='20,50'>
+      
+    <!-- function body event listener -->
+    <qx.client.builder.EventListener type='click' args='event'>
+      btn.setLabel(btn.getLabel() + ".");
+      alert(event + "\n\nClicked on: " + this.getLabel()); 
+    </qx.client.builder.EventListener>
+
+    <!-- 
+      global object.method delegation
+      when the button is clicked, d.click(event) will be called
+      -->
+    <qx.client.builder.EventListener type='click' delegate='d.click'/>
+    
+    <!-- 
+      global function delegation
+      when the button is clicked, f(event) will be called
+      -->
+    <qx.client.builder.EventListener type='click' delegate='f'/>
+    
+  </qx.ui.form.Button>
+  <qx.ui.basic.Atom id='atom1' label='Test No #1' icon='icon/16/penguin.png' border='qx.renderer.border.Border.presets.black' location='20,90'/>
+
+  <qx.ui.form.Button label='Test No #2' icon='icon/16/penguin.png' location='20,120'>
+      <qx.client.builder.EventListener type='click'>
+        atom1.setLabel(atom1.getLabel() + ".");
+      </qx.client.builder.EventListener>
+  </qx.ui.form.Button>
+  
+  <qx.ui.basic.Atom label='Test No #3' icon='icon/16/penguin.png' location='20,160'/>
+
+   <qx.ui.basic.Atom label='a' icon='icon/16/penguin.png' location='20,200'/>
+  <qx.ui.basic.Atom label='b' icon='icon/16/penguin.png' location='20,240'/>
+  
+  
+  <qx.client.builder.Script>        
+    // test delegate function
+    var f = function(e) {
+        alert(e + '\n\nclick received at delegate function\n\n');
+    }
+  
+    // test delegate object
+    var d = {
+      hello : 'world',
+      click : function(e) {
+        alert(e + '\n\nclick received at delegate object\n\n' + this.hello);
+      }
+    }   
+  </qx.client.builder.Script>
+</qx.client.builder.Container>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_3.html
new file mode 100644 (file)
index 0000000..e3d4b0b
--- /dev/null
@@ -0,0 +1,26 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function() {
+      new qx.client.Builder().buildFromUrl(qx.ui.core.ClientDocument.getInstance(), 'Builder_3.xml');
+    });
+  </script>
+  <div id="demoDescription">
+    <p>qx.client.Builder demo.</p>
+    <p>Build your web apps using qooxdooml.</p>
+    <p>Property Editor Example</p>
+  </div>
+</body>
+</html>
+
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_3.xml b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_3.xml
new file mode 100644 (file)
index 0000000..b5fd8b3
--- /dev/null
@@ -0,0 +1,33 @@
+<qx.client.builder.Container>
+   <qx.ui.menu.Menu id='m2'>
+    <qx.ui.menu.MenuButton label='New Window'/>
+    <qx.ui.menu.MenuButton label='Overlapping'/>
+    <qx.ui.menu.MenuButton label='Split Vertical'/>
+    <qx.ui.menu.MenuButton label='Split Horizontal'/>
+    <qx.ui.menu.MenuButton label='Next Window'/>
+    <qx.ui.menu.MenuButton label='Previous Window'/>
+  </qx.ui.menu.Menu>
+
+  <qx.ui.menu.Menu id='m1'>
+    <qx.ui.menu.MenuButton label='View/Lists'/>
+    <qx.ui.menu.MenuButton label='Syntax Highlighting'/>
+    <qx.ui.menu.MenuSeparator/>
+    <qx.ui.menu.MenuButton label='Window Font'/>
+    <qx.ui.menu.MenuButton label='Printer Font' menu='m2'/>
+  </qx.ui.menu.Menu>
+    
+  <qx.ui.form.Button id='btn' label='Reference Property' location='20,48'>
+    <qx.client.builder.EventListener type='click' args='e'>
+      var el = this.getElement();
+      m1.setLeft(qx.dom.DomLocation.getPageBoxLeft(el));
+      m1.setTop(qx.dom.DomLocation.getPageBoxBottom(el));      ;
+      m1.show();
+      e.setPropagationStopped(true);
+    </qx.client.builder.EventListener>
+    <qx.client.builder.EventListener type='mousedown' args='e'>
+      e.setPropagationStopped(true);
+    </qx.client.builder.EventListener>  
+  </qx.ui.form.Button>
+  
+  <qx.ui.basic.Atom label='Comma Delimited Property &amp; Eval Property ' location='140,48' backgroundColor='#BDD2EF' dimension='220,220' border='qx.renderer.border.Border.presets.outset'/>
+</qx.client.builder.Container>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Builder_4.html
new file mode 100644 (file)
index 0000000..70dffb5
--- /dev/null
@@ -0,0 +1,42 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function() {
+      new qx.client.Builder().build(qx.ui.core.ClientDocument.getInstance(), document.getElementById('widgets'));
+    });
+  </script>
+  <div id="demoDescription">
+    <p>qx.client.Builder demo.</p>
+    <p>2 Format Example</p>
+  </div>
+  <textarea id='widgets' style='display:none'>
+    <qx.client.builder.Container>
+      <qx.ui.basic.Atom id="linfo" label="Current Value" icon="icon/16/forward.png" border="qx.renderer.border.BorderPresets.getInstance().black" padding="2,4" backgroundColor="white" top="48" left="20"/>
+      <qx.manager.selection.RadioManager id='_rm1' name="mygroup">
+        <qx.client.builder.EventListener type='changeSelected' args='e'>
+          linfo.setLabel("Current Value: \"" + e.getData().getLabel() + "\" (" + e.getData().getValue() + ")");
+        </qx.client.builder.EventListener>
+      </qx.manager.selection.RadioManager>
+      <qx.ui.form.RadioButton qxtype="radioButton" label="Option #1" value="rb1" location="20,80"  manager="_rm1"/>
+      <qx.ui.form.RadioButton label="Option #2" value="rb2" location="20,110" manager="_rm1" checked="true"/>
+      <div qxtype="qx.ui.form.RadioButton" label="Top RadioButton" value="rb3" location="20,160" manager="_rm1" iconPosition="top"/>
+      <qx.ui.form.RadioButton label="Bottom RadioButton" value="rb4" location="160,160" manager="_rm1" iconPosition="bottom"/>
+      <qx.ui.form.RadioButton label="Left RadioButton" value="rb5" location="20,220" manager="_rm1" iconPosition="left"/>
+      <qx.ui.form.RadioButton label="Right RadioButton" value="rb6" location="160,220" manager="_rm1" iconPosition="right"/>
+      <qx.ui.form.RadioButton value="rb7" location="20,280" manager="_rm1"/>
+    </qx.client.builder.Container>
+  </textarea>
+</body>
+</html>
+
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Button_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Button_1.html
new file mode 100644 (file)
index 0000000..b6c0368
--- /dev/null
@@ -0,0 +1,44 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing the new flash support for QxButtons (inherited from qx.ui.basic.Atom).</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+      var a;
+
+      for (var i=1; i<11; i++)
+      {
+        var b = new qx.ui.form.Button("Flash Button #" + i, "icon/16/reload.png", 16, 16, "./image/flash/color/file" + i + ".swf");
+        
+        b.setTop(48 + ((i-1)*30));
+        b.setLeft(20);
+        
+        d.add(b);
+      }; 
+      
+      var b = new qx.ui.form.Button("Big Rotated", "icon/48/reload.png", 48, 48, "./image/flash/color/file3.swf");
+      
+      b.setTop(48);
+      b.setLeft(200);
+      b.setIconPosition("top");
+      
+      d.add(b);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CSS_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CSS_1.html
new file mode 100644 (file)
index 0000000..c490168
--- /dev/null
@@ -0,0 +1,110 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+       
+       <style type="text/css">
+       
+       .box {
+               position: absolute;
+               width: 100px;
+               height: 100px;
+               left: 30px;
+               top: 40px;
+               color: white;
+               padding: 5px;
+       }
+       
+       #box1 {
+               background-color: red;
+       }
+       
+       #box2 {
+               background-color: blue;
+               top: 200px;
+               left: 100px;
+       }
+       
+       </style>
+       
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Some tests of qx.dom.StyleSheet</p>
+  </div>
+
+
+       <div id="box1" class="box">
+               Box 1   
+       </div>
+       
+       <div id="box2" class="box">
+               Box 2
+       </div>
+       
+  <div style="display:none" id="control">
+    <p>
+                       <h3>Box 1</h3>
+      <a href="javascript://" onclick="qx.dom.StyleSheet.addRule(sheet, '#box1', 'background-color:green !important');">qx.dom.StyleSheet.addRule(style, '#box1', 'background-color:green !important')</a> <br>
+      <a href="javascript://" onclick="qx.dom.StyleSheet.removeRule(sheet, '#box1');">qx.dom.StyleSheet.removeRule(sheet, '#box1')</a> <br>
+    </p>
+                       <h3>Box 1</h3>
+      <a href="javascript://" onclick="qx.dom.StyleSheet.addRule(sheet, '#box2', 'background-color:yellow !important');">qx.dom.StyleSheet.addRule(style, '#box2', 'background-color:yellow !important')</a> <br>
+      <a href="javascript://" onclick="qx.dom.StyleSheet.removeRule(sheet, '#box2');">qx.dom.StyleSheet.removeRule(sheet, '#box2')</a> <br>
+               <p>  
+                       <h3>All</h3>
+                       <a href="javascript://" onclick="qx.dom.StyleSheet.removeAllRules(sheet)">qx.dom.StyleSheet.removeAllRules(sheet)</a> <br>
+    </p>
+               <p>  
+                       <h3>Import</h3>
+                       add Import <br>
+                       <a href="javascript://" onclick="qx.dom.StyleSheet.addImport(sheet, 'bigFont.css')">qx.dom.StyleSheet.addImport(sheet, 'bigFont.css')</a> <br>
+                       <a href="javascript://" onclick="qx.dom.StyleSheet.addImport(sheet, 'boldFont.css')">qx.dom.StyleSheet.addImport(sheet, 'boldFont.css')</a> <br>
+                       remove Import<br>
+                       <a href="javascript://" onclick="qx.dom.StyleSheet.removeImport(sheet, 'bigFont.css')">qx.dom.StyleSheet.removeImport(sheet, 'bigFont.css')</a> <br>
+                       <a href="javascript://" onclick="qx.dom.StyleSheet.removeImport(sheet, 'boldFont.css')">qx.dom.StyleSheet.removeImport(sheet, 'boldFont.css')</a> <br>          
+       remove all Imports<br>
+                       <a href="javascript://" onclick="qx.dom.StyleSheet.removeAllImports(sheet)">qx.dom.StyleSheet.removeAllImports(sheet)</a> <br>                  
+               </p>
+               
+  </div>
+
+  <script type="text/javascript">
+
+       var sheet = qx.dom.StyleSheet.createElement();
+
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+               var ct1 = new qx.ui.basic.Label(document.getElementById("control").innerHTML);
+
+    with(ct1)
+    {
+      setWidth(450);
+      setRight(335);
+
+      setHeight(null);
+      setTop(48);
+      setBottom(48);
+
+      setOverflow("auto");
+
+      setBackgroundColor(new qx.renderer.color.Color("white"));
+      setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
+      setPadding(10);
+    };
+
+    d.add(ct1);
+  });
+       
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CanvasLayout_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CanvasLayout_1.html
new file mode 100644 (file)
index 0000000..99bea22
--- /dev/null
@@ -0,0 +1,616 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var w1 = new qx.ui.layout.CanvasLayout;
+
+    w1.setWidth(100);
+    w1.setHeight(100);
+    w1.setLeft(100);
+    w1.setTop(100);
+    w1.setBackgroundColor(new qx.renderer.color.Color("red"));
+
+    d.add(w1);
+
+
+
+
+
+
+    var w2 = new qx.ui.layout.CanvasLayout;
+
+    w2.setWidth("25%");
+    w2.setHeight(100);
+    w2.setLeft(200);
+    w2.setTop(200);
+    w2.setBackgroundColor(new qx.renderer.color.Color("blue"));
+
+    d.add(w2);
+
+
+
+    var w3 = new qx.ui.layout.CanvasLayout;
+
+    w3.setRight(400);
+    w3.setHeight(100);
+    w3.setLeft(300);
+    w3.setTop(300);
+    w3.setBackgroundColor(new qx.renderer.color.Color("green"));
+
+    d.add(w3);
+
+
+
+
+
+    var w4 = new qx.ui.layout.CanvasLayout;
+
+    w4.setLeft(10);
+    w4.setRight(10);
+    w4.setTop(10);
+    w4.setBottom(10);
+    w4.setBackgroundColor(new qx.renderer.color.Color("white"));
+
+    w2.add(w4);
+
+
+
+
+
+    var w5 = new qx.ui.layout.CanvasLayout;
+
+    w5.setLeft(0);
+    w5.setTop(0);
+    w5.setWidth("50%");
+    w5.setHeight(50);
+    w5.setBackgroundColor(new qx.renderer.color.Color("white"));
+
+    w3.add(w5);
+
+
+
+
+    var w6 = new qx.ui.layout.CanvasLayout;
+
+    w6.setBottom(50);
+    w6.setLeft(350);
+    w6.setHeight("30%");
+    w6.setWidth(50);
+    w6.setBackgroundColor(new qx.renderer.color.Color("yellow"));
+    w6.setZIndex(100);
+    w6.setMinHeight(100);
+    w6.setMaxHeight(150);
+
+    d.add(w6);
+
+
+
+    var w7 = new qx.ui.layout.CanvasLayout;
+
+    w7.setTop(150);
+    w7.setLeft(20);
+    w7.setWidth(100);
+    w7.setHeight(100);
+    w7.setBackgroundColor(new qx.renderer.color.Color("aqua"));
+    w7.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+
+    d.add(w7);
+
+
+
+    var w8 = new qx.ui.layout.CanvasLayout;
+
+    w8.setTop(280);
+    w8.setLeft(20);
+    w8.setWidth("auto");
+    w8.setHeight("auto");
+    w8.setBackgroundColor(new qx.renderer.color.Color("fuchsia"));
+    w8.setBorder(new qx.renderer.border.Border(5, "solid", new qx.renderer.color.Color("black")));
+    w8.setPaddingTop(10);
+
+    //w8.getBorder().setLeftWidth(20);
+    //w8.getBorder().setLeftWidth(0);
+
+    // d.add(w8);
+
+
+    var w9 = new qx.ui.layout.CanvasLayout;
+
+    w9.setTop(0);
+    w9.getLeft(0);
+    w9.setWidth(40);
+    w9.setHeight(20);
+    w9.setBackgroundColor(new qx.renderer.color.Color("white"));
+
+    w8.add(w9);
+
+
+
+    var w10 = new qx.ui.layout.CanvasLayout;
+
+    w10.setTop(0);
+    w10.getLeft(0);
+    w10.setWidth(10);
+    w10.setHeight(50);
+    w10.setBackgroundColor(new qx.renderer.color.Color("red"));
+
+    w8.add(w10);
+
+    d.add(w8);
+
+
+
+
+
+
+    var w11 = new qx.ui.layout.CanvasLayout;
+
+    w11.setTop(200);
+    w11.setLeft(40);
+    w11.setWidth("auto");
+    w11.setHeight("auto");
+    w11.setBackgroundColor(new qx.renderer.color.Color("green"));
+    w11.setDisplay(false);
+    w11.setBorder(qx.renderer.border.BorderPresets.getInstance().white);
+    w11.setPaddingLeft(20);
+
+    d.add(w11);
+
+    w8.addEventListener("click", function(e) {
+      w11.toggleDisplay();
+    });
+
+
+    /*
+    w11.addEventListener("show", function(e) {
+      this.debug("Show W11");
+    });
+
+    w11.addEventListener("hide", function(e) {
+      this.debug("Hide W11");
+    });
+    */
+
+
+    var w12 = new qx.ui.basic.Image("icon/64/energy.png");
+    w11.add(w12);
+
+
+
+
+    var w12 = new qx.ui.basic.Image("icon/48/clock.png");
+
+    w12.setTop(350);
+    w12.setLeft(20);
+
+    d.add(w12);
+
+
+    var w13 = new qx.ui.basic.Image("icon/48/alarm.png");
+
+    w13.setTop(350);
+    w13.setLeft(80);
+
+    d.add(w13);
+
+
+
+
+
+    var w14 = new qx.ui.layout.CanvasLayout;
+
+    w14.setTop(400);
+    w14.setLeft(20);
+    w14.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    //w14.setWidth("auto");
+    w14.setMinWidth("auto");
+    w14.setWidth("30%");
+
+    w14.setHeight("auto");
+    w14.setPadding(10);
+    w14.setBackgroundColor(new qx.renderer.color.Color("white"));
+
+    d.add(w14);
+
+
+    var w15 = new qx.ui.basic.Image("icon/48/clock.png");
+
+    w15.setTop(0);
+    w15.setLeft(20);
+
+    w14.add(w15);
+
+
+    var w16 = new qx.ui.basic.Image("icon/128/date.png");
+
+    w16.setTop(20);
+    w16.setLeft(80);
+
+    w14.add(w16);
+
+
+    var w16a = new qx.ui.layout.CanvasLayout;
+
+    w16a.setMarginTop(160);
+    w16a.setBottom(20);
+    w16a.setRight(20);
+
+    w16a.setBackgroundColor(new qx.renderer.color.Color("yellow"));
+
+    w16a.setWidth(30);
+    w16a.setHeight(30);
+
+    w14.add(w16a);
+
+
+
+    w16a.addEventListener("click", function(e)
+    {
+      var v16Margin = w16a.getMarginTop() + 20;
+      if (v16Margin > 240) {
+        v16Margin = 100;
+      };
+
+      w16a.setMarginTop(v16Margin);
+    });
+
+
+
+
+    var w17_b1 = new qx.renderer.border.Border(5, "solid", new qx.renderer.color.Color("black"));
+    var w17_b2 = new qx.renderer.border.Border(10, "solid", new qx.renderer.color.Color("black"));
+
+    var w17_p1 = 10;
+    var w17_p2 = 5;
+
+    var w17 = new qx.ui.layout.CanvasLayout;
+
+    w17.setBackgroundColor(new qx.renderer.color.Color("orange"));
+    w17.setWidth(50);
+    w17.setHeight(50);
+    w17.setTop(50);
+    w17.setLeft(200);
+
+    w17.setBorder(w17_b1);
+    w17.setPadding(w17_p1);
+
+    d.add(w17);
+
+
+    w17.addEventListener("click", function(e)
+    {
+      if (w17.getBorder() == w17_b1)
+      {
+        w17.setBorder(w17_b2);
+        w17.setPadding(w17_p2);
+      }
+      else
+      {
+        w17.setBorder(w17_b1);
+        w17.setPadding(w17_p1);
+      };
+    });
+
+
+    var w18 = new qx.ui.layout.CanvasLayout;
+
+    w18.setBackgroundColor(new qx.renderer.color.Color("white"));
+    w18.setWidth("100%");
+    w18.setHeight("100%");
+    w18.setLeft(0);
+    w18.setTop(0);
+
+    w17.add(w18);
+
+
+
+
+
+
+
+
+
+    var w19_b1 = new qx.renderer.border.Border(5, "solid", new qx.renderer.color.Color("black"));
+
+    var w19_p1 = 10;
+    var w19_p2 = 5;
+
+    var w19 = new qx.ui.layout.CanvasLayout;
+
+    w19.setBackgroundColor(new qx.renderer.color.Color("orange"));
+    w19.setWidth(50);
+    w19.setHeight(50);
+    w19.setTop(50);
+    w19.setLeft(270);
+
+    w19.setBorder(w19_b1);
+    w19.setPadding(w19_p1);
+
+    d.add(w19);
+
+
+    var _t22 = true;
+    w19.addEventListener("click", function(e)
+    {
+      if (_t22)
+      {
+        w19_b1.setWidth(10);
+        w19.setPadding(w19_p2);
+      }
+      else
+      {
+        w19_b1.setWidth(5);
+        w19.setPadding(w19_p1);
+      };
+
+      _t22 = !_t22;
+    });
+
+
+    var w20 = new qx.ui.layout.CanvasLayout;
+
+    w20.setBackgroundColor(new qx.renderer.color.Color("white"));
+    w20.setWidth("100%");
+    w20.setHeight("100%");
+    w20.setLeft(0);
+    w20.setTop(0);
+
+    w19.add(w20);
+
+
+
+
+
+    var w21_b1 = new qx.renderer.border.Border(5, "solid", new qx.renderer.color.Color("black"));
+    var w21_b2 = new qx.renderer.border.Border(5, "solid", new qx.renderer.color.Color("blue"));
+
+    var w21 = new qx.ui.layout.CanvasLayout;
+
+    w21.setBackgroundColor(new qx.renderer.color.Color("orange"));
+    w21.setWidth(50);
+    w21.setHeight(50);
+    w21.setTop(50);
+    w21.setLeft(340);
+
+    w21.setBorder(w21_b1);
+    w21.setPadding(10);
+
+    d.add(w21);
+
+
+    w21.addEventListener("click", function(e)
+    {
+      if (w21.getBorder() == w21_b1)
+      {
+        w21.setBorder(w21_b2);
+      }
+      else
+      {
+        w21.setBorder(w21_b1);
+      };
+    });
+
+
+    var w22 = new qx.ui.layout.CanvasLayout;
+
+    w22.setBackgroundColor(new qx.renderer.color.Color("white"));
+    w22.setWidth("100%");
+    w22.setHeight("100%");
+    w22.setLeft(0);
+    w22.setTop(0);
+
+    w21.add(w22);
+
+
+
+
+
+
+
+    var w23_b1 = new qx.renderer.border.BorderObject(5, "solid", new qx.renderer.color.Color("black"));
+
+    var w23 = new qx.ui.layout.CanvasLayout;
+
+    w23.setBackgroundColor(new qx.renderer.color.Color("orange"));
+    w23.setWidth(50);
+    w23.setHeight(50);
+    w23.setTop(50);
+    w23.setLeft(410);
+
+    w23.setBorder(w23_b1);
+    w23.setPadding(10);
+
+    d.add(w23);
+
+    w23.addEventListener("mouseover", function(e)
+    {
+      w23_b1.setColor(new qx.renderer.color.Color("blue"));
+      w23_b1.setStyle("dotted");
+    });
+
+    w23.addEventListener("mouseout", function(e)
+    {
+      w23_b1.setColor(new qx.renderer.color.Color("black"));
+      w23_b1.setStyle("solid");
+    });
+
+    var w24 = new qx.ui.layout.CanvasLayout;
+
+    w24.setBackgroundColor(new qx.renderer.color.Color("white"));
+    w24.setWidth("100%");
+    w24.setHeight("100%");
+    w24.setLeft(0);
+    w24.setTop(0);
+    w24.setAnonymous(true);
+
+    w23.add(w24);
+
+
+
+
+
+
+    var w25_b1 = qx.renderer.border.BorderPresets.getInstance().outset;
+    var w25_b2 = qx.renderer.border.BorderPresets.getInstance().inset;
+
+    var w25_p1 = 10;
+    var w25_p2 = 5;
+
+    var w25 = new qx.ui.layout.CanvasLayout;
+
+    w25.setBackgroundColor(new qx.renderer.color.ColorObject("ThreeDFace"));
+    w25.setWidth(50);
+    w25.setHeight(50);
+    w25.setTop(50);
+    w25.setLeft(480);
+
+    w25.setBorder(w25_b1);
+    w25.setPadding(w25_p1);
+
+    d.add(w25);
+
+
+    w25.addEventListener("click", function(e)
+    {
+      if (w25.getBorder() == w25_b1)
+      {
+        w25.setBorder(w25_b2);
+        w25.setPadding(w25_p2);
+      }
+      else
+      {
+        w25.setBorder(w25_b1);
+        w25.setPadding(w25_p1);
+      };
+    });
+
+
+    var w26 = new qx.ui.layout.CanvasLayout;
+
+    w26.setBackgroundColor(new qx.renderer.color.Color("white"));
+    w26.setWidth("100%");
+    w26.setHeight("100%");
+    w26.setLeft(0);
+    w26.setTop(0);
+
+    w25.add(w26);
+
+
+
+
+
+
+
+    var w27 = new qx.ui.layout.CanvasLayout;
+
+    w27.setBackgroundColor(new qx.renderer.color.ColorObject("ThreeDFace"));
+    w27.setWidth(50);
+    w27.setHeight(50);
+    w27.setTop(50);
+    w27.setLeft(550);
+
+    w27.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    w27.setPadding(10, 10, 10, 10);
+
+    d.add(w27);
+
+
+    w27.addEventListener("click", function(e)
+    {
+      if (w27.getBorder() == qx.renderer.border.BorderPresets.getInstance().outset)
+      {
+        w27.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+        w27.setPadding(12, 8, 8, 12);
+      }
+      else
+      {
+        w27.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+        w27.setPadding(10, 10, 10, 10);
+      };
+    });
+
+
+    var w28 = new qx.ui.layout.CanvasLayout;
+
+    w28.setBackgroundColor(new qx.renderer.color.Color("white"));
+    w28.setWidth("100%");
+    w28.setHeight("100%");
+    w28.setLeft(0);
+    w28.setTop(0);
+
+    w27.add(w28);
+
+
+
+
+
+
+
+    var w29_b1 = qx.renderer.border.BorderPresets.getInstance().outset;
+    var w29_b2 = qx.renderer.border.BorderPresets.getInstance().inset;
+
+    var w29_p1 = 10;
+    var w29_p2 = 5;
+
+    var w29 = new qx.ui.layout.CanvasLayout;
+
+    w29.setBackgroundColor(new qx.renderer.color.ColorObject("ThreeDFace"));
+    w29.setWidth(50);
+    w29.setHeight(50);
+    w29.setTop(50);
+    w29.setLeft(620);
+
+    w29.setBorder(w29_b1);
+    w29.setPadding(w29_p1);
+
+    d.add(w29);
+
+
+    w29.addEventListener("click", function(e)
+    {
+      if (w29.getBorder() == w29_b1)
+      {
+        w29.setBorder(w29_b2);
+        w29.setPadding(w29_p2);
+      }
+      else
+      {
+        w29.setBorder(w29_b1);
+        w29.setPadding(w29_p1);
+      };
+    });
+
+
+    var w30 = new qx.ui.layout.CanvasLayout;
+
+    w30.setBackgroundColor(new qx.renderer.color.Color("white"));
+    w30.setLeft(0);
+    w30.setRight(0);
+    w30.setTop(0);
+    w30.setBottom(0);
+
+    w29.add(w30);
+
+
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CanvasLayout_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CanvasLayout_3.html
new file mode 100644 (file)
index 0000000..0ddf46f
--- /dev/null
@@ -0,0 +1,52 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>This test is using multiple qx.ui.basic.Terminator</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+    var w, s;
+
+
+
+    for (var i=1; i<=20; i++)
+    {
+      s = new Date().valueOf();
+
+      for (var j=1; j<=20; j++)
+      {
+        var w = new qx.ui.basic.Terminator;
+
+        w.setWidth(12);
+        w.setHeight(12);
+        w.setLeft(20+(12*i));
+        w.setTop(48+(12*j));
+        w.setBackgroundColor(new qx.renderer.color.Color(Math.round(20+(i*j)/2)));
+
+        d.add(w);
+      };
+
+      // this.debug("Col: " + ((new Date).valueOf()-s) + "ms");
+    };
+
+
+
+
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CanvasLayout_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CanvasLayout_4.html
new file mode 100644 (file)
index 0000000..b516d2b
--- /dev/null
@@ -0,0 +1,50 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>This test is using multiple div-Elements</p>
+  <p>Created with "createElement" and added via "appendChild" to the document.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+    var w;
+    var v;
+
+    for (var i=1; i<=20; i++)
+    {
+      for (var j=1; j<=20; j++)
+      {
+        var w = document.createElement("div");
+
+        w.className = "qx_ui_core_Widget_QxWidgetCore";
+        w.id = "Auto" + i + "|" + j;
+
+        w.style.width = "12px";
+        w.style.height = "12px";
+      w.style.position = "absolute";
+        w.style.left = (20+(12*i)) + "px";
+        w.style.top = (48+(12*j)) + "px";
+
+        v = Math.round(20+(i*j)/2);
+        w.style.backgroundColor = "rgb(" + v + "," + v + "," + v + ")";
+
+        document.body.appendChild(w);
+      };
+    };
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CanvasLayout_5.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CanvasLayout_5.html
new file mode 100644 (file)
index 0000000..6c2e021
--- /dev/null
@@ -0,0 +1,45 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>This test is using multiple div-Elements</p>
+  <p>Added to the document using the "innerHTML" property.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+    var w;
+    var v;
+    var h = [];
+
+    for (var i=1; i<=20; i++)
+    {
+      for (var j=1; j<=20; j++)
+      {
+        h.push("<div style='width:12px;height:12px;position:absolute;");
+        h.push("left:" + (20+(12*i)) + "px;");
+        h.push("top:" + (48+(12*j)) + "px;");
+
+        v = Math.round(20+(i*j)/2);
+        h.push("background-color:" + "rgb(" + v + "," + v + "," + v + ")");
+        h.push("' class='qx_ui_core_Widget_QxWidgetCore' id='Auto" + i + "|" + j + "'></div>");
+      };
+    };
+
+    document.body.innerHTML += h.join("");
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Clipping_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Clipping_1.html
new file mode 100644 (file)
index 0000000..4b37d81
--- /dev/null
@@ -0,0 +1,76 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for clipping implementation</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var t1 = new qx.ui.basic.Terminator;
+
+    t1.setBackgroundColor("red");
+    t1.setLocation(20, 48);
+    t1.setDimension(100, 100);
+    t1.setBorder(2, "solid", "black");
+    t1.setClipLocation(0, 0);
+    t1.setClipDimension(50, 50);
+
+    d.add(t1);
+
+
+
+    var t2 = new qx.ui.basic.Terminator;
+
+    t2.setBackgroundColor("yellow");
+    t2.setLocation(200, 48);
+    t2.setDimension(100, 100);
+    t2.setBorder(2, "solid", "black");
+    t2.setClipLocation(25, 25);
+    t2.setClipDimension(50, 50);
+
+    d.add(t2);
+
+
+
+    var t3 = new qx.ui.basic.Terminator;
+
+    t3.setBackgroundColor("blue");
+    t3.setLocation(20, 248);
+    t3.setDimension(100, 100);
+    t3.setBorder(2, "solid", "black");
+    t3.setClipLocation(50, 50);
+    t3.setClipDimension(50, 50);
+
+    d.add(t3);
+
+
+
+
+    var t4 = new qx.ui.basic.Terminator;
+
+    t4.setBackgroundColor("orange");
+    t4.setLocation(200, 248);
+    t4.setDimension(100, 100);
+    t4.setBorder(2, "solid", "black");
+    t4.setClip(25, 25, null, null);
+
+    d.add(t4);
+
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Clone_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Clone_1.html
new file mode 100644 (file)
index 0000000..4afdc39
--- /dev/null
@@ -0,0 +1,91 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test widget cloning.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+  
+    var c1 = new qx.ui.layout.CanvasLayout;
+
+    with(c1)
+    {
+      setWidth(200);
+
+      setTop(48);
+      setLeft(20);
+
+      setHeight(100);
+      setBackgroundColor("orange");
+    };
+    
+    d.add(c1);    
+    
+
+    var c2 = c1.clone();
+    
+    with(c2)
+    {
+      setLeft(30);
+      setTop(58);
+
+    setBackgroundColor("green");
+    };
+    d.add(c2);
+    
+    var c3 = c2.clone(false, ["top","left","width","height"]);
+    
+    with(c3)
+    {
+    setLeft(40);
+    setTop(68);
+      
+    setBackgroundColor("blue");
+    };
+    d.add(c3);
+    
+    
+    
+    
+
+    var a1 = new qx.ui.basic.Atom("First Atom", "icon/48/clock.png");
+    
+    with(a1)
+    {
+      setTop(200);
+      setLeft(20);
+      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+      
+      setPadding(5);
+    };
+    
+    d.add(a1);
+    
+    
+    
+    var a2 = a1.clone(true);
+    
+    with(a2)
+    {
+      setLeft(200);      
+    };
+    
+    
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Clone_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Clone_2.html
new file mode 100644 (file)
index 0000000..4ef3ada
--- /dev/null
@@ -0,0 +1,108 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testfile for check cloning on QxFieldSets.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var fs = new qx.ui.groupbox.GroupBox("My first Fieldset");
+      
+      with(fs) 
+      {
+        setWidth("40%");
+        setBottom(48);
+        setTop(48);
+        setLeft(20);
+        
+        setMaxWidth(350);
+        setMinWidth(250);
+      };
+      
+      
+      
+      var a1 = new qx.ui.basic.Atom("TextField 1");
+      with(a1)
+      {
+        setTop(13);
+        setLeft(0);
+        setWidth("35%");
+      };
+          
+      var i1 = new qx.ui.form.TextField();
+      with(i1)
+      {
+        setTop(10);
+        setRight(0);
+        setWidth("60%");
+      };
+      fs.add(a1, i1);
+      
+      
+      
+      var a2 = new qx.ui.basic.Atom("TextField 2", "icon/16/email.png");
+      with(a2)
+      {
+        setTop(43);
+        setLeft(0);
+        setWidth("35%");
+      };
+      fs.add(a2);
+      
+      var i2 = new qx.ui.form.TextField();
+      with(i2)
+      {
+        setTop(40);
+        setRight(0);
+        setWidth("60%");
+      };
+      fs.add(i2);      
+      
+      
+      
+      var a3 = new qx.ui.basic.Atom("TextField 3");
+      with(a3)
+      {
+        setTop(73);
+        setLeft(0);
+        setWidth("35%");
+      };
+      fs.add(a3);
+      
+      var i3 = new qx.ui.form.TextField();
+      with(i3)
+      {
+        setTop(70);
+        setRight(0);
+        setWidth("60%");
+      };
+      fs.add(i3);      
+      
+      
+      d.add(fs);
+      
+      
+      fsclone = fs.clone(true);     
+      with(fsclone)
+      {
+        setLeft(400);
+        setLegend("My cloned Fieldset");
+      };
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ColorTheme_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ColorTheme_1.html
new file mode 100644 (file)
index 0000000..badd4da
--- /dev/null
@@ -0,0 +1,235 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Color Theme Test</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var w1 = new qx.ui.basic.Terminator;
+
+    w1.setWidth(100);
+    w1.setHeight(100);
+    w1.setBackgroundColor(new qx.renderer.color.Color("yellow"));
+    w1.setTop(48);
+    w1.setLeft(20);
+
+    d.add(w1);
+
+
+
+    var w2 = new qx.ui.basic.Terminator;
+
+    w2.setWidth(100);
+    w2.setHeight(100);
+    w2.setBackgroundColor(new qx.renderer.color.ColorObject("activecaption"));
+    w2.setTop(48);
+    w2.setLeft(150);
+
+    d.add(w2);
+
+
+
+
+    var w3 = new qx.ui.basic.Terminator;
+
+    w3.setWidth(100);
+    w3.setHeight(100);
+    w3.setBackgroundColor("red");
+    w3.setTop(200);
+    w3.setLeft(20);
+
+    d.add(w3);
+
+
+
+    var w4 = new qx.ui.basic.Terminator;
+
+    w4.setWidth(100);
+    w4.setHeight(100);
+    w4.setBackgroundColor("red");
+    w4.setTop(200);
+    w4.setLeft(150);
+
+    d.add(w4);
+
+
+
+
+    var w5 = new qx.ui.basic.Label("Hello World");
+
+    w5.setTop(320);
+    w5.setLeft(20);
+    w5.setColor("red");
+
+    d.add(w5);
+
+
+
+
+
+    var w6 = new qx.ui.basic.Terminator;
+
+    w6.setWidth(100);
+    w6.setHeight(100);
+    w6.setBackgroundColor("activecaption");
+    w6.setTop(400);
+    w6.setLeft(20);
+
+    d.add(w6);
+
+
+
+    var w7 = new qx.ui.basic.Terminator;
+
+    w7.setWidth(100);
+    w7.setHeight(100);
+    w7.setBackgroundColor("activeCaption");
+    w7.setTop(400);
+    w7.setLeft(150);
+
+    d.add(w7);
+    
+    
+    
+    
+    var w8 = new qx.ui.basic.Label("Hello World");
+    
+    w8.setTop(520);
+    w8.setLeft(20);
+    w8.setColor("ActiveCaption");
+
+    d.add(w8);
+
+
+
+
+
+
+
+    var w9 = new qx.ui.basic.Atom("Super qooxdoo", "icon/48/bell.png");
+
+    w9.setTop(520);
+    w9.setLeft(200);
+    w9.setBorder(new qx.renderer.border.BorderObject(2, "solid", "activeCaption"));
+    w9.setBackgroundColor("threedlightshadow");
+
+    d.add(w9);
+
+
+
+
+
+    var w10 = new qx.ui.basic.Atom("Super qooxdoo", "icon/48/bell.png");
+
+    w10.setTop(520);
+    w10.setLeft(400);
+    w10.setBorder(new qx.renderer.border.BorderObject(2, "solid", new qx.renderer.color.ColorObject("activeCaption")));
+    w10.setBackgroundColor("threedlightshadow");
+
+    d.add(w10);
+
+
+
+
+
+
+    var w11 = new qx.ui.basic.Label("Hello World");
+
+    w11.setTop(600);
+    w11.setLeft(20);
+    w11.setBackgroundColor([232,102,255]);
+    w11.setColor(20,30,60);
+    w11.setBorder(1, "solid", "red");
+
+    d.add(w11);
+
+
+
+    var w12 = new qx.ui.basic.Label("Hello World");
+
+    w12.setTop(600);
+    w12.setLeft(120);
+    w12.setBackgroundColor([232,102,255]);
+    w12.setColor(20,30,60);
+    w12.setBorder([1, "solid", "red"]);
+
+    d.add(w12);
+
+
+
+    var w13 = new qx.ui.basic.Label("Hello World");
+
+    w13.setLocation(220, 600);
+    w13.setBackgroundColor([232,102,255]);
+    w13.setColor(20,30,60);
+    w13.setBorder([1, "solid", "activeCaption"]);
+
+    d.add(w13);
+
+
+
+
+    var myBoundedBorder1 = new qx.renderer.border.Border(1, "solid", [200,10,20]);
+
+
+    var w14 = new qx.ui.basic.Terminator;
+
+    w14.setWidth(100);
+    w14.setHeight(100);
+    w14.setLeft(600);
+    w14.setTop(100);
+    w14.setBorder(myBoundedBorder1);
+
+    d.add(w14);
+
+    // should not work with qx.renderer.border.Border - use qx.renderer.border.BorderObject instead
+    w14.addEventListener("click", function(e) {
+      myBoundedBorder1.setTopColor([100,200,200]);
+      myBoundedBorder1.setTopWidth(10);
+    });
+
+
+
+    var myBoundedBorder2 = new qx.renderer.border.BorderObject(1, "solid", [200,10,20]);
+
+
+    var w15 = new qx.ui.basic.Terminator;
+
+    w15.setWidth(100);
+    w15.setHeight(100);
+    w15.setLeft(600);
+    w15.setTop(210);
+    w15.setBorder(myBoundedBorder2);
+
+    d.add(w15);
+
+    w15.addEventListener("click", function(e) {
+      myBoundedBorder2.setTopColor([100,200,200]);
+      myBoundedBorder2.setTopWidth(10);
+    });
+
+
+
+
+    // Color Themes
+    qx.manager.object.ColorManager.getInstance().createThemeList(d, 350, 128);
+
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ColorTheme_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ColorTheme_2.html
new file mode 100644 (file)
index 0000000..8b5bf55
--- /dev/null
@@ -0,0 +1,77 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Color Theme Test</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+
+    // Create Default OS Color Table
+    var w;
+    var c=0;
+    for (var i in qx.renderer.color.Color.themedNames)
+    {
+      w = new qx.ui.basic.Label(i);
+
+      w.setWidth(120);
+      w.setTop(48+(c*18));
+      w.setLeft(20);
+      w.setPadding(1, 2);
+      w.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      w.setStyleProperty("backgroundColor", i);
+
+      d.add(w);
+
+      c++;
+    };
+
+
+
+    // Create Default OS Color Table
+    var w;
+    var c=0;
+    for (var i in qx.renderer.color.Color.themedNames)
+    {
+      w = new qx.ui.basic.Label(i);
+
+      w.setWidth(120);
+      w.setTop(48+(c*18));
+      w.setLeft(150);
+      w.setPadding(1, 2);
+      w.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      w.setBackgroundColor(new qx.renderer.color.ColorObject(i));
+
+      d.add(w);
+
+      c++;
+    };
+
+
+
+
+
+
+
+
+    // Color Themes
+    qx.manager.object.ColorManager.getInstance().createThemeList(d, 400, 128);
+  });
+  </script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ColorTheme_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ColorTheme_3.html
new file mode 100644 (file)
index 0000000..c119de0
--- /dev/null
@@ -0,0 +1,176 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Color Theme Test for qx.renderer.border.BorderObject's</p>
+    <ul>
+      <li>First Col: qooxdoo solution for borders</li>
+      <li>Second Col: html solution without color value</li>
+      <li>Third Col: html solution with color value: white</li>
+    </ul>
+    <p>The default color Theme is: <em>OS Default</em></p>
+  </div>
+  
+  <div style="position: absolute; left: 120px; top: 48px; width: 50px">    
+    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px outset">&#160;</div>
+    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px inset">&#160;</div>
+    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px ridge">&#160;</div>
+    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px groove">&#160;</div>
+    
+    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 1px outset">&#160;</div>
+    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 1px inset">&#160;</div>
+  </div>
+
+  <div style="position: absolute; left: 180px; top: 48px; width: 50px">    
+    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px outset white">&#160;</div>
+    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px inset white">&#160;</div>
+    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px ridge white">&#160;</div>
+    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px groove white">&#160;</div>
+        
+    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 1px outset white">&#160;</div>
+    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 1px inset white">&#160;</div>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+
+
+    var w1 = new qx.ui.basic.Terminator;
+    w1.setDimension(50, 50);
+    w1.setLocation(20, 48);
+    w1.setBorder(new qx.renderer.border.BorderObject(2, "outset"));
+    d.add(w1);
+
+    var w2 = new qx.ui.basic.Terminator;
+    w2.setDimension(50, 50);
+    w2.setLocation(20, 108);
+    w2.setBorder(new qx.renderer.border.BorderObject(2, "inset"));
+    d.add(w2);
+
+    var w3 = new qx.ui.basic.Terminator;
+    w3.setDimension(50, 50);
+    w3.setLocation(20, 168);
+    w3.setBorder(new qx.renderer.border.BorderObject(2, "ridge"));
+    d.add(w3);
+
+    var w4 = new qx.ui.basic.Terminator;
+    w4.setDimension(50, 50);
+    w4.setLocation(20, 228);
+    w4.setBorder(new qx.renderer.border.BorderObject(2, "groove"));
+    d.add(w4);
+
+    var w5 = new qx.ui.basic.Terminator;
+    w5.setDimension(50, 50);
+    w5.setLocation(20, 288);
+    w5.setBorder(new qx.renderer.border.BorderObject(1, "outset"));
+    d.add(w5);
+
+    var w6 = new qx.ui.basic.Terminator;
+    w6.setDimension(50, 50);
+    w6.setLocation(20, 348);
+    w6.setBorder(new qx.renderer.border.BorderObject(1, "inset"));
+    d.add(w6);
+    
+    
+    
+    var border1 = new qx.renderer.border.BorderObject(2, "outset");
+    var border2 = new qx.renderer.border.BorderObject(1, "outset");
+    
+    var w7 = new qx.ui.layout.CanvasLayout;
+    w7.setDimension(50, 50);
+    w7.setLocation(20, 408);
+    w7.setBorder(border1);
+    d.add(w7);
+    
+    var w7c = new qx.ui.basic.Terminator;
+    w7c.setDimension("100%", "100%");
+    w7c.setBackgroundColor(new qx.renderer.color.Color("red"));
+    w7.add(w7c);    
+
+
+
+    var w8 = new qx.ui.layout.CanvasLayout;
+    w8.setDimension(50, 50);
+    w8.setLocation(20, 468);
+    w8.setBorder(border2);
+    d.add(w8);
+    
+    var w8c = new qx.ui.basic.Terminator;
+    w8c.setDimension("100%", "100%");
+    w8c.setBackgroundColor(new qx.renderer.color.Color("red"));
+    w8.add(w8c);  
+    
+    
+    
+    
+    w7.addEventListener("click", function(e) {
+      this.setBorder(this.getBorder() == null ? border1 : this.getBorder() == border1 ? border2 : null)
+    });
+
+    w8.addEventListener("click", function(e) {
+      this.setBorder(this.getBorder() == null ? border1 : this.getBorder() == border1 ? border2 : null)
+    });
+    
+    
+    
+    
+    
+    
+    var w9 = new qx.ui.layout.CanvasLayout;
+    
+    w9.setDimension(100, 100);
+    w9.setLocation(400, 400);
+    w9.setBorder(border1);
+    w9.setOverflow("scroll");
+    
+    d.add(w9);
+    
+    var w9c = new qx.ui.basic.Image("icon/32/colors.png");
+    
+    w9c.setTop(150);
+    w9c.setLeft(300);
+    
+    w9.add(w9c);
+    
+    
+    
+    w9.addEventListener("click", function(e) {
+      this.setOverflow(this.getOverflow() == "scroll" ? "scrollX" : this.getOverflow() == "scrollX" ? "scrollY" : this.getOverflow() == "scrollY" ? "" : "scroll");
+    });
+
+
+
+    // Color Themes
+    qx.manager.object.ColorManager.getInstance().createThemeList(d, 400, 128);
+    
+    
+    
+    
+    
+    
+    /*
+    var c1 = new qx.renderer.color.Color("gray");
+    this.debug("RGB-Transform I: " + c1.getRed() + "," + c1.getGreen() + "," + c1.getBlue());
+
+    // This could not work with the default theme "OS Default", as this does not define any rgb colors
+    var c2 = new qx.renderer.color.ColorObject("threedface");
+    this.debug("RGB-Transform II: " + c2.getRed() + "," + c2.getGreen() + "," + c2.getBlue());
+    */
+  });
+  </script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ComboBox_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ComboBox_1.html
new file mode 100644 (file)
index 0000000..c79f556
--- /dev/null
@@ -0,0 +1,102 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.form.ComboBox implementation.</p>
+    <p>Testing object creation (the list content will be filled then) on first open.</p>
+  </div>
+
+  <select style="position:absolute; left:300px; top:48px; width: 120px;">
+    <option>Item No 1</option>
+    <option>Item No 2</option>
+    <option>Item No 3</option>
+    <option>Item No 4</option>
+    <option>Item No 5</option>
+    <option>Item No 6</option>
+    <option>Item No 7</option>
+    <option>Item No 8</option>
+    <option>Item No 9</option>
+    <option disabled="true">Item No 10</option>
+    <option>Item No 11</option>
+    <option>Item No 12</option>
+    <option>Item No 13</option>
+    <option>Item No 14</option>
+    <option>Item No 15</option>
+    <option>Item No 16</option>
+    <option>Item No 17</option>
+    <option>Item No 18</option>
+    <option>Item No 19</option>
+    <option disabled="true">Item No 20</option>
+    <option>Item No 21</option>
+    <option>Item No 22</option>
+    <option>Item No 23</option>
+    <option>Item No 24</option>
+    <option>Item No 23</option>
+    <option>Item No 24</option>
+    <option>Item No 25</option>
+    <option>Item No 26</option>
+    <option>Item No 27</option>
+    <option>Item No 28</option>
+    <option>Item No 29</option>
+    <option disabled="true">Item No 30</option>
+  </select>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var c1 = new qx.ui.form.ComboBox;
+      c1.setLocation(20, 48);
+
+      c1.addEventListener("beforeInitialOpen", function(e)
+      {
+        var item;
+
+        for(var i=1; i<=30; i++)
+        {
+          item = new qx.ui.form.ListItem("Item No " + i);
+          !(i % 10) && (item.setEnabled(false));
+          c1.add(item);
+        };
+      });
+
+      // this does not work here (if there is no content)
+      c1.setSelected(c1.getList().getFirstChild());
+
+      c1.addEventListener("changeValue", function(e) {
+        this.debug("New value: " + e.getData());
+      });
+
+      c1.addEventListener("changeSelected", function(e) {
+        this.debug("New selected: " + e.getData());
+      });
+
+
+
+
+      var b1 = new qx.ui.form.CheckBox("Editable");
+
+      b1.set({ top: 50, left: 150 });
+
+      b1.addEventListener("changeChecked", function(e) {
+        c1.setEditable(e.getData());
+      });
+
+
+
+      d.add(c1, b1);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ComboBox_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ComboBox_2.html
new file mode 100644 (file)
index 0000000..f44c525
--- /dev/null
@@ -0,0 +1,116 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.form.ComboBox implementation.</p>
+    <p>Testing object creation (the list content will be filled then) on first open.</p>
+    <p>Added Color Theme Buttons</p>
+  </div>
+
+  <select style="position:absolute; left:300px; top:48px; width: 120px;">
+    <option>Item No 1</option>
+    <option>Item No 2</option>
+    <option>Item No 3</option>
+    <option>Item No 4</option>
+    <option>Item No 5</option>
+    <option>Item No 6</option>
+    <option>Item No 7</option>
+    <option>Item No 8</option>
+    <option>Item No 9</option>
+    <option disabled="true">Item No 10</option>
+    <option>Item No 11</option>
+    <option>Item No 12</option>
+    <option>Item No 13</option>
+    <option>Item No 14</option>
+    <option>Item No 15</option>
+    <option>Item No 16</option>
+    <option>Item No 17</option>
+    <option>Item No 18</option>
+    <option>Item No 19</option>
+    <option disabled="true">Item No 20</option>
+    <option>Item No 21</option>
+    <option>Item No 22</option>
+    <option>Item No 23</option>
+    <option>Item No 24</option>
+    <option>Item No 23</option>
+    <option>Item No 24</option>
+    <option>Item No 25</option>
+    <option>Item No 26</option>
+    <option>Item No 27</option>
+    <option>Item No 28</option>
+    <option>Item No 29</option>
+    <option disabled="true">Item No 30</option>
+  </select>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var c1 = new qx.ui.form.ComboBox;
+      c1.setLocation(20, 48);
+
+      c1.addEventListener("beforeInitialOpen", function(e)
+      {
+        var item;
+
+        for(var i=1; i<=30; i++)
+        {
+          item = new qx.ui.form.ListItem("Item No " + i);
+          !(i % 10) && (item.setEnabled(false));
+          c1.add(item);
+        };
+      });
+
+      // this does not work here (if there is no content)
+      c1.setSelected(c1.getList().getFirstChild());
+
+      c1.addEventListener("changeValue", function(e) {
+        this.debug("New value: " + e.getData());
+      });
+
+      c1.addEventListener("changeSelected", function(e) {
+        this.debug("New selected: " + e.getData());
+      });
+
+
+
+
+      var b1 = new qx.ui.form.CheckBox("Editable");
+
+      b1.set({ top: 50, left: 150 });
+
+      b1.addEventListener("changeChecked", function(e) {
+        c1.setEditable(e.getData());
+      });
+
+
+
+      d.add(c1, b1);
+
+
+
+
+
+
+
+
+    // Color Themes
+    qx.manager.object.ColorManager.getInstance().createThemeList(d, 20, 248);
+
+
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ComboBox_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ComboBox_3.html
new file mode 100644 (file)
index 0000000..7fe9f3f
--- /dev/null
@@ -0,0 +1,123 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.form.ComboBox implementation.</p>
+    <p>Testing object creation (the list content will be filled then) on first open.</p>
+    <p>Added Color Theme Buttons</p>
+    <p>Now with image inside the popup.</p>
+  </div>
+
+  <select style="position:absolute; left:300px; top:48px; width: 120px;">
+    <option>Item No 1</option>
+    <option>Item No 2</option>
+    <option>Item No 3</option>
+    <option>Item No 4</option>
+    <option>Item No 5</option>
+    <option>Item No 6</option>
+    <option>Item No 7</option>
+    <option>Item No 8</option>
+    <option>Item No 9</option>
+    <option disabled="true">Item No 10</option>
+    <option>Item No 11</option>
+    <option>Item No 12</option>
+    <option>Item No 13</option>
+    <option>Item No 14</option>
+    <option>Item No 15</option>
+    <option>Item No 16</option>
+    <option>Item No 17</option>
+    <option>Item No 18</option>
+    <option>Item No 19</option>
+    <option disabled="true">Item No 20</option>
+    <option>Item No 21</option>
+    <option>Item No 22</option>
+    <option>Item No 23</option>
+    <option>Item No 24</option>
+    <option>Item No 23</option>
+    <option>Item No 24</option>
+    <option>Item No 25</option>
+    <option>Item No 26</option>
+    <option>Item No 27</option>
+    <option>Item No 28</option>
+    <option>Item No 29</option>
+    <option disabled="true">Item No 30</option>
+  </select>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var c1 = new qx.ui.form.ComboBox;
+      c1.setLocation(20, 48);
+
+      // this example seems to be buggy with auto-height
+      // c1.getPopup().setHeight(150);
+
+      c1.addEventListener("beforeInitialOpen", function(e)
+      {
+        var item;
+        var list = [ "archive", "binary", "card", "document", "html", "image", "manual", "multimedia", "pdf" ];
+
+        for(var i=0; i<list.length; i++)
+        {
+          item = new qx.ui.form.ListItem(list[i], "icon/48/mime-" + list[i] + ".png");
+          item.setShow("icon");
+
+          c1.add(item);
+        };
+    
+    c1.setSelected(c1.getList().getFirstChild());
+      });
+
+      // this does not work here (if there is no content)
+      c1.setSelected(c1.getList().getFirstChild());
+
+      c1.addEventListener("changeValue", function(e) {
+        this.debug("New value: " + e.getData());
+      });
+
+      c1.addEventListener("changeSelected", function(e) {
+        this.debug("New selected: " + e.getData());
+      });
+
+
+
+
+      var b1 = new qx.ui.form.CheckBox("Editable");
+
+      b1.set({ top: 50, left: 150 });
+
+      b1.addEventListener("changeChecked", function(e) {
+        c1.setEditable(e.getData());
+      });
+
+
+
+      d.add(c1, b1);
+
+
+
+
+
+
+
+    // Color Themes
+    qx.manager.object.ColorManager.getInstance().createThemeList(d, 20, 248);
+
+
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ComboBox_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ComboBox_4.html
new file mode 100644 (file)
index 0000000..3d698e9
--- /dev/null
@@ -0,0 +1,41 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.form.ComboBox behaviour when inside a container with scroll bars and the popup list goes off the screen.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function() {
+    var box = new qx.ui.layout.BoxLayout('vertical');
+    box.set({left: 5, right: 300, top: 30,  bottom: 20, overflow: 'scroll', backgroundColor: '#FFE'});
+    for (var row = 0; row < 8; row++) {
+      var rowBox = new qx.ui.layout.BoxLayout;
+      rowBox.set({ marginBottom: 100, width: 'auto', height: 'auto' });
+      for (var col = 0; col < 8; col++) {
+        var cb = new qx.ui.form.ComboBox;
+        for (var i = 0; i < 15; i++) {
+          cb.add(new qx.ui.form.ListItem('Item '+i));
+        }
+        cb.setEditable(true);
+        cb.setValue('Row '+row+', col '+col);
+        cb.setMarginRight(100);
+        rowBox.add(cb);
+      }
+      box.add(rowBox);
+    }
+    box.addToDocument();
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Compile_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Compile_1.html
new file mode 100644 (file)
index 0000000..e02a221
--- /dev/null
@@ -0,0 +1,415 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+  </div>
+
+  <textarea id="resultjs" style="position:absolute;width:600px;height:400px;background:white;top:120px;left:20px;border:1px solid black;overflow:auto"></textarea>
+  <textarea id="resulthtml" style="position:absolute;width:600px;height:100px;background:white;top:530px;left:20px;border:1px solid black;overflow:auto"></textarea>
+
+  <script type="text/javascript">
+    jsout = document.getElementById("resultjs");
+    htmlout = document.getElementById("resulthtml");
+
+    var _emptyTags = {
+       "IMG":   true,
+       "BR":    true,
+       "INPUT": true,
+       "META":  true,
+       "LINK":  true,
+       "PARAM": true,
+       "HR":    true
+    };
+
+    HTMLElement.prototype.__defineGetter__("outerHTML", function () {
+       var attrs = this.attributes;
+       var str = "<" + this.tagName.toLowerCase();
+       for (var i = 0; i < attrs.length; i++)
+          str += " " + attrs[i].name + "=\"" + attrs[i].value + "\"";
+
+       if (_emptyTags[this.tagName])
+          return str + ">";
+
+       return str + ">" + this.innerHTML + "</" + this.tagName.toLowerCase() + ">";
+    });
+
+
+
+
+
+
+
+
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      a1 = new qx.ui.form.Button("Hello World", "icon/32/penguin.png");
+      a1.setLocation(20, 50);
+      qx.ui.core.ClientDocument.getInstance().add(a1);
+
+      a2 = new qx.ui.form.Button("Hello World", "icon/32/appearance.png");
+      a2.setLocation(220, 50);
+      qx.ui.core.ClientDocument.getInstance().add(a2);
+    });
+
+    qx.core.Init.getInstance().defineFinalize(function()
+    {
+        var str = "qx.core.Init.getInstance().defineMain(function()\n{\n";
+
+
+
+
+        qx.core.Init.getInstance().debug("Updating HTML");
+
+        htmlout.value = a1.getElement().outerHTML + a2.getElement().outerHTML;
+
+
+
+
+
+
+
+
+        qx.core.Init.getInstance().debug("Serialize...");
+        var vBase1 = serializeMain(a1);
+        var vBase2 = serializeMain(a2);
+
+        qx.core.Init.getInstance().debug("Base1: " + vBase1);
+        qx.core.Init.getInstance().debug("Base2: " + vBase2);
+        qx.core.Init.getInstance().debug("Tree Size: " + vObjectCache.length);
+        qx.core.Init.getInstance().debug("Generating Code...");
+
+        for (var i=0, n, v, c, cv, l=vObjectCache.length; i<l; i++)
+        {
+          v = vObjectCache[i].value;
+          c = vObjectCache[i].compiled;
+
+          switch(typeof v)
+          {
+            case "object":
+              if (v == null)
+              {
+                str += "$" + i + " = null;\n";
+              }
+              else if (v instanceof qx.core.Object)
+              {
+                // qx.core.Init.getInstance().debug("QXOBJECT: " + i + "=" + vObjectCache[i].value);
+
+                if (typeof c == "string" && c.indexOf("$OBJECTMAPPER-") == 0)
+                {
+                  cv = c.replace("$OBJECTMAPPER-", "");
+
+                  switch(cv)
+                  {
+                    case "qx.ui.core.ClientDocument":
+                      str += "$" + i + " = qx.core.Init.getComponent().getClientWindow()().getClientDocument();\n";
+                      break;
+
+                    case "qx.manager.object.ImageManager":
+                      str += "$" + i + " = new qx.manager.object.ImageManager;\n";
+                      break;
+                  };
+                }
+                else
+                {
+                  str += "var f = new Function();\n";
+                  str += "f.prototype = " + v.classname + ".prototype;\n";
+                  str += "$" + i + " = new f;\n";
+                  str += "QxObjectDataBase[" + v._hashCode + "] = $" + i + ";\n";
+
+                  // constructor call
+                  // str += v.classname + ".call($" + i + ");\n";
+
+                  if (v instanceof qx.ui.core.Widget && v.isCreated())
+                  {
+                    // map elements
+                    str += "$" + i + "._valueElement = cssQuery(\"[qxhashcode=" + v._hashCode + "]\")[0];\n";
+                    str += "$" + i + "._element = $" + i + "._valueElement;\n";
+                    str += "$" + i + "._style = $" + i + "._valueElement.style;\n";
+
+                    // map qx_Widget attribute of node to widget
+                    str += "$" + i + "._valueElement.qx_Widget = $" + i + ";\n";
+
+                    if (v instanceof qx.ui.basic.Image)
+                    {
+                      // assign _image
+                      str += "$" + i + "._image = $" + i + "._valueElement.getElementsByTagName(\"img\")[0];\n";
+                    };
+                  }
+                  else if (v instanceof qx.io.image.Preloader)
+                  {
+                    str += "$" + i + "._element = new Image;\n";
+                    str += "$" + i + "._element.src = \"" + v.getSource() + "\";\n";
+                  };
+                };
+              }
+              else if (v instanceof Array)
+              {
+                // qx.core.Init.getInstance().debug("JSARRAY: " + i + "=" + vObjectCache[i].value);
+
+                str += "$" + i + " = [];\n";
+              }
+              else
+              {
+                // qx.core.Init.getInstance().debug("JSHASHTABLE: " + i + "=" + vObjectCache[i].value);
+
+                str += "$" + i + " = {};\n";
+              };
+
+              break;
+
+            case "string":
+              str += "$" + i + " = \"" + vObjectCache[i].value + "\";\n";
+              break;
+
+            case "number":
+            case "boolean":
+              str += "$" + i + " = " + v + ";\n";
+              break;
+
+            case "undefined":
+              // qx.core.Init.getInstance().debug("Undefined value found: " + v);
+              str += "$" + i + " = null;\n";
+              break;
+
+            case "function":
+              if (typeof c == "string" && c.indexOf("$FUNCTIONMAPPER-") == 0)
+              {
+                cv = c.replace("$FUNCTIONMAPPER-", "").split("|");
+                str += "$" + i + "= QxObjectDataBase[" + cv[1] + "]." + cv[0] + ";\n";
+              };
+              break;
+
+            default:
+              qx.core.Init.getInstance().debug("Unsupported value: " + v);
+              str += "var $" + i + " = \"UNSUPPORTED VALUE\";\n";
+
+          };
+        };
+
+
+
+
+
+
+
+        for (var i=0, n, c, v, cv, l=vObjectCache.length; i<l; i++)
+        {
+          v = vObjectCache[i].value;
+          c = vObjectCache[i].compiled;
+
+          if (typeof v == "object" && v != null)
+          {
+            if (v instanceof qx.core.Object)
+            {
+              if (typeof c == "string" && c.indexOf("$OBJECTMAPPER-") == 0)
+              {
+                continue;
+              };
+
+              for (vKey in vObjectCache[i].compiled)
+              {
+                if (vObjectCache[i].compiled[vKey] != null)
+                {
+                  str += "$" + i + "." + vKey + " = $" + vObjectCache[i].compiled[vKey] + ";\n";
+                };
+              };
+            }
+            else if (v instanceof Array)
+            {
+              for (var ia=0, la=vObjectCache[i].compiled.length; ia<la; ia++)
+              {
+                str += "$" + i + "[" + ia + "] = $" + vObjectCache[i].compiled[ia] + ";\n";
+              };
+            }
+            else
+            {
+              for (vKey in vObjectCache[i].compiled)
+              {
+                if (vObjectCache[i].compiled[vKey] != null)
+                {
+                  str += "$" + i + "[\"" + vKey + "\"] = $" + vObjectCache[i].compiled[vKey] + ";\n";
+                };
+              };
+            };
+          };
+        };
+
+
+
+
+
+        str += "};";
+
+        jsout.value = str;
+
+        qx.core.Init.getInstance().debug("Done");
+      });
+
+
+
+
+      var vObjectCache = [];
+      var vLastListenerContext = null;
+
+      function serializeMain(vValue)
+      {
+        var vValue, vIter, vLength;
+
+        // Completly ignore the window and document built-in object
+        if (vValue == window || vValue == document) {
+          return null;
+        };
+
+        // Completly ignore DOM nodes
+        if (qx.util.Validation.isValid(vValue) && typeof vValue.nodeType != "undefined") {
+          return null;
+        };
+
+        for (vIter=0, vLength=vObjectCache.length; vIter<vLength; vIter++)
+        {
+          if (vObjectCache[vIter].value === vValue)
+          {
+            return vIter;
+          };
+        };
+
+        //QxDebug("Serializer", "Known: " + vObjectCache);
+        //QxDebug("Serializer", "Serialize: " + vValue + "(" + typeof vValue + ")");
+
+        var vPos = vObjectCache.length;
+
+        vObjectCache[vPos] = { value : vValue };
+        vObjectCache[vPos].compiled = serializeWrapper(vValue);
+
+        return vPos;
+      };
+
+      function serializeWrapper(vInput)
+      {
+        switch(typeof vInput)
+        {
+          case "string":
+          case "number":
+          case "boolean":
+            return serializeSimple(vInput);
+
+          case "object":
+            if (vInput == null)
+            {
+              return serializeSimple(vInput);
+            }
+            else if (vInput instanceof Array)
+            {
+              return serializeArray(vInput);
+            }
+            else
+            {
+              return serializeObject(vInput);
+            };
+
+          case "function":
+            //QxDebug("Serializer", "FUNCTION: " + vInput);
+            return null;
+        };
+
+        return null;
+      };
+
+      function serializeSimple(vSimple) {
+        return vSimple;
+      };
+
+      function serializeObject(vObject)
+      {
+        if (vObject instanceof qx.ui.core.ClientDocument) {
+          return "$OBJECTMAPPER-qx.ui.core.ClientDocument";
+        }
+        else if (vObject instanceof qx.manager.object.ImageManager) {
+          return "$OBJECTMAPPER-qx.manager.object.ImageManager";
+        };
+
+        var vKey;
+        var vOut = {};
+
+        for (vKey in vObject)
+        {
+          // ignore css reference
+          switch(vKey)
+          {
+            case "_style":
+              continue;
+
+            case "_listeners":
+              // QxDebug("Serializer", "Found Listeners: " + vKey + "::" + vObject);
+              vLastListenerContext = vObject;
+              break;
+          };
+
+          if (typeof vObject[vKey] == "function")
+          {
+            if (!(vObject instanceof qx.core.Object) && vLastListenerContext)
+            {
+              var to = new vLastListenerContext.constructor;
+              var tm = null;
+
+              for (vSubKey in to)
+              {
+                if (to[vSubKey] === vObject[vKey])
+                {
+                  tm = vSubKey;
+                  break;
+                };
+              };
+
+              if (tm)
+              {
+                qx.core.Init.getInstance().debug("Serializer", "Function Mapped: " + tm);
+                var ts = { value : vObject[vKey], compiled : "$FUNCTIONMAPPER-" + tm + "|" + vLastListenerContext._hashCode };
+                vObjectCache.push(ts);
+                vOut[vKey] = vObjectCache.length-1;
+                continue;
+              }
+              else
+              {
+                qx.core.Init.getInstance().debug("Serializer", "Could not map function: " + vKey + "[" + vLastListenerContext + "]");
+              };
+
+              continue;
+            }
+            else
+            {
+              continue;
+            };
+          };
+
+          vOut[vKey] = serializeMain(vObject[vKey]);
+        };
+
+        return vOut;
+      };
+
+      function serializeArray(vArray)
+      {
+        var vKey;
+        var vOut = [];
+
+        for (var vIter=0, vLength=vArray.length; vIter<vLength; vIter++) {
+          vOut.push(serializeMain(vArray[vIter]));
+        };
+
+        return vOut;
+      };
+
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Compile_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Compile_2.html
new file mode 100644 (file)
index 0000000..472c237
--- /dev/null
@@ -0,0 +1,46 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+  </div>
+
+  <div style="border: 2px outset ; -moz-user-select: none; -moz-user-focus: normal; cursor: default; background-color: buttonface; -moz-border-left-colors: 37 36; -moz-border-right-colors: 34 38; -moz-border-top-colors: 37 36; -moz-border-bottom-colors: 34 38; width: 102px; height: 42px; left: 20px; top: 50px;" class="QxWidgetCore qx.ui.form.Button" qxhashcode="74"><div qxhashcode="78" title="" class="QxWidgetCore qx.ui.basic.Image" style="-moz-user-select: none; left: 4px; top: 3px;"><img src="../../image/icons/crystalsvg/32/penguin.png" height="32" width="32"></div><div qxhashcode="77" class="QxWidgetCore qx.ui.basic.Label" style="-moz-user-select: none; left: 40px; top: 13px;">Hello World</div></div><div style="border: 2px outset ; -moz-user-select: none; -moz-user-focus: normal; cursor: default; background-color: buttonface; -moz-border-left-colors: 37 36; -moz-border-right-colors: 34 38; -moz-border-top-colors: 37 36; -moz-border-bottom-colors: 34 38; width: 102px; height: 42px; left: 220px; top: 50px;" class="QxWidgetCore qx.ui.form.Button" qxhashcode="86"><div qxhashcode="90" title="" class="QxWidgetCore qx.ui.basic.Image" style="-moz-user-select: none; left: 4px; top: 3px;"><img src="../../image/icons/crystalsvg/32/appearance.png" height="32" width="32"></div><div qxhashcode="89" class="QxWidgetCore qx.ui.basic.Label" style="-moz-user-select: none; left: 40px; top: 13px;">Hello World</div></div>
+  <script type="text/javascript" src="cssQuery-p.js"></script>
+  <script type="text/javascript" src="Compile_2.js"></script>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineInitialize(function()  //window.application.pre = function()
+    {
+      qx.core.Init.getInstance().debug("Pre-Execute");
+      qx.core.Init.getInstance().debug("Object DB Length: " + qx.core.Object._db.length);
+    });
+
+    qx.core.Init.getInstance().defineFinalize(function()  //window.application.post = function()
+    {
+      qx.core.Init.getInstance().debug("Post-Execute");
+
+      qx.core.Init.getInstance().debug("Children: " + $0.getChildren());
+      qx.core.Init.getInstance().debug("Element: " + $0.getElement());
+      qx.core.Init.getInstance().debug("Parent: " + $0.getParent());
+      qx.core.Init.getInstance().debug("Box Width: " + $0.getBoxWidth());
+      qx.core.Init.getInstance().debug("Has Mouse Down Event: " + $0.hasEventListeners("mousedown"));
+      qx.core.Init.getInstance().debug("Icon Preferred Width: " + $0.getChildren()[0].getPreferredBoxWidth());
+
+      qx.core.Init.getInstance().debug("Object DB Length: " + qx.core.Object._db.length);
+
+      $0.setIconPosition("top");
+      qx.ui.core.Widget.flushGlobalQueues();
+    });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Compile_2.js b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Compile_2.js
new file mode 100644 (file)
index 0000000..10c9ac6
--- /dev/null
@@ -0,0 +1,3867 @@
+qx.core.Init.getInstance().defineMain(function()
+{
+var f = new Function();
+f.prototype = qx.ui.form.Button.prototype;
+$0 = new f;
+qx.core.Object._db[74] = $0;
+$0._valueElement = cssQuery("[qxhashcode=74]")[0];
+$0._element = $0._valueElement;
+$0._style = $0._valueElement.style;
+$0._valueElement.qx_Widget = $0;
+$1 = 74;
+$2 = {}
+$3 = "QxWidgetCore qx.ui.form.Button";
+$4 = {}
+$5 = {}
+$6 = "none";
+$7 = "normal";
+$8 = "default";
+$9 = "buttonface";
+$10 = {}
+$11 = {}
+$12 = true;
+$13 = false;
+$14 = 1;
+$15 = 4;
+$16 = "auto";
+$17 = 3;
+$18 = 102;
+$19 = null;
+$20 = 42;
+$21 = "center";
+$22 = "middle";
+$23 = [];
+var f = new Function();
+f.prototype = qx.ui.basic.Image.prototype;
+$24 = new f;
+qx.core.Object._db[78] = $24;
+$24._valueElement = cssQuery("[qxhashcode=78]")[0];
+$24._element = $24._valueElement;
+$24._style = $24._valueElement.style;
+$24._valueElement.qx_Widget = $24;
+$24._image = $24._valueElement.getElementsByTagName("img")[0];
+$25 = 78;
+$26 = {}
+$27 = "QxWidgetCore qx.ui.basic.Image";
+$28 = "";
+$29 = {}
+$30 = {}
+$31 = {}
+$32 = {}
+$33 = new qx.manager.object.ImageManager;
+$34 = "icon/32/penguin.png";
+$35 = 32;
+var f = new Function();
+f.prototype = qx.io.image.Preloader.prototype;
+$36 = new f;
+qx.core.Object._db[91] = $36;
+$36._element = new Image;
+$36._element.src = "../../images/icons/crystalsvg/32/penguin.png";
+$37 = 91;
+$38 = "../../images/icons/crystalsvg/32/penguin.png";
+$39 = "qx.io.image.Preloader";
+var f = new Function();
+f.prototype = qx.manager.object.ImagePreloaderManager.prototype;
+$40 = new f;
+qx.core.Object._db[31] = $40;
+$41 = 31;
+$42 = {}
+var f = new Function();
+f.prototype = qx.io.image.Preloader.prototype;
+$43 = new f;
+qx.core.Object._db[92] = $43;
+$43._element = new Image;
+$43._element.src = "../../images/icons/crystalsvg/32/appearance.png";
+$44 = 92;
+$45 = "../../images/icons/crystalsvg/32/appearance.png";
+$46 = "enabled";
+$47 = "qx.manager.object.ImagePreloaderManager";
+$48 = 0;
+$49 = "qx.ui.basic.Image";
+$50 = "enabled,parent,element,visibility,display,anonymous,tagName,horizontalAlign,verticalAlign,allowStretchX,allowStretchY,zIndex,backgroundColor,color,border,font,opacity,cursor,backgroundImage,overflow,clipLeft,clipTop,clipWidth,clipHeight,tabIndex,hideFocus,enableElementFocus,focused,selectable,toolTip,contextMenu,capture,dropDataTypes,command,appearance,marginTop,marginRight,marginBottom,marginLeft,paddingTop,paddingRight,paddingBottom,paddingLeft,left,right,width,minWidth,maxWidth,top,bottom,height,minHeight,maxHeight,source,preloader,loaded,resizeToInner";
+$51 = "div";
+$52 = -1;
+$53 = "parent,element,visible";
+var f = new Function();
+f.prototype = qx.ui.basic.Label.prototype;
+$54 = new f;
+qx.core.Object._db[77] = $54;
+$54._valueElement = cssQuery("[qxhashcode=77]")[0];
+$54._element = $54._valueElement;
+$54._style = $54._valueElement.style;
+$54._valueElement.qx_Widget = $54;
+$55 = 77;
+$56 = {}
+$57 = "QxWidgetCore qx.ui.basic.Label";
+$58 = {}
+$59 = {}
+$60 = {}
+$61 = {}
+$62 = 54;
+$63 = 13;
+$64 = "Hello World";
+$65 = 40;
+$66 = "qx.ui.basic.Label";
+$67 = "enabled,parent,element,visibility,display,anonymous,tagName,horizontalAlign,verticalAlign,allowStretchX,allowStretchY,zIndex,backgroundColor,color,border,font,opacity,cursor,backgroundImage,overflow,clipLeft,clipTop,clipWidth,clipHeight,tabIndex,hideFocus,enableElementFocus,focused,selectable,toolTip,contextMenu,capture,dropDataTypes,command,appearance,marginTop,marginRight,marginBottom,marginLeft,paddingTop,paddingRight,paddingBottom,paddingLeft,left,right,width,minWidth,maxWidth,top,bottom,height,minHeight,maxHeight,html,fontPropertiesProfile,measureMode,mnemonic";
+$68 = "styleproperty";
+var f = new Function();
+f.prototype = qx.renderer.layout.HorizontalBoxLayoutImpl.prototype;
+$69 = new f;
+qx.core.Object._db[76] = $69;
+$70 = 76;
+$71 = "qx.renderer.layout.HorizontalBoxLayoutImpl";
+$72 = "enabled,enableFlexSupport";
+$73 = "horizontal";
+$74 = {}
+$75 = {}
+$76 = {}
+$77= qx.core.Object._db[74]._onmouseover;
+$78 = null;
+$79 = {}
+$80 = {}
+$81= qx.core.Object._db[74]._onmouseout;
+$82 = {}
+$83 = {}
+$84= qx.core.Object._db[74]._onmousedown;
+$85 = {}
+$86 = {}
+$87= qx.core.Object._db[74]._onmouseup;
+$88 = {}
+$89 = {}
+$90= qx.core.Object._db[74]._onkeydown;
+$91 = {}
+$92 = {}
+$93= qx.core.Object._db[74]._onkeyup;
+$94 = 20;
+$95 = 50;
+$96 = qx.core.Init.getInstance().getComponent();
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$97 = new f;
+qx.core.Object._db[33] = $97;
+$98 = 33;
+$99 = {}
+var f = new Function();
+f.prototype = qx.ui.form.Button.prototype;
+$100 = new f;
+qx.core.Object._db[86] = $100;
+$100._valueElement = cssQuery("[qxhashcode=86]")[0];
+$100._element = $100._valueElement;
+$100._style = $100._valueElement.style;
+$100._valueElement.qx_Widget = $100;
+$101 = 86;
+$102 = {}
+$103 = {}
+$104 = {}
+$105 = {}
+$106 = {}
+$107 = [];
+var f = new Function();
+f.prototype = qx.ui.basic.Image.prototype;
+$108 = new f;
+qx.core.Object._db[90] = $108;
+$108._valueElement = cssQuery("[qxhashcode=90]")[0];
+$108._element = $108._valueElement;
+$108._style = $108._valueElement.style;
+$108._valueElement.qx_Widget = $108;
+$108._image = $108._valueElement.getElementsByTagName("img")[0];
+$109 = 90;
+$110 = {}
+$111 = {}
+$112 = {}
+$113 = {}
+$114 = {}
+$115 = "icon/32/appearance.png";
+var f = new Function();
+f.prototype = qx.ui.basic.Label.prototype;
+$116 = new f;
+qx.core.Object._db[89] = $116;
+$116._valueElement = cssQuery("[qxhashcode=89]")[0];
+$116._element = $116._valueElement;
+$116._style = $116._valueElement.style;
+$116._valueElement.qx_Widget = $116;
+$117 = 89;
+$118 = {}
+$119 = {}
+$120 = {}
+$121 = {}
+$122 = {}
+var f = new Function();
+f.prototype = qx.renderer.layout.HorizontalBoxLayoutImpl.prototype;
+$123 = new f;
+qx.core.Object._db[88] = $123;
+$124 = 88;
+$125 = {}
+$126 = {}
+$127 = {}
+$128= qx.core.Object._db[86]._onmouseover;
+$129 = {}
+$130 = {}
+$131= qx.core.Object._db[86]._onmouseout;
+$132 = {}
+$133 = {}
+$134= qx.core.Object._db[86]._onmousedown;
+$135 = {}
+$136 = {}
+$137= qx.core.Object._db[86]._onmouseup;
+$138 = {}
+$139 = {}
+$140= qx.core.Object._db[86]._onkeydown;
+$141 = {}
+$142 = {}
+$143= qx.core.Object._db[86]._onkeyup;
+$144 = 220;
+var f = new Function();
+f.prototype = qx.renderer.border.BorderObject.prototype;
+$145 = new f;
+qx.core.Object._db[18] = $145;
+$146 = {}
+$147 = 18;
+$148 = {}
+$149 = {}
+$150 = "2px outset";
+$151 = "threedlightshadow threedhighlight";
+$152 = "threeddarkshadow threedshadow";
+$153 = {}
+$154 = 2;
+$155 = "outset";
+$156 = "qx.renderer.border.BorderObject";
+$157 = "enabled,topWidth,rightWidth,bottomWidth,leftWidth,topStyle,rightStyle,bottomStyle,leftStyle,topColor,rightColor,bottomColor,leftColor";
+$158 = [];
+$159 = 12;
+$160 = 10;
+$161 = "qx.ui.form.Button";
+$162 = "enabled,parent,element,visibility,display,anonymous,tagName,horizontalAlign,verticalAlign,allowStretchX,allowStretchY,zIndex,backgroundColor,color,border,font,opacity,cursor,backgroundImage,overflow,clipLeft,clipTop,clipWidth,clipHeight,tabIndex,hideFocus,enableElementFocus,focused,selectable,toolTip,contextMenu,capture,dropDataTypes,command,appearance,marginTop,marginRight,marginBottom,marginLeft,paddingTop,paddingRight,paddingBottom,paddingLeft,left,right,width,minWidth,maxWidth,top,bottom,height,minHeight,maxHeight,focusManager,activeWidget,orientation,spacing,horizontalChildrenAlign,verticalChildrenAlign,reverseChildrenOrder,stretchChildrenOrthogonalAxis,useAdvancedFlexAllocation,label,icon,show,iconPosition,iconWidth,iconHeight";
+$163 = "both";
+$164 = "left";
+$165 = [];
+$166 = "add";
+$167 = "remove";
+$168 = "addAt";
+$169 = "addAtBegin";
+$170 = "addAtEnd";
+$171 = "removeAt";
+$172 = "addBefore";
+$173 = "addAfter";
+$174 = "removeAll";
+$175 = "getFirstChild";
+$176 = "getLastChild";
+$177 = "getFirstActiveChild";
+$178 = "getLastActiveChild";
+$179 = "getFirstVisibleChild";
+$180 = "getLastVisibleChild";
+$181 = "qx.renderer.color.ColorObject";
+var f = new Function();
+f.prototype = qx.manager.object.ColorManager.prototype;
+$182 = new f;
+qx.core.Object._db[1] = $182;
+$183 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$184 = new f;
+qx.core.Object._db[9] = $184;
+$185 = "threeddarkshadow";
+$186 = 9;
+$187 = {}
+var f = new Function();
+f.prototype = qx.renderer.border.BorderObject.prototype;
+$188 = new f;
+qx.core.Object._db[17] = $188;
+$189 = {}
+$190 = 17;
+$191 = {}
+$192 = {}
+$193 = {}
+$194 = "inset";
+var f = new Function();
+f.prototype = qx.renderer.border.BorderObject.prototype;
+$195 = new f;
+qx.core.Object._db[19] = $195;
+$196 = {}
+$197 = 19;
+$198 = {}
+$199 = {}
+$200 = {}
+$201 = "groove";
+var f = new Function();
+f.prototype = qx.renderer.border.BorderObject.prototype;
+$202 = new f;
+qx.core.Object._db[20] = $202;
+$203 = {}
+$204 = {}
+$205 = {}
+$206 = {}
+$207 = "ridge";
+var f = new Function();
+f.prototype = qx.renderer.border.BorderObject.prototype;
+$208 = new f;
+qx.core.Object._db[21] = $208;
+$209 = {}
+$210 = 21;
+$211 = {}
+$212 = {}
+$213 = {}
+var f = new Function();
+f.prototype = qx.renderer.border.BorderObject.prototype;
+$214 = new f;
+qx.core.Object._db[22] = $214;
+$215 = {}
+$216 = 22;
+$217 = {}
+$218 = {}
+$219 = {}
+var f = new Function();
+f.prototype = qx.renderer.border.BorderObject.prototype;
+$220 = new f;
+qx.core.Object._db[23] = $220;
+$221 = {}
+$222 = 23;
+$223 = {}
+$224 = {}
+$225 = {}
+var f = new Function();
+f.prototype = qx.renderer.border.BorderObject.prototype;
+$226 = new f;
+qx.core.Object._db[24] = $226;
+$227 = {}
+$228 = 24;
+$229 = {}
+$230 = {}
+$231 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$232 = new f;
+qx.core.Object._db[10] = $232;
+$233 = "threedshadow";
+$234 = {}
+var f = new Function();
+f.prototype = qx.renderer.border.BorderObject.prototype;
+$235 = new f;
+qx.core.Object._db[25] = $235;
+$236 = {}
+$237 = 25;
+$238 = {}
+$239 = {}
+$240 = {}
+$241 = "solid";
+var f = new Function();
+f.prototype = qx.renderer.border.Border.prototype;
+$242 = new f;
+qx.core.Object._db[40] = $242;
+$243 = {}
+$244 = {}
+$245 = {}
+$246 = "qx.renderer.border.Border";
+var f = new Function();
+f.prototype = qx.renderer.border.BorderObject.prototype;
+$247 = new f;
+qx.core.Object._db[53] = $247;
+$248 = {}
+$249 = 53;
+$250 = {}
+$251 = {}
+$252 = {}
+var f = new Function();
+f.prototype = qx.renderer.border.BorderObject.prototype;
+$253 = new f;
+qx.core.Object._db[54] = $253;
+$254 = {}
+$255 = {}
+$256 = {}
+$257 = {}
+var f = new Function();
+f.prototype = qx.renderer.border.BorderObject.prototype;
+$258 = new f;
+qx.core.Object._db[55] = $258;
+$259 = {}
+$260 = 55;
+$261 = {}
+$262 = {}
+$263 = {}
+var f = new Function();
+f.prototype = qx.renderer.border.BorderObject.prototype;
+$264 = new f;
+qx.core.Object._db[56] = $264;
+$265 = {}
+$266 = 56;
+$267 = {}
+$268 = {}
+$269 = {}
+var f = new Function();
+f.prototype = qx.renderer.border.Border.prototype;
+$270 = new f;
+qx.core.Object._db[58] = $270;
+$271 = 58;
+$272 = {}
+$273 = {}
+$274 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$275 = new f;
+qx.core.Object._db[57] = $275;
+$276 = "#fec83c";
+$277 = 254;
+$278 = 200;
+$279 = 60;
+$280 = 57;
+$281 = {}
+var f = new Function();
+f.prototype = qx.renderer.border.Border.prototype;
+$282 = new f;
+qx.core.Object._db[59] = $282;
+$283 = 59;
+$284 = {}
+$285 = {}
+$286 = {}
+var f = new Function();
+f.prototype = qx.renderer.border.Border.prototype;
+$287 = new f;
+qx.core.Object._db[60] = $287;
+$288 = {}
+$289 = {}
+$290 = {}
+var f = new Function();
+f.prototype = qx.renderer.border.Border.prototype;
+$291 = new f;
+qx.core.Object._db[61] = $291;
+$292 = 61;
+$293 = {}
+$294 = {}
+$295 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$296 = new f;
+qx.core.Object._db[11] = $296;
+$297 = "threedlightshadow";
+$298 = 11;
+$299 = {}
+var f = new Function();
+f.prototype = qx.renderer.border.BorderObject.prototype;
+$300 = new f;
+qx.core.Object._db[26] = $300;
+$301 = {}
+$302 = 26;
+$303 = {}
+$304 = {}
+$305 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$306 = new f;
+qx.core.Object._db[12] = $306;
+$307 = "threedhighlight";
+$308 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$309 = new f;
+qx.core.Object._db[28] = $309;
+$310 = "infotext";
+$311 = 28;
+$312 = {}
+var f = new Function();
+f.prototype = qx.renderer.border.BorderObject.prototype;
+$313 = new f;
+qx.core.Object._db[27] = $313;
+$314 = {}
+$315 = 27;
+$316 = {}
+$317 = {}
+$318 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$319 = new f;
+qx.core.Object._db[29] = $319;
+$320 = "graytext";
+$321 = 29;
+$322 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$323 = new f;
+qx.core.Object._db[36] = $323;
+$324 = "highlight";
+$325 = 36;
+$326 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$327 = new f;
+qx.core.Object._db[37] = $327;
+$328 = "highlighttext";
+$329 = 37;
+$330 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$331 = new f;
+qx.core.Object._db[41] = $331;
+$332 = "inactivecaption";
+$333 = 41;
+$334 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$335 = new f;
+qx.core.Object._db[42] = $335;
+$336 = "inactivecaptiontext";
+$337 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$338 = new f;
+qx.core.Object._db[43] = $338;
+$339 = "activecaption";
+$340 = 43;
+$341 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$342 = new f;
+qx.core.Object._db[44] = $342;
+$343 = "captiontext";
+$344 = 44;
+$345 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$346 = new f;
+qx.core.Object._db[45] = $346;
+$347 = "#e1eeff";
+$348 = 225;
+$349 = 238;
+$350 = 255;
+$351 = 45;
+$352 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$353 = new f;
+qx.core.Object._db[46] = $353;
+$354 = "#fafbfe";
+$355 = 250;
+$356 = 251;
+$357 = 46;
+$358 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$359 = new f;
+qx.core.Object._db[65] = $359;
+$360 = "threedface";
+$361 = 65;
+$362 = {}
+var f = new Function();
+f.prototype = qx.renderer.color.ColorObject.prototype;
+$363 = new f;
+qx.core.Object._db[66] = $363;
+$364 = "windowtext";
+$365 = 66;
+$366 = {}
+$367 = {}
+var f = new Function();
+f.prototype = qx.renderer.theme.ColorTheme.prototype;
+$368 = new f;
+qx.core.Object._db[2] = $368;
+$369 = "systemDefault";
+$370 = "Inherit Operating System";
+$371 = {}
+$372 = {}
+$373 = "activeborder";
+$374 = "appworkspace";
+$375 = "background";
+$376 = "buttonhighlight";
+$377 = "buttonshadow";
+$378 = "buttontext";
+$379 = "inactiveborder";
+$380 = "infobackground";
+$381 = "menu";
+$382 = "menutext";
+$383 = "scrollbar";
+$384 = "window";
+$385 = "windowframe";
+$386 = "qx.renderer.theme.ColorTheme";
+$387 = "enabled,id,title";
+var f = new Function();
+f.prototype = qx.renderer.theme.ColorTheme.prototype;
+$388 = new f;
+qx.core.Object._db[3] = $388;
+$389 = "windowsRoyale";
+$390 = "Windows XP Media Center";
+$391 = {}
+$392 = [];
+$393 = 212;
+$394 = 208;
+$395 = [];
+$396 = 51;
+$397 = 94;
+$398 = 168;
+$399 = [];
+$400 = 128;
+$401 = [];
+$402 = 64;
+$403 = [];
+$404 = 235;
+$405 = 233;
+$406 = 237;
+$407 = [];
+$408 = [];
+$409 = 167;
+$410 = 166;
+$411 = 170;
+$412 = [];
+$413 = [];
+$414 = [];
+$415 = [];
+$416 = [];
+$417 = [];
+$418 = [];
+$419 = 111;
+$420 = 161;
+$421 = 217;
+$422 = [];
+$423 = [];
+$424 = [];
+$425 = [];
+$426 = [];
+$427 = [];
+$428 = [];
+$429 = 133;
+$430 = 135;
+$431 = 140;
+$432 = [];
+$433 = [];
+$434 = [];
+$435 = 223;
+$436 = 228;
+$437 = [];
+$438 = [];
+$439 = [];
+$440 = [];
+$441 = {}
+var f = new Function();
+f.prototype = qx.renderer.theme.ColorTheme.prototype;
+$442 = new f;
+qx.core.Object._db[4] = $442;
+$443 = "windowsClassic";
+$444 = "Windows 2000";
+$445 = {}
+$446 = [];
+$447 = [];
+$448 = 106;
+$449 = [];
+$450 = [];
+$451 = 110;
+$452 = 165;
+$453 = [];
+$454 = [];
+$455 = [];
+$456 = [];
+$457 = [];
+$458 = [];
+$459 = [];
+$460 = [];
+$461 = [];
+$462 = [];
+$463 = [];
+$464 = [];
+$465 = [];
+$466 = [];
+$467 = [];
+$468 = [];
+$469 = [];
+$470 = [];
+$471 = [];
+$472 = [];
+$473 = [];
+$474 = [];
+$475 = [];
+$476 = [];
+$477 = {}
+var f = new Function();
+f.prototype = qx.renderer.theme.ColorTheme.prototype;
+$478 = new f;
+qx.core.Object._db[5] = $478;
+$479 = 5;
+$480 = "windowsLunaBlue";
+$481 = "Windows XP Luna Blue";
+$482 = {}
+$483 = [];
+$484 = [];
+$485 = 84;
+$486 = 227;
+$487 = [];
+$488 = [];
+$489 = 152;
+$490 = [];
+$491 = 236;
+$492 = 216;
+$493 = [];
+$494 = [];
+$495 = 172;
+$496 = 153;
+$497 = [];
+$498 = [];
+$499 = [];
+$500 = [];
+$501 = 49;
+$502 = 197;
+$503 = [];
+$504 = [];
+$505 = [];
+$506 = 122;
+$507 = 150;
+$508 = [];
+$509 = 248;
+$510 = [];
+$511 = [];
+$512 = [];
+$513 = [];
+$514 = [];
+$515 = [];
+$516 = 113;
+$517 = 100;
+$518 = [];
+$519 = [];
+$520 = [];
+$521 = 241;
+$522 = 239;
+$523 = 226;
+$524 = [];
+$525 = [];
+$526 = [];
+$527 = [];
+$528 = {}
+var f = new Function();
+f.prototype = qx.renderer.theme.ColorTheme.prototype;
+$529 = new f;
+qx.core.Object._db[6] = $529;
+$530 = 6;
+$531 = "windowsLunaGreen";
+$532 = "Windows XP Luna Green";
+$533 = {}
+$534 = [];
+$535 = [];
+$536 = 139;
+$537 = 105;
+$538 = [];
+$539 = [];
+$540 = 157;
+$541 = 189;
+$542 = [];
+$543 = [];
+$544 = [];
+$545 = [];
+$546 = [];
+$547 = [];
+$548 = [];
+$549 = 147;
+$550 = 160;
+$551 = 112;
+$552 = [];
+$553 = [];
+$554 = [];
+$555 = 214;
+$556 = 186;
+$557 = [];
+$558 = [];
+$559 = [];
+$560 = [];
+$561 = [];
+$562 = [];
+$563 = [];
+$564 = [];
+$565 = [];
+$566 = [];
+$567 = [];
+$568 = [];
+$569 = [];
+$570 = [];
+$571 = {}
+var f = new Function();
+f.prototype = qx.renderer.theme.ColorTheme.prototype;
+$572 = new f;
+qx.core.Object._db[7] = $572;
+$573 = 7;
+$574 = "windowsLunaSilver";
+$575 = "Windows XP Luna Silver";
+$576 = {}
+$577 = [];
+$578 = [];
+$579 = 192;
+$580 = [];
+$581 = [];
+$582 = 87;
+$583 = 104;
+$584 = [];
+$585 = 224;
+$586 = [];
+$587 = [];
+$588 = [];
+$589 = [];
+$590 = 14;
+$591 = 16;
+$592 = [];
+$593 = [];
+$594 = 178;
+$595 = 180;
+$596 = 191;
+$597 = [];
+$598 = [];
+$599 = [];
+$600 = [];
+$601 = 162;
+$602 = [];
+$603 = [];
+$604 = [];
+$605 = [];
+$606 = [];
+$607 = [];
+$608 = [];
+$609 = [];
+$610 = [];
+$611 = [];
+$612 = [];
+$613 = [];
+$614 = [];
+$615 = {}
+$616 = {}
+$617 = "qx.manager.object.ColorManager";
+$618 = "enabled,theme";
+$619 = [];
+$0._hashCode = $1;
+$0._htmlProperties = $2;
+$0._htmlAttributes = $4;
+$0._styleProperties = $5;
+$0._layoutChanges = $10;
+$0._states = $11;
+$0._valueSelectable = $13;
+$0._valueTabIndex = $14;
+$0._valueSpacing = $15;
+$0._valueWidth = $16;
+$0._computedWidthType = $17;
+$0._computedWidthTypeAuto = $12;
+$0._computedWidthTypeNull = $13;
+$0._computedWidthTypeFlex = $13;
+$0._computedWidthTypePercent = $13;
+$0._computedWidthTypePixel = $13;
+$0._computedWidthValue = $18;
+$0._computedWidthParsed = $19;
+$0._cachedHasAutoX = $19;
+$0._valueHeight = $16;
+$0._computedHeightType = $17;
+$0._computedHeightTypeAuto = $12;
+$0._computedHeightTypeNull = $13;
+$0._computedHeightTypeFlex = $13;
+$0._computedHeightTypePercent = $13;
+$0._computedHeightTypePixel = $13;
+$0._computedHeightValue = $20;
+$0._computedHeightParsed = $19;
+$0._cachedHasAutoY = $19;
+$0._valueHorizontalChildrenAlign = $21;
+$0._layoutMode = $21;
+$0._valueVerticalChildrenAlign = $22;
+$0._valueStretchChildrenOrthogonalAxis = $13;
+$0._valuePaddingTop = $17;
+$0._valuePaddingRight = $15;
+$0._valuePaddingBottom = $17;
+$0._valuePaddingLeft = $15;
+$0._children = $23;
+$0._layoutImpl = $69;
+$0._valueOrientation = $73;
+$0._layoutHorizontal = $12;
+$0._layoutVertical = $13;
+$0._valueCursor = $8;
+$0._valueLabel = $64;
+$0._labelIsVisible = $12;
+$0._label = $54;
+$0._valueIcon = $34;
+$0._iconIsVisible = $12;
+$0._icon = $24;
+$0._listeners = $74;
+$0._valueLeft = $94;
+$0._computedLeftType = $14;
+$0._computedLeftTypePixel = $12;
+$0._computedLeftTypeNull = $13;
+$0._computedLeftTypePercent = $13;
+$0._computedLeftValue = $94;
+$0._computedLeftParsed = $94;
+$0._valueTop = $95;
+$0._computedTopType = $14;
+$0._computedTopTypePixel = $12;
+$0._computedTopTypeNull = $13;
+$0._computedTopTypePercent = $13;
+$0._computedTopValue = $95;
+$0._computedTopParsed = $95;
+$0._valueParent = $96;
+$0._hasParent = $12;
+$0._isDisplayable = $12;
+$0._isCreated = $12;
+$0._valueBackgroundColor = $97;
+$0._valueBorder = $145;
+$0._cachedBorderTop = $154;
+$0._cachedBorderRight = $154;
+$0._cachedBorderBottom = $154;
+$0._cachedBorderLeft = $154;
+$0._cachedVisibleChildren = $619;
+$0._cachedPreferredInnerWidth = $109;
+$0._cachedFrameWidth = $159;
+$0._cachedPreferredBoxWidth = $18;
+$0._cachedPreferredInnerHeight = $35;
+$0._cachedFrameHeight = $160;
+$0._cachedPreferredBoxHeight = $20;
+$0._initialLayoutDone = $12;
+$0._cachedBoxWidth = $18;
+$0._cachedInnerWidth = $109;
+$0._cachedAccumulatedChildrenOuterWidth = $109;
+$0._cachedBoxHeight = $20;
+$0._cachedInnerHeight = $35;
+$0._isSeeable = $12;
+$0.classname = $161;
+$0._properties = $162;
+$0._valueShow = $163;
+$0._valueIconPosition = $164;
+$0._valueIconWidth = $19;
+$0._valueIconHeight = $19;
+$0._flashMode = $13;
+$0._valueReverseChildrenOrder = $13;
+$0._valueUseAdvancedFlexAllocation = $13;
+$0._cachedAccumulatedChildrenOuterHeight = $19;
+$0._valueFocusManager = $19;
+$0._valueActiveChild = $19;
+$0._remappingChildTable = $165;
+$0._valueVisibility = $12;
+$0._valueDisplay = $12;
+$0._valueAnonymous = $13;
+$0._valueTagName = $51;
+$0._valueHorizontalAlign = $19;
+$0._valueVerticalAlign = $19;
+$0._valueAllowStretchX = $12;
+$0._valueAllowStretchY = $12;
+$0._valueZIndex = $19;
+$0._valueColor = $19;
+$0._valueFont = $19;
+$0._valueOpacity = $19;
+$0._valueBackgroundImage = $19;
+$0._valueOverflow = $19;
+$0._valueClipLeft = $19;
+$0._valueClipTop = $19;
+$0._valueClipWidth = $19;
+$0._valueClipHeight = $19;
+$0._valueHideFocus = $13;
+$0._valueEnableElementFocus = $12;
+$0._valueFocused = $13;
+$0._valueToolTip = $19;
+$0._valueContextMenu = $19;
+$0._valueCapture = $13;
+$0._valueDropDataTypes = $19;
+$0._valueCommand = $19;
+$0._valueAppearance = $19;
+$0._valueMarginTop = $48;
+$0._valueMarginRight = $48;
+$0._valueMarginBottom = $48;
+$0._valueMarginLeft = $48;
+$0._computedLeftTypeAuto = $13;
+$0._computedLeftTypeFlex = $13;
+$0._computedRightValue = $19;
+$0._computedRightParsed = $19;
+$0._computedRightType = $19;
+$0._computedRightTypeNull = $12;
+$0._computedRightTypePixel = $13;
+$0._computedRightTypePercent = $13;
+$0._computedRightTypeAuto = $13;
+$0._computedRightTypeFlex = $13;
+$0._valueRight = $19;
+$0._computedMinWidthValue = $19;
+$0._computedMinWidthParsed = $19;
+$0._computedMinWidthType = $19;
+$0._computedMinWidthTypeNull = $12;
+$0._computedMinWidthTypePixel = $13;
+$0._computedMinWidthTypePercent = $13;
+$0._computedMinWidthTypeAuto = $13;
+$0._computedMinWidthTypeFlex = $13;
+$0._valueMinWidth = $19;
+$0._computedMaxWidthValue = $19;
+$0._computedMaxWidthParsed = $19;
+$0._computedMaxWidthType = $19;
+$0._computedMaxWidthTypeNull = $12;
+$0._computedMaxWidthTypePixel = $13;
+$0._computedMaxWidthTypePercent = $13;
+$0._computedMaxWidthTypeAuto = $13;
+$0._computedMaxWidthTypeFlex = $13;
+$0._valueMaxWidth = $19;
+$0._computedTopTypeAuto = $13;
+$0._computedTopTypeFlex = $13;
+$0._computedBottomValue = $19;
+$0._computedBottomParsed = $19;
+$0._computedBottomType = $19;
+$0._computedBottomTypeNull = $12;
+$0._computedBottomTypePixel = $13;
+$0._computedBottomTypePercent = $13;
+$0._computedBottomTypeAuto = $13;
+$0._computedBottomTypeFlex = $13;
+$0._valueBottom = $19;
+$0._computedMinHeightValue = $19;
+$0._computedMinHeightParsed = $19;
+$0._computedMinHeightType = $19;
+$0._computedMinHeightTypeNull = $12;
+$0._computedMinHeightTypePixel = $13;
+$0._computedMinHeightTypePercent = $13;
+$0._computedMinHeightTypeAuto = $13;
+$0._computedMinHeightTypeFlex = $13;
+$0._valueMinHeight = $19;
+$0._computedMaxHeightValue = $19;
+$0._computedMaxHeightParsed = $19;
+$0._computedMaxHeightType = $19;
+$0._computedMaxHeightTypeNull = $12;
+$0._computedMaxHeightTypePixel = $13;
+$0._computedMaxHeightTypePercent = $13;
+$0._computedMaxHeightTypeAuto = $13;
+$0._computedMaxHeightTypeFlex = $13;
+$0._valueMaxHeight = $19;
+$0._isDisplayed = $12;
+$0._cachedOuterWidth = $19;
+$0._cachedOuterHeight = $19;
+$0._cachedHasPercentX = $13;
+$0._cachedHasPercentY = $13;
+$0._cachedHasFlexX = $13;
+$0._cachedHasFlexY = $13;
+$0._clonePropertyIgnoreList = $53;
+$0._valueEnabled = $12;
+$0._disposed = $13;
+$2["className"] = $3;
+$4["qxhashcode"] = $1;
+$5["MozUserSelect"] = $6;
+$5["userSelect"] = $6;
+$5["MozUserFocus"] = $7;
+$5["userFocus"] = $7;
+$5["cursor"] = $8;
+$5["backgroundColor"] = $9;
+$11["out"] = $12;
+$11["blurred"] = $12;
+$11["enabled"] = $12;
+$11["inactive"] = $12;
+$11["unchecked"] = $12;
+$11["notpressed"] = $12;
+$11["notselected"] = $12;
+$11["notanchor"] = $12;
+$11["notlead"] = $12;
+$23[0] = $24;
+$23[1] = $54;
+$24._hashCode = $25;
+$24._htmlProperties = $26;
+$24._htmlAttributes = $29;
+$24._styleProperties = $30;
+$24._layoutChanges = $31;
+$24._states = $32;
+$24._manager = $33;
+$24._valueSelectable = $13;
+$24._valueAllowStretchX = $13;
+$24._valueAllowStretchY = $13;
+$24._valueSource = $34;
+$24._valueWidth = $16;
+$24._computedWidthType = $17;
+$24._computedWidthTypeAuto = $12;
+$24._computedWidthTypeNull = $13;
+$24._computedWidthTypeFlex = $13;
+$24._computedWidthTypePercent = $13;
+$24._computedWidthTypePixel = $13;
+$24._computedWidthValue = $35;
+$24._computedWidthParsed = $19;
+$24._cachedHasAutoX = $19;
+$24._valueHeight = $16;
+$24._computedHeightType = $17;
+$24._computedHeightTypeAuto = $12;
+$24._computedHeightTypeNull = $13;
+$24._computedHeightTypeFlex = $13;
+$24._computedHeightTypePercent = $13;
+$24._computedHeightTypePixel = $13;
+$24._computedHeightValue = $35;
+$24._computedHeightParsed = $19;
+$24._cachedHasAutoY = $19;
+$24._valueAnonymous = $12;
+$24._valueParent = $0;
+$24._hasParent = $12;
+$24._isDisplayable = $12;
+$24._isCreated = $12;
+$24._valuePreloader = $36;
+$24._valueLoaded = $12;
+$24._cachedPreferredInnerWidth = $35;
+$24._cachedFrameWidth = $48;
+$24._cachedPreferredBoxWidth = $35;
+$24._cachedPreferredInnerHeight = $35;
+$24._cachedFrameHeight = $48;
+$24._cachedPreferredBoxHeight = $35;
+$24._cachedBoxWidth = $35;
+$24._cachedOuterWidth = $35;
+$24._cachedLocationHorizontal = $15;
+$24._cachedBoxHeight = $35;
+$24._cachedOuterHeight = $35;
+$24._initialLayoutDone = $12;
+$24._isSeeable = $12;
+$24.classname = $49;
+$24._properties = $50;
+$24._valueResizeToInner = $13;
+$24._valueVisibility = $12;
+$24._valueDisplay = $12;
+$24._valueTagName = $51;
+$24._valueHorizontalAlign = $19;
+$24._valueVerticalAlign = $19;
+$24._valueZIndex = $19;
+$24._valueBackgroundColor = $19;
+$24._valueColor = $19;
+$24._valueBorder = $19;
+$24._valueFont = $19;
+$24._valueOpacity = $19;
+$24._valueCursor = $19;
+$24._valueBackgroundImage = $19;
+$24._valueOverflow = $19;
+$24._valueClipLeft = $19;
+$24._valueClipTop = $19;
+$24._valueClipWidth = $19;
+$24._valueClipHeight = $19;
+$24._valueTabIndex = $52;
+$24._valueHideFocus = $13;
+$24._valueEnableElementFocus = $12;
+$24._valueFocused = $13;
+$24._valueToolTip = $19;
+$24._valueContextMenu = $19;
+$24._valueCapture = $13;
+$24._valueDropDataTypes = $19;
+$24._valueCommand = $19;
+$24._valueAppearance = $19;
+$24._valueMarginTop = $48;
+$24._valueMarginRight = $48;
+$24._valueMarginBottom = $48;
+$24._valueMarginLeft = $48;
+$24._valuePaddingTop = $48;
+$24._valuePaddingRight = $48;
+$24._valuePaddingBottom = $48;
+$24._valuePaddingLeft = $48;
+$24._computedLeftValue = $19;
+$24._computedLeftParsed = $19;
+$24._computedLeftType = $19;
+$24._computedLeftTypeNull = $12;
+$24._computedLeftTypePixel = $13;
+$24._computedLeftTypePercent = $13;
+$24._computedLeftTypeAuto = $13;
+$24._computedLeftTypeFlex = $13;
+$24._valueLeft = $19;
+$24._computedRightValue = $19;
+$24._computedRightParsed = $19;
+$24._computedRightType = $19;
+$24._computedRightTypeNull = $12;
+$24._computedRightTypePixel = $13;
+$24._computedRightTypePercent = $13;
+$24._computedRightTypeAuto = $13;
+$24._computedRightTypeFlex = $13;
+$24._valueRight = $19;
+$24._computedMinWidthValue = $19;
+$24._computedMinWidthParsed = $19;
+$24._computedMinWidthType = $19;
+$24._computedMinWidthTypeNull = $12;
+$24._computedMinWidthTypePixel = $13;
+$24._computedMinWidthTypePercent = $13;
+$24._computedMinWidthTypeAuto = $13;
+$24._computedMinWidthTypeFlex = $13;
+$24._valueMinWidth = $19;
+$24._computedMaxWidthValue = $19;
+$24._computedMaxWidthParsed = $19;
+$24._computedMaxWidthType = $19;
+$24._computedMaxWidthTypeNull = $12;
+$24._computedMaxWidthTypePixel = $13;
+$24._computedMaxWidthTypePercent = $13;
+$24._computedMaxWidthTypeAuto = $13;
+$24._computedMaxWidthTypeFlex = $13;
+$24._valueMaxWidth = $19;
+$24._computedTopValue = $19;
+$24._computedTopParsed = $19;
+$24._computedTopType = $19;
+$24._computedTopTypeNull = $12;
+$24._computedTopTypePixel = $13;
+$24._computedTopTypePercent = $13;
+$24._computedTopTypeAuto = $13;
+$24._computedTopTypeFlex = $13;
+$24._valueTop = $19;
+$24._computedBottomValue = $19;
+$24._computedBottomParsed = $19;
+$24._computedBottomType = $19;
+$24._computedBottomTypeNull = $12;
+$24._computedBottomTypePixel = $13;
+$24._computedBottomTypePercent = $13;
+$24._computedBottomTypeAuto = $13;
+$24._computedBottomTypeFlex = $13;
+$24._valueBottom = $19;
+$24._computedMinHeightValue = $19;
+$24._computedMinHeightParsed = $19;
+$24._computedMinHeightType = $19;
+$24._computedMinHeightTypeNull = $12;
+$24._computedMinHeightTypePixel = $13;
+$24._computedMinHeightTypePercent = $13;
+$24._computedMinHeightTypeAuto = $13;
+$24._computedMinHeightTypeFlex = $13;
+$24._valueMinHeight = $19;
+$24._computedMaxHeightValue = $19;
+$24._computedMaxHeightParsed = $19;
+$24._computedMaxHeightType = $19;
+$24._computedMaxHeightTypeNull = $12;
+$24._computedMaxHeightTypePixel = $13;
+$24._computedMaxHeightTypePercent = $13;
+$24._computedMaxHeightTypeAuto = $13;
+$24._computedMaxHeightTypeFlex = $13;
+$24._valueMaxHeight = $19;
+$24._isDisplayed = $12;
+$24._cachedInnerWidth = $19;
+$24._cachedInnerHeight = $19;
+$24._cachedHasPercentX = $13;
+$24._cachedHasPercentY = $13;
+$24._cachedHasFlexX = $13;
+$24._cachedHasFlexY = $13;
+$24._cachedBorderTop = $48;
+$24._cachedBorderRight = $48;
+$24._cachedBorderBottom = $48;
+$24._cachedBorderLeft = $48;
+$24._clonePropertyIgnoreList = $53;
+$24._valueEnabled = $12;
+$24._disposed = $13;
+$26["className"] = $27;
+$26["alt"] = $28;
+$26["title"] = $28;
+$29["qxhashcode"] = $25;
+$30["MozUserSelect"] = $6;
+$30["userSelect"] = $6;
+$32["out"] = $12;
+$32["blurred"] = $12;
+$32["enabled"] = $12;
+$32["inactive"] = $12;
+$32["unchecked"] = $12;
+$32["notpressed"] = $12;
+$32["notselected"] = $12;
+$32["notanchor"] = $12;
+$32["notlead"] = $12;
+$36._hashCode = $37;
+$36._source = $38;
+$36._isLoaded = $12;
+$36._isError = $13;
+$36.classname = $39;
+$36._manager = $40;
+$36._isPng = $13;
+$36._valueEnabled = $12;
+$36._properties = $46;
+$36._disposed = $13;
+$40._hashCode = $41;
+$40._objects = $42;
+$40.classname = $47;
+$40._valueEnabled = $12;
+$40._properties = $46;
+$40._disposed = $13;
+$42["../../images/icons/crystalsvg/32/penguin.png"] = $36;
+$42["../../images/icons/crystalsvg/32/appearance.png"] = $43;
+$43._hashCode = $44;
+$43._source = $45;
+$43._isLoaded = $12;
+$43._isError = $13;
+$43.classname = $39;
+$43._manager = $40;
+$43._isPng = $13;
+$43._valueEnabled = $12;
+$43._properties = $46;
+$43._disposed = $13;
+$54._hashCode = $55;
+$54._htmlProperties = $56;
+$54._htmlAttributes = $58;
+$54._styleProperties = $59;
+$54._layoutChanges = $60;
+$54._states = $61;
+$54._valueAllowStretchX = $13;
+$54._valueAllowStretchY = $13;
+$54._valueWidth = $16;
+$54._computedWidthType = $17;
+$54._computedWidthTypeAuto = $12;
+$54._computedWidthTypeNull = $13;
+$54._computedWidthTypeFlex = $13;
+$54._computedWidthTypePercent = $13;
+$54._computedWidthTypePixel = $13;
+$54._computedWidthValue = $62;
+$54._computedWidthParsed = $19;
+$54._cachedHasAutoX = $19;
+$54._valueHeight = $16;
+$54._computedHeightType = $17;
+$54._computedHeightTypeAuto = $12;
+$54._computedHeightTypeNull = $13;
+$54._computedHeightTypeFlex = $13;
+$54._computedHeightTypePercent = $13;
+$54._computedHeightTypePixel = $13;
+$54._computedHeightValue = $63;
+$54._computedHeightParsed = $19;
+$54._cachedHasAutoY = $19;
+$54._valueAnonymous = $12;
+$54._valueSelectable = $13;
+$54._valueHtml = $64;
+$54._htmlMode = $19;
+$54._valueParent = $0;
+$54._hasParent = $12;
+$54._isDisplayable = $12;
+$54._isCreated = $12;
+$54._cachedPreferredInnerWidth = $62;
+$54._cachedPreferredInnerHeight = $63;
+$54._cachedFrameWidth = $48;
+$54._cachedPreferredBoxWidth = $62;
+$54._cachedFrameHeight = $48;
+$54._cachedPreferredBoxHeight = $63;
+$54._cachedBoxWidth = $62;
+$54._cachedOuterWidth = $62;
+$54._cachedLocationHorizontal = $65;
+$54._cachedBoxHeight = $63;
+$54._cachedOuterHeight = $63;
+$54._initialLayoutDone = $12;
+$54._isSeeable = $12;
+$54.classname = $66;
+$54._properties = $67;
+$54._valueFontPropertiesProfile = $8;
+$54._valueMeasureMode = $68;
+$54._valueMnemonic = $19;
+$54._hasMnemonic = $13;
+$54._mnemonicHtml = $28;
+$54._mnemonicTest = $19;
+$54._valueVisibility = $12;
+$54._valueDisplay = $12;
+$54._valueTagName = $51;
+$54._valueHorizontalAlign = $19;
+$54._valueVerticalAlign = $19;
+$54._valueZIndex = $19;
+$54._valueBackgroundColor = $19;
+$54._valueColor = $19;
+$54._valueBorder = $19;
+$54._valueFont = $19;
+$54._valueOpacity = $19;
+$54._valueCursor = $19;
+$54._valueBackgroundImage = $19;
+$54._valueOverflow = $19;
+$54._valueClipLeft = $19;
+$54._valueClipTop = $19;
+$54._valueClipWidth = $19;
+$54._valueClipHeight = $19;
+$54._valueTabIndex = $52;
+$54._valueHideFocus = $13;
+$54._valueEnableElementFocus = $12;
+$54._valueFocused = $13;
+$54._valueToolTip = $19;
+$54._valueContextMenu = $19;
+$54._valueCapture = $13;
+$54._valueDropDataTypes = $19;
+$54._valueCommand = $19;
+$54._valueAppearance = $19;
+$54._valueMarginTop = $48;
+$54._valueMarginRight = $48;
+$54._valueMarginBottom = $48;
+$54._valueMarginLeft = $48;
+$54._valuePaddingTop = $48;
+$54._valuePaddingRight = $48;
+$54._valuePaddingBottom = $48;
+$54._valuePaddingLeft = $48;
+$54._computedLeftValue = $19;
+$54._computedLeftParsed = $19;
+$54._computedLeftType = $19;
+$54._computedLeftTypeNull = $12;
+$54._computedLeftTypePixel = $13;
+$54._computedLeftTypePercent = $13;
+$54._computedLeftTypeAuto = $13;
+$54._computedLeftTypeFlex = $13;
+$54._valueLeft = $19;
+$54._computedRightValue = $19;
+$54._computedRightParsed = $19;
+$54._computedRightType = $19;
+$54._computedRightTypeNull = $12;
+$54._computedRightTypePixel = $13;
+$54._computedRightTypePercent = $13;
+$54._computedRightTypeAuto = $13;
+$54._computedRightTypeFlex = $13;
+$54._valueRight = $19;
+$54._computedMinWidthValue = $19;
+$54._computedMinWidthParsed = $19;
+$54._computedMinWidthType = $19;
+$54._computedMinWidthTypeNull = $12;
+$54._computedMinWidthTypePixel = $13;
+$54._computedMinWidthTypePercent = $13;
+$54._computedMinWidthTypeAuto = $13;
+$54._computedMinWidthTypeFlex = $13;
+$54._valueMinWidth = $19;
+$54._computedMaxWidthValue = $19;
+$54._computedMaxWidthParsed = $19;
+$54._computedMaxWidthType = $19;
+$54._computedMaxWidthTypeNull = $12;
+$54._computedMaxWidthTypePixel = $13;
+$54._computedMaxWidthTypePercent = $13;
+$54._computedMaxWidthTypeAuto = $13;
+$54._computedMaxWidthTypeFlex = $13;
+$54._valueMaxWidth = $19;
+$54._computedTopValue = $19;
+$54._computedTopParsed = $19;
+$54._computedTopType = $19;
+$54._computedTopTypeNull = $12;
+$54._computedTopTypePixel = $13;
+$54._computedTopTypePercent = $13;
+$54._computedTopTypeAuto = $13;
+$54._computedTopTypeFlex = $13;
+$54._valueTop = $19;
+$54._computedBottomValue = $19;
+$54._computedBottomParsed = $19;
+$54._computedBottomType = $19;
+$54._computedBottomTypeNull = $12;
+$54._computedBottomTypePixel = $13;
+$54._computedBottomTypePercent = $13;
+$54._computedBottomTypeAuto = $13;
+$54._computedBottomTypeFlex = $13;
+$54._valueBottom = $19;
+$54._computedMinHeightValue = $19;
+$54._computedMinHeightParsed = $19;
+$54._computedMinHeightType = $19;
+$54._computedMinHeightTypeNull = $12;
+$54._computedMinHeightTypePixel = $13;
+$54._computedMinHeightTypePercent = $13;
+$54._computedMinHeightTypeAuto = $13;
+$54._computedMinHeightTypeFlex = $13;
+$54._valueMinHeight = $19;
+$54._computedMaxHeightValue = $19;
+$54._computedMaxHeightParsed = $19;
+$54._computedMaxHeightType = $19;
+$54._computedMaxHeightTypeNull = $12;
+$54._computedMaxHeightTypePixel = $13;
+$54._computedMaxHeightTypePercent = $13;
+$54._computedMaxHeightTypeAuto = $13;
+$54._computedMaxHeightTypeFlex = $13;
+$54._valueMaxHeight = $19;
+$54._isDisplayed = $12;
+$54._cachedInnerWidth = $19;
+$54._cachedInnerHeight = $19;
+$54._cachedHasPercentX = $13;
+$54._cachedHasPercentY = $13;
+$54._cachedHasFlexX = $13;
+$54._cachedHasFlexY = $13;
+$54._cachedBorderTop = $48;
+$54._cachedBorderRight = $48;
+$54._cachedBorderBottom = $48;
+$54._cachedBorderLeft = $48;
+$54._clonePropertyIgnoreList = $53;
+$54._valueEnabled = $12;
+$54._disposed = $13;
+$56["className"] = $57;
+$58["qxhashcode"] = $55;
+$59["MozUserSelect"] = $6;
+$59["userSelect"] = $6;
+$61["out"] = $12;
+$61["blurred"] = $12;
+$61["enabled"] = $12;
+$61["inactive"] = $12;
+$61["unchecked"] = $12;
+$61["notpressed"] = $12;
+$61["notselected"] = $12;
+$61["notanchor"] = $12;
+$61["notlead"] = $12;
+$69._hashCode = $70;
+$69._widget = $0;
+$69.classname = $71;
+$69._valueEnableFlexSupport = $12;
+$69._properties = $72;
+$69._valueEnabled = $12;
+$69._disposed = $13;
+$74["mouseover"] = $75;
+$74["mouseout"] = $79;
+$74["mousedown"] = $82;
+$74["mouseup"] = $85;
+$74["keydown"] = $88;
+$74["keyup"] = $91;
+$75["evt80"] = $76;
+$76["handler"] = $77;
+$76["object"] = $78;
+$79["evt81"] = $80;
+$80["handler"] = $81;
+$80["object"] = $78;
+$82["evt82"] = $83;
+$83["handler"] = $84;
+$83["object"] = $78;
+$85["evt83"] = $86;
+$86["handler"] = $87;
+$86["object"] = $78;
+$88["evt84"] = $89;
+$89["handler"] = $90;
+$89["object"] = $78;
+$91["evt85"] = $92;
+$92["handler"] = $93;
+$92["object"] = $78;
+$97._isHtmlColor = $13;
+$97._isRgbColor = $13;
+$97._isThemedColor = $12;
+$97._hex = $19;
+$97._blue = $19;
+$97._green = $19;
+$97._red = $19;
+$97._value = $9;
+$97._hashCode = $98;
+$97._dependentObjects = $99;
+$97.classname = $181;
+$97._manager = $182;
+$97._valueEnabled = $12;
+$97._properties = $46;
+$97._disposed = $13;
+$99["74"] = $0;
+$99["86"] = $100;
+$100._hashCode = $101;
+$100._htmlProperties = $102;
+$100._htmlAttributes = $103;
+$100._styleProperties = $104;
+$100._layoutChanges = $105;
+$100._states = $106;
+$100._valueSelectable = $13;
+$100._valueTabIndex = $14;
+$100._valueSpacing = $15;
+$100._valueWidth = $16;
+$100._computedWidthType = $17;
+$100._computedWidthTypeAuto = $12;
+$100._computedWidthTypeNull = $13;
+$100._computedWidthTypeFlex = $13;
+$100._computedWidthTypePercent = $13;
+$100._computedWidthTypePixel = $13;
+$100._computedWidthValue = $18;
+$100._computedWidthParsed = $19;
+$100._cachedHasAutoX = $19;
+$100._valueHeight = $16;
+$100._computedHeightType = $17;
+$100._computedHeightTypeAuto = $12;
+$100._computedHeightTypeNull = $13;
+$100._computedHeightTypeFlex = $13;
+$100._computedHeightTypePercent = $13;
+$100._computedHeightTypePixel = $13;
+$100._computedHeightValue = $20;
+$100._computedHeightParsed = $19;
+$100._cachedHasAutoY = $19;
+$100._valueHorizontalChildrenAlign = $21;
+$100._layoutMode = $21;
+$100._valueVerticalChildrenAlign = $22;
+$100._valueStretchChildrenOrthogonalAxis = $13;
+$100._valuePaddingTop = $17;
+$100._valuePaddingRight = $15;
+$100._valuePaddingBottom = $17;
+$100._valuePaddingLeft = $15;
+$100._children = $107;
+$100._layoutImpl = $123;
+$100._valueOrientation = $73;
+$100._layoutHorizontal = $12;
+$100._layoutVertical = $13;
+$100._valueCursor = $8;
+$100._valueLabel = $64;
+$100._labelIsVisible = $12;
+$100._label = $116;
+$100._valueIcon = $115;
+$100._iconIsVisible = $12;
+$100._icon = $108;
+$100._listeners = $125;
+$100._valueLeft = $144;
+$100._computedLeftType = $14;
+$100._computedLeftTypePixel = $12;
+$100._computedLeftTypeNull = $13;
+$100._computedLeftTypePercent = $13;
+$100._computedLeftValue = $144;
+$100._computedLeftParsed = $144;
+$100._valueTop = $95;
+$100._computedTopType = $14;
+$100._computedTopTypePixel = $12;
+$100._computedTopTypeNull = $13;
+$100._computedTopTypePercent = $13;
+$100._computedTopValue = $95;
+$100._computedTopParsed = $95;
+$100._valueParent = $96;
+$100._hasParent = $12;
+$100._isDisplayable = $12;
+$100._isCreated = $12;
+$100._valueBackgroundColor = $97;
+$100._valueBorder = $145;
+$100._cachedBorderTop = $154;
+$100._cachedBorderRight = $154;
+$100._cachedBorderBottom = $154;
+$100._cachedBorderLeft = $154;
+$100._cachedVisibleChildren = $158;
+$100._cachedPreferredInnerWidth = $109;
+$100._cachedFrameWidth = $159;
+$100._cachedPreferredBoxWidth = $18;
+$100._cachedPreferredInnerHeight = $35;
+$100._cachedFrameHeight = $160;
+$100._cachedPreferredBoxHeight = $20;
+$100._initialLayoutDone = $12;
+$100._cachedBoxWidth = $18;
+$100._cachedInnerWidth = $109;
+$100._cachedAccumulatedChildrenOuterWidth = $109;
+$100._cachedBoxHeight = $20;
+$100._cachedInnerHeight = $35;
+$100._isSeeable = $12;
+$100.classname = $161;
+$100._properties = $162;
+$100._valueShow = $163;
+$100._valueIconPosition = $164;
+$100._valueIconWidth = $19;
+$100._valueIconHeight = $19;
+$100._flashMode = $13;
+$100._valueReverseChildrenOrder = $13;
+$100._valueUseAdvancedFlexAllocation = $13;
+$100._cachedAccumulatedChildrenOuterHeight = $19;
+$100._valueFocusManager = $19;
+$100._valueActiveChild = $19;
+$100._remappingChildTable = $165;
+$100._valueVisibility = $12;
+$100._valueDisplay = $12;
+$100._valueAnonymous = $13;
+$100._valueTagName = $51;
+$100._valueHorizontalAlign = $19;
+$100._valueVerticalAlign = $19;
+$100._valueAllowStretchX = $12;
+$100._valueAllowStretchY = $12;
+$100._valueZIndex = $19;
+$100._valueColor = $19;
+$100._valueFont = $19;
+$100._valueOpacity = $19;
+$100._valueBackgroundImage = $19;
+$100._valueOverflow = $19;
+$100._valueClipLeft = $19;
+$100._valueClipTop = $19;
+$100._valueClipWidth = $19;
+$100._valueClipHeight = $19;
+$100._valueHideFocus = $13;
+$100._valueEnableElementFocus = $12;
+$100._valueFocused = $13;
+$100._valueToolTip = $19;
+$100._valueContextMenu = $19;
+$100._valueCapture = $13;
+$100._valueDropDataTypes = $19;
+$100._valueCommand = $19;
+$100._valueAppearance = $19;
+$100._valueMarginTop = $48;
+$100._valueMarginRight = $48;
+$100._valueMarginBottom = $48;
+$100._valueMarginLeft = $48;
+$100._computedLeftTypeAuto = $13;
+$100._computedLeftTypeFlex = $13;
+$100._computedRightValue = $19;
+$100._computedRightParsed = $19;
+$100._computedRightType = $19;
+$100._computedRightTypeNull = $12;
+$100._computedRightTypePixel = $13;
+$100._computedRightTypePercent = $13;
+$100._computedRightTypeAuto = $13;
+$100._computedRightTypeFlex = $13;
+$100._valueRight = $19;
+$100._computedMinWidthValue = $19;
+$100._computedMinWidthParsed = $19;
+$100._computedMinWidthType = $19;
+$100._computedMinWidthTypeNull = $12;
+$100._computedMinWidthTypePixel = $13;
+$100._computedMinWidthTypePercent = $13;
+$100._computedMinWidthTypeAuto = $13;
+$100._computedMinWidthTypeFlex = $13;
+$100._valueMinWidth = $19;
+$100._computedMaxWidthValue = $19;
+$100._computedMaxWidthParsed = $19;
+$100._computedMaxWidthType = $19;
+$100._computedMaxWidthTypeNull = $12;
+$100._computedMaxWidthTypePixel = $13;
+$100._computedMaxWidthTypePercent = $13;
+$100._computedMaxWidthTypeAuto = $13;
+$100._computedMaxWidthTypeFlex = $13;
+$100._valueMaxWidth = $19;
+$100._computedTopTypeAuto = $13;
+$100._computedTopTypeFlex = $13;
+$100._computedBottomValue = $19;
+$100._computedBottomParsed = $19;
+$100._computedBottomType = $19;
+$100._computedBottomTypeNull = $12;
+$100._computedBottomTypePixel = $13;
+$100._computedBottomTypePercent = $13;
+$100._computedBottomTypeAuto = $13;
+$100._computedBottomTypeFlex = $13;
+$100._valueBottom = $19;
+$100._computedMinHeightValue = $19;
+$100._computedMinHeightParsed = $19;
+$100._computedMinHeightType = $19;
+$100._computedMinHeightTypeNull = $12;
+$100._computedMinHeightTypePixel = $13;
+$100._computedMinHeightTypePercent = $13;
+$100._computedMinHeightTypeAuto = $13;
+$100._computedMinHeightTypeFlex = $13;
+$100._valueMinHeight = $19;
+$100._computedMaxHeightValue = $19;
+$100._computedMaxHeightParsed = $19;
+$100._computedMaxHeightType = $19;
+$100._computedMaxHeightTypeNull = $12;
+$100._computedMaxHeightTypePixel = $13;
+$100._computedMaxHeightTypePercent = $13;
+$100._computedMaxHeightTypeAuto = $13;
+$100._computedMaxHeightTypeFlex = $13;
+$100._valueMaxHeight = $19;
+$100._isDisplayed = $12;
+$100._cachedOuterWidth = $19;
+$100._cachedOuterHeight = $19;
+$100._cachedHasPercentX = $13;
+$100._cachedHasPercentY = $13;
+$100._cachedHasFlexX = $13;
+$100._cachedHasFlexY = $13;
+$100._clonePropertyIgnoreList = $53;
+$100._valueEnabled = $12;
+$100._disposed = $13;
+$102["className"] = $3;
+$103["qxhashcode"] = $101;
+$104["MozUserSelect"] = $6;
+$104["userSelect"] = $6;
+$104["MozUserFocus"] = $7;
+$104["userFocus"] = $7;
+$104["cursor"] = $8;
+$104["backgroundColor"] = $9;
+$106["out"] = $12;
+$106["blurred"] = $12;
+$106["enabled"] = $12;
+$106["inactive"] = $12;
+$106["unchecked"] = $12;
+$106["notpressed"] = $12;
+$106["notselected"] = $12;
+$106["notanchor"] = $12;
+$106["notlead"] = $12;
+$107[0] = $108;
+$107[1] = $116;
+$108._hashCode = $109;
+$108._htmlProperties = $110;
+$108._htmlAttributes = $111;
+$108._styleProperties = $112;
+$108._layoutChanges = $113;
+$108._states = $114;
+$108._manager = $33;
+$108._valueSelectable = $13;
+$108._valueAllowStretchX = $13;
+$108._valueAllowStretchY = $13;
+$108._valueSource = $115;
+$108._valueWidth = $16;
+$108._computedWidthType = $17;
+$108._computedWidthTypeAuto = $12;
+$108._computedWidthTypeNull = $13;
+$108._computedWidthTypeFlex = $13;
+$108._computedWidthTypePercent = $13;
+$108._computedWidthTypePixel = $13;
+$108._computedWidthValue = $35;
+$108._computedWidthParsed = $19;
+$108._cachedHasAutoX = $19;
+$108._valueHeight = $16;
+$108._computedHeightType = $17;
+$108._computedHeightTypeAuto = $12;
+$108._computedHeightTypeNull = $13;
+$108._computedHeightTypeFlex = $13;
+$108._computedHeightTypePercent = $13;
+$108._computedHeightTypePixel = $13;
+$108._computedHeightValue = $35;
+$108._computedHeightParsed = $19;
+$108._cachedHasAutoY = $19;
+$108._valueAnonymous = $12;
+$108._valueParent = $100;
+$108._hasParent = $12;
+$108._isDisplayable = $12;
+$108._isCreated = $12;
+$108._valuePreloader = $43;
+$108._valueLoaded = $12;
+$108._cachedPreferredInnerWidth = $35;
+$108._cachedFrameWidth = $48;
+$108._cachedPreferredBoxWidth = $35;
+$108._cachedPreferredInnerHeight = $35;
+$108._cachedFrameHeight = $48;
+$108._cachedPreferredBoxHeight = $35;
+$108._cachedBoxWidth = $35;
+$108._cachedOuterWidth = $35;
+$108._cachedLocationHorizontal = $15;
+$108._cachedBoxHeight = $35;
+$108._cachedOuterHeight = $35;
+$108._initialLayoutDone = $12;
+$108._isSeeable = $12;
+$108.classname = $49;
+$108._properties = $50;
+$108._valueResizeToInner = $13;
+$108._valueVisibility = $12;
+$108._valueDisplay = $12;
+$108._valueTagName = $51;
+$108._valueHorizontalAlign = $19;
+$108._valueVerticalAlign = $19;
+$108._valueZIndex = $19;
+$108._valueBackgroundColor = $19;
+$108._valueColor = $19;
+$108._valueBorder = $19;
+$108._valueFont = $19;
+$108._valueOpacity = $19;
+$108._valueCursor = $19;
+$108._valueBackgroundImage = $19;
+$108._valueOverflow = $19;
+$108._valueClipLeft = $19;
+$108._valueClipTop = $19;
+$108._valueClipWidth = $19;
+$108._valueClipHeight = $19;
+$108._valueTabIndex = $52;
+$108._valueHideFocus = $13;
+$108._valueEnableElementFocus = $12;
+$108._valueFocused = $13;
+$108._valueToolTip = $19;
+$108._valueContextMenu = $19;
+$108._valueCapture = $13;
+$108._valueDropDataTypes = $19;
+$108._valueCommand = $19;
+$108._valueAppearance = $19;
+$108._valueMarginTop = $48;
+$108._valueMarginRight = $48;
+$108._valueMarginBottom = $48;
+$108._valueMarginLeft = $48;
+$108._valuePaddingTop = $48;
+$108._valuePaddingRight = $48;
+$108._valuePaddingBottom = $48;
+$108._valuePaddingLeft = $48;
+$108._computedLeftValue = $19;
+$108._computedLeftParsed = $19;
+$108._computedLeftType = $19;
+$108._computedLeftTypeNull = $12;
+$108._computedLeftTypePixel = $13;
+$108._computedLeftTypePercent = $13;
+$108._computedLeftTypeAuto = $13;
+$108._computedLeftTypeFlex = $13;
+$108._valueLeft = $19;
+$108._computedRightValue = $19;
+$108._computedRightParsed = $19;
+$108._computedRightType = $19;
+$108._computedRightTypeNull = $12;
+$108._computedRightTypePixel = $13;
+$108._computedRightTypePercent = $13;
+$108._computedRightTypeAuto = $13;
+$108._computedRightTypeFlex = $13;
+$108._valueRight = $19;
+$108._computedMinWidthValue = $19;
+$108._computedMinWidthParsed = $19;
+$108._computedMinWidthType = $19;
+$108._computedMinWidthTypeNull = $12;
+$108._computedMinWidthTypePixel = $13;
+$108._computedMinWidthTypePercent = $13;
+$108._computedMinWidthTypeAuto = $13;
+$108._computedMinWidthTypeFlex = $13;
+$108._valueMinWidth = $19;
+$108._computedMaxWidthValue = $19;
+$108._computedMaxWidthParsed = $19;
+$108._computedMaxWidthType = $19;
+$108._computedMaxWidthTypeNull = $12;
+$108._computedMaxWidthTypePixel = $13;
+$108._computedMaxWidthTypePercent = $13;
+$108._computedMaxWidthTypeAuto = $13;
+$108._computedMaxWidthTypeFlex = $13;
+$108._valueMaxWidth = $19;
+$108._computedTopValue = $19;
+$108._computedTopParsed = $19;
+$108._computedTopType = $19;
+$108._computedTopTypeNull = $12;
+$108._computedTopTypePixel = $13;
+$108._computedTopTypePercent = $13;
+$108._computedTopTypeAuto = $13;
+$108._computedTopTypeFlex = $13;
+$108._valueTop = $19;
+$108._computedBottomValue = $19;
+$108._computedBottomParsed = $19;
+$108._computedBottomType = $19;
+$108._computedBottomTypeNull = $12;
+$108._computedBottomTypePixel = $13;
+$108._computedBottomTypePercent = $13;
+$108._computedBottomTypeAuto = $13;
+$108._computedBottomTypeFlex = $13;
+$108._valueBottom = $19;
+$108._computedMinHeightValue = $19;
+$108._computedMinHeightParsed = $19;
+$108._computedMinHeightType = $19;
+$108._computedMinHeightTypeNull = $12;
+$108._computedMinHeightTypePixel = $13;
+$108._computedMinHeightTypePercent = $13;
+$108._computedMinHeightTypeAuto = $13;
+$108._computedMinHeightTypeFlex = $13;
+$108._valueMinHeight = $19;
+$108._computedMaxHeightValue = $19;
+$108._computedMaxHeightParsed = $19;
+$108._computedMaxHeightType = $19;
+$108._computedMaxHeightTypeNull = $12;
+$108._computedMaxHeightTypePixel = $13;
+$108._computedMaxHeightTypePercent = $13;
+$108._computedMaxHeightTypeAuto = $13;
+$108._computedMaxHeightTypeFlex = $13;
+$108._valueMaxHeight = $19;
+$108._isDisplayed = $12;
+$108._cachedInnerWidth = $19;
+$108._cachedInnerHeight = $19;
+$108._cachedHasPercentX = $13;
+$108._cachedHasPercentY = $13;
+$108._cachedHasFlexX = $13;
+$108._cachedHasFlexY = $13;
+$108._cachedBorderTop = $48;
+$108._cachedBorderRight = $48;
+$108._cachedBorderBottom = $48;
+$108._cachedBorderLeft = $48;
+$108._clonePropertyIgnoreList = $53;
+$108._valueEnabled = $12;
+$108._disposed = $13;
+$110["className"] = $27;
+$110["alt"] = $28;
+$110["title"] = $28;
+$111["qxhashcode"] = $109;
+$112["MozUserSelect"] = $6;
+$112["userSelect"] = $6;
+$114["out"] = $12;
+$114["blurred"] = $12;
+$114["enabled"] = $12;
+$114["inactive"] = $12;
+$114["unchecked"] = $12;
+$114["notpressed"] = $12;
+$114["notselected"] = $12;
+$114["notanchor"] = $12;
+$114["notlead"] = $12;
+$116._hashCode = $117;
+$116._htmlProperties = $118;
+$116._htmlAttributes = $119;
+$116._styleProperties = $120;
+$116._layoutChanges = $121;
+$116._states = $122;
+$116._valueAllowStretchX = $13;
+$116._valueAllowStretchY = $13;
+$116._valueWidth = $16;
+$116._computedWidthType = $17;
+$116._computedWidthTypeAuto = $12;
+$116._computedWidthTypeNull = $13;
+$116._computedWidthTypeFlex = $13;
+$116._computedWidthTypePercent = $13;
+$116._computedWidthTypePixel = $13;
+$116._computedWidthValue = $62;
+$116._computedWidthParsed = $19;
+$116._cachedHasAutoX = $19;
+$116._valueHeight = $16;
+$116._computedHeightType = $17;
+$116._computedHeightTypeAuto = $12;
+$116._computedHeightTypeNull = $13;
+$116._computedHeightTypeFlex = $13;
+$116._computedHeightTypePercent = $13;
+$116._computedHeightTypePixel = $13;
+$116._computedHeightValue = $63;
+$116._computedHeightParsed = $19;
+$116._cachedHasAutoY = $19;
+$116._valueAnonymous = $12;
+$116._valueSelectable = $13;
+$116._valueHtml = $64;
+$116._htmlMode = $19;
+$116._valueParent = $100;
+$116._hasParent = $12;
+$116._isDisplayable = $12;
+$116._isCreated = $12;
+$116._cachedPreferredInnerWidth = $62;
+$116._cachedPreferredInnerHeight = $63;
+$116._cachedFrameWidth = $48;
+$116._cachedPreferredBoxWidth = $62;
+$116._cachedFrameHeight = $48;
+$116._cachedPreferredBoxHeight = $63;
+$116._cachedBoxWidth = $62;
+$116._cachedOuterWidth = $62;
+$116._cachedLocationHorizontal = $65;
+$116._cachedBoxHeight = $63;
+$116._cachedOuterHeight = $63;
+$116._initialLayoutDone = $12;
+$116._isSeeable = $12;
+$116.classname = $66;
+$116._properties = $67;
+$116._valueFontPropertiesProfile = $8;
+$116._valueMeasureMode = $68;
+$116._valueMnemonic = $19;
+$116._hasMnemonic = $13;
+$116._mnemonicHtml = $28;
+$116._mnemonicTest = $19;
+$116._valueVisibility = $12;
+$116._valueDisplay = $12;
+$116._valueTagName = $51;
+$116._valueHorizontalAlign = $19;
+$116._valueVerticalAlign = $19;
+$116._valueZIndex = $19;
+$116._valueBackgroundColor = $19;
+$116._valueColor = $19;
+$116._valueBorder = $19;
+$116._valueFont = $19;
+$116._valueOpacity = $19;
+$116._valueCursor = $19;
+$116._valueBackgroundImage = $19;
+$116._valueOverflow = $19;
+$116._valueClipLeft = $19;
+$116._valueClipTop = $19;
+$116._valueClipWidth = $19;
+$116._valueClipHeight = $19;
+$116._valueTabIndex = $52;
+$116._valueHideFocus = $13;
+$116._valueEnableElementFocus = $12;
+$116._valueFocused = $13;
+$116._valueToolTip = $19;
+$116._valueContextMenu = $19;
+$116._valueCapture = $13;
+$116._valueDropDataTypes = $19;
+$116._valueCommand = $19;
+$116._valueAppearance = $19;
+$116._valueMarginTop = $48;
+$116._valueMarginRight = $48;
+$116._valueMarginBottom = $48;
+$116._valueMarginLeft = $48;
+$116._valuePaddingTop = $48;
+$116._valuePaddingRight = $48;
+$116._valuePaddingBottom = $48;
+$116._valuePaddingLeft = $48;
+$116._computedLeftValue = $19;
+$116._computedLeftParsed = $19;
+$116._computedLeftType = $19;
+$116._computedLeftTypeNull = $12;
+$116._computedLeftTypePixel = $13;
+$116._computedLeftTypePercent = $13;
+$116._computedLeftTypeAuto = $13;
+$116._computedLeftTypeFlex = $13;
+$116._valueLeft = $19;
+$116._computedRightValue = $19;
+$116._computedRightParsed = $19;
+$116._computedRightType = $19;
+$116._computedRightTypeNull = $12;
+$116._computedRightTypePixel = $13;
+$116._computedRightTypePercent = $13;
+$116._computedRightTypeAuto = $13;
+$116._computedRightTypeFlex = $13;
+$116._valueRight = $19;
+$116._computedMinWidthValue = $19;
+$116._computedMinWidthParsed = $19;
+$116._computedMinWidthType = $19;
+$116._computedMinWidthTypeNull = $12;
+$116._computedMinWidthTypePixel = $13;
+$116._computedMinWidthTypePercent = $13;
+$116._computedMinWidthTypeAuto = $13;
+$116._computedMinWidthTypeFlex = $13;
+$116._valueMinWidth = $19;
+$116._computedMaxWidthValue = $19;
+$116._computedMaxWidthParsed = $19;
+$116._computedMaxWidthType = $19;
+$116._computedMaxWidthTypeNull = $12;
+$116._computedMaxWidthTypePixel = $13;
+$116._computedMaxWidthTypePercent = $13;
+$116._computedMaxWidthTypeAuto = $13;
+$116._computedMaxWidthTypeFlex = $13;
+$116._valueMaxWidth = $19;
+$116._computedTopValue = $19;
+$116._computedTopParsed = $19;
+$116._computedTopType = $19;
+$116._computedTopTypeNull = $12;
+$116._computedTopTypePixel = $13;
+$116._computedTopTypePercent = $13;
+$116._computedTopTypeAuto = $13;
+$116._computedTopTypeFlex = $13;
+$116._valueTop = $19;
+$116._computedBottomValue = $19;
+$116._computedBottomParsed = $19;
+$116._computedBottomType = $19;
+$116._computedBottomTypeNull = $12;
+$116._computedBottomTypePixel = $13;
+$116._computedBottomTypePercent = $13;
+$116._computedBottomTypeAuto = $13;
+$116._computedBottomTypeFlex = $13;
+$116._valueBottom = $19;
+$116._computedMinHeightValue = $19;
+$116._computedMinHeightParsed = $19;
+$116._computedMinHeightType = $19;
+$116._computedMinHeightTypeNull = $12;
+$116._computedMinHeightTypePixel = $13;
+$116._computedMinHeightTypePercent = $13;
+$116._computedMinHeightTypeAuto = $13;
+$116._computedMinHeightTypeFlex = $13;
+$116._valueMinHeight = $19;
+$116._computedMaxHeightValue = $19;
+$116._computedMaxHeightParsed = $19;
+$116._computedMaxHeightType = $19;
+$116._computedMaxHeightTypeNull = $12;
+$116._computedMaxHeightTypePixel = $13;
+$116._computedMaxHeightTypePercent = $13;
+$116._computedMaxHeightTypeAuto = $13;
+$116._computedMaxHeightTypeFlex = $13;
+$116._valueMaxHeight = $19;
+$116._isDisplayed = $12;
+$116._cachedInnerWidth = $19;
+$116._cachedInnerHeight = $19;
+$116._cachedHasPercentX = $13;
+$116._cachedHasPercentY = $13;
+$116._cachedHasFlexX = $13;
+$116._cachedHasFlexY = $13;
+$116._cachedBorderTop = $48;
+$116._cachedBorderRight = $48;
+$116._cachedBorderBottom = $48;
+$116._cachedBorderLeft = $48;
+$116._clonePropertyIgnoreList = $53;
+$116._valueEnabled = $12;
+$116._disposed = $13;
+$118["className"] = $57;
+$119["qxhashcode"] = $117;
+$120["MozUserSelect"] = $6;
+$120["userSelect"] = $6;
+$122["out"] = $12;
+$122["blurred"] = $12;
+$122["enabled"] = $12;
+$122["inactive"] = $12;
+$122["unchecked"] = $12;
+$122["notpressed"] = $12;
+$122["notselected"] = $12;
+$122["notanchor"] = $12;
+$122["notlead"] = $12;
+$123._hashCode = $124;
+$123._widget = $100;
+$123.classname = $71;
+$123._valueEnableFlexSupport = $12;
+$123._properties = $72;
+$123._valueEnabled = $12;
+$123._disposed = $13;
+$125["mouseover"] = $126;
+$125["mouseout"] = $129;
+$125["mousedown"] = $132;
+$125["mouseup"] = $135;
+$125["keydown"] = $138;
+$125["keyup"] = $141;
+$126["evt80"] = $127;
+$127["handler"] = $128;
+$127["object"] = $78;
+$129["evt81"] = $130;
+$130["handler"] = $131;
+$130["object"] = $78;
+$132["evt82"] = $133;
+$133["handler"] = $134;
+$133["object"] = $78;
+$135["evt83"] = $136;
+$136["handler"] = $137;
+$136["object"] = $78;
+$138["evt84"] = $139;
+$139["handler"] = $140;
+$139["object"] = $78;
+$141["evt85"] = $142;
+$142["handler"] = $143;
+$142["object"] = $78;
+$145._dependentObjects = $146;
+$145._hashCode = $147;
+$145._themedEdges = $148;
+$145._defsX = $149;
+$145._defsY = $153;
+$145._valueTopWidth = $154;
+$145._needsCompilationTop = $13;
+$145._useEnhancedCrossBrowserMode = $19;
+$145._valueRightWidth = $154;
+$145._needsCompilationRight = $13;
+$145._valueBottomWidth = $154;
+$145._needsCompilationBottom = $13;
+$145._valueLeftWidth = $154;
+$145._needsCompilationLeft = $13;
+$145._valueTopStyle = $155;
+$145._valueRightStyle = $155;
+$145._valueBottomStyle = $155;
+$145._valueLeftStyle = $155;
+$145.classname = $156;
+$145._properties = $157;
+$145._valueTopColor = $19;
+$145._valueRightColor = $19;
+$145._valueBottomColor = $19;
+$145._valueLeftColor = $19;
+$145._valueEnabled = $12;
+$145._disposed = $13;
+$146["74"] = $0;
+$146["86"] = $100;
+$148["topStyle"] = $12;
+$148["rightStyle"] = $12;
+$148["bottomStyle"] = $12;
+$148["leftStyle"] = $12;
+$149["borderLeft"] = $150;
+$149["borderRight"] = $150;
+$149["MozBorderLeftColors"] = $151;
+$149["MozBorderRightColors"] = $152;
+$153["borderTop"] = $150;
+$153["borderBottom"] = $150;
+$153["MozBorderTopColors"] = $151;
+$153["MozBorderBottomColors"] = $152;
+$158[0] = $108;
+$158[1] = $116;
+$165[0] = $166;
+$165[1] = $167;
+$165[2] = $168;
+$165[3] = $169;
+$165[4] = $170;
+$165[5] = $171;
+$165[6] = $172;
+$165[7] = $173;
+$165[8] = $174;
+$165[9] = $175;
+$165[10] = $176;
+$165[11] = $177;
+$165[12] = $178;
+$165[13] = $179;
+$165[14] = $180;
+$182._hashCode = $14;
+$182._objects = $183;
+$182._themes = $367;
+$182._dependentObjects = $616;
+$182._valueTheme = $368;
+$182.classname = $617;
+$182._properties = $618;
+$182._valueEnabled = $12;
+$182._disposed = $13;
+$183["threeddarkshadow"] = $184;
+$183["threedshadow"] = $232;
+$183["threedlightshadow"] = $296;
+$183["threedhighlight"] = $306;
+$183["infotext"] = $309;
+$183["graytext"] = $319;
+$183["buttonface"] = $97;
+$183["highlight"] = $323;
+$183["highlighttext"] = $327;
+$183["inactivecaption"] = $331;
+$183["inactivecaptiontext"] = $335;
+$183["activecaption"] = $338;
+$183["captiontext"] = $342;
+$183["#e1eeff"] = $346;
+$183["#fafbfe"] = $353;
+$183["#fec83c"] = $275;
+$183["threedface"] = $359;
+$183["windowtext"] = $363;
+$184._isHtmlColor = $13;
+$184._isRgbColor = $13;
+$184._isThemedColor = $12;
+$184._hex = $19;
+$184._blue = $19;
+$184._green = $19;
+$184._red = $19;
+$184._value = $185;
+$184._hashCode = $186;
+$184._dependentObjects = $187;
+$184.classname = $181;
+$184._manager = $182;
+$184._valueEnabled = $12;
+$184._properties = $46;
+$184._disposed = $13;
+$187["17"] = $188;
+$187["18"] = $145;
+$187["19"] = $195;
+$187["20"] = $202;
+$187["21"] = $208;
+$187["22"] = $214;
+$187["23"] = $220;
+$187["24"] = $226;
+$188._dependentObjects = $189;
+$188._hashCode = $190;
+$188._themedEdges = $191;
+$188._defsX = $192;
+$188._defsY = $193;
+$188._valueTopWidth = $154;
+$188._needsCompilationTop = $12;
+$188._useEnhancedCrossBrowserMode = $19;
+$188._valueRightWidth = $154;
+$188._needsCompilationRight = $12;
+$188._valueBottomWidth = $154;
+$188._needsCompilationBottom = $12;
+$188._valueLeftWidth = $154;
+$188._needsCompilationLeft = $12;
+$188._valueTopStyle = $194;
+$188._valueRightStyle = $194;
+$188._valueBottomStyle = $194;
+$188._valueLeftStyle = $194;
+$188.classname = $156;
+$188._properties = $157;
+$188._valueTopColor = $19;
+$188._valueRightColor = $19;
+$188._valueBottomColor = $19;
+$188._valueLeftColor = $19;
+$188._valueEnabled = $12;
+$188._disposed = $13;
+$191["topStyle"] = $12;
+$191["rightStyle"] = $12;
+$191["bottomStyle"] = $12;
+$191["leftStyle"] = $12;
+$192["borderLeft"] = $28;
+$192["borderRight"] = $28;
+$192["MozBorderLeftColors"] = $28;
+$192["MozBorderRightColors"] = $28;
+$193["borderTop"] = $28;
+$193["borderBottom"] = $28;
+$193["MozBorderTopColors"] = $28;
+$193["MozBorderBottomColors"] = $28;
+$195._dependentObjects = $196;
+$195._hashCode = $197;
+$195._themedEdges = $198;
+$195._defsX = $199;
+$195._defsY = $200;
+$195._valueTopWidth = $154;
+$195._needsCompilationTop = $12;
+$195._useEnhancedCrossBrowserMode = $19;
+$195._valueRightWidth = $154;
+$195._needsCompilationRight = $12;
+$195._valueBottomWidth = $154;
+$195._needsCompilationBottom = $12;
+$195._valueLeftWidth = $154;
+$195._needsCompilationLeft = $12;
+$195._valueTopStyle = $201;
+$195._valueRightStyle = $201;
+$195._valueBottomStyle = $201;
+$195._valueLeftStyle = $201;
+$195.classname = $156;
+$195._properties = $157;
+$195._valueTopColor = $19;
+$195._valueRightColor = $19;
+$195._valueBottomColor = $19;
+$195._valueLeftColor = $19;
+$195._valueEnabled = $12;
+$195._disposed = $13;
+$198["topStyle"] = $12;
+$198["rightStyle"] = $12;
+$198["bottomStyle"] = $12;
+$198["leftStyle"] = $12;
+$199["borderLeft"] = $28;
+$199["borderRight"] = $28;
+$199["MozBorderLeftColors"] = $28;
+$199["MozBorderRightColors"] = $28;
+$200["borderTop"] = $28;
+$200["borderBottom"] = $28;
+$200["MozBorderTopColors"] = $28;
+$200["MozBorderBottomColors"] = $28;
+$202._dependentObjects = $203;
+$202._hashCode = $94;
+$202._themedEdges = $204;
+$202._defsX = $205;
+$202._defsY = $206;
+$202._valueTopWidth = $154;
+$202._needsCompilationTop = $12;
+$202._useEnhancedCrossBrowserMode = $19;
+$202._valueRightWidth = $154;
+$202._needsCompilationRight = $12;
+$202._valueBottomWidth = $154;
+$202._needsCompilationBottom = $12;
+$202._valueLeftWidth = $154;
+$202._needsCompilationLeft = $12;
+$202._valueTopStyle = $207;
+$202._valueRightStyle = $207;
+$202._valueBottomStyle = $207;
+$202._valueLeftStyle = $207;
+$202.classname = $156;
+$202._properties = $157;
+$202._valueTopColor = $19;
+$202._valueRightColor = $19;
+$202._valueBottomColor = $19;
+$202._valueLeftColor = $19;
+$202._valueEnabled = $12;
+$202._disposed = $13;
+$204["topStyle"] = $12;
+$204["rightStyle"] = $12;
+$204["bottomStyle"] = $12;
+$204["leftStyle"] = $12;
+$205["borderLeft"] = $28;
+$205["borderRight"] = $28;
+$205["MozBorderLeftColors"] = $28;
+$205["MozBorderRightColors"] = $28;
+$206["borderTop"] = $28;
+$206["borderBottom"] = $28;
+$206["MozBorderTopColors"] = $28;
+$206["MozBorderBottomColors"] = $28;
+$208._dependentObjects = $209;
+$208._hashCode = $210;
+$208._themedEdges = $211;
+$208._defsX = $212;
+$208._defsY = $213;
+$208._valueTopWidth = $14;
+$208._needsCompilationTop = $12;
+$208._useEnhancedCrossBrowserMode = $19;
+$208._valueRightWidth = $14;
+$208._needsCompilationRight = $12;
+$208._valueBottomWidth = $14;
+$208._needsCompilationBottom = $12;
+$208._valueLeftWidth = $14;
+$208._needsCompilationLeft = $12;
+$208._valueTopStyle = $194;
+$208._valueRightStyle = $194;
+$208._valueBottomStyle = $194;
+$208._valueLeftStyle = $194;
+$208.classname = $156;
+$208._properties = $157;
+$208._valueTopColor = $19;
+$208._valueRightColor = $19;
+$208._valueBottomColor = $19;
+$208._valueLeftColor = $19;
+$208._valueEnabled = $12;
+$208._disposed = $13;
+$211["topStyle"] = $12;
+$211["rightStyle"] = $12;
+$211["bottomStyle"] = $12;
+$211["leftStyle"] = $12;
+$212["borderLeft"] = $28;
+$212["borderRight"] = $28;
+$212["MozBorderLeftColors"] = $28;
+$212["MozBorderRightColors"] = $28;
+$213["borderTop"] = $28;
+$213["borderBottom"] = $28;
+$213["MozBorderTopColors"] = $28;
+$213["MozBorderBottomColors"] = $28;
+$214._dependentObjects = $215;
+$214._hashCode = $216;
+$214._themedEdges = $217;
+$214._defsX = $218;
+$214._defsY = $219;
+$214._valueTopWidth = $14;
+$214._needsCompilationTop = $12;
+$214._useEnhancedCrossBrowserMode = $19;
+$214._valueRightWidth = $14;
+$214._needsCompilationRight = $12;
+$214._valueBottomWidth = $14;
+$214._needsCompilationBottom = $12;
+$214._valueLeftWidth = $14;
+$214._needsCompilationLeft = $12;
+$214._valueTopStyle = $155;
+$214._valueRightStyle = $155;
+$214._valueBottomStyle = $155;
+$214._valueLeftStyle = $155;
+$214.classname = $156;
+$214._properties = $157;
+$214._valueTopColor = $19;
+$214._valueRightColor = $19;
+$214._valueBottomColor = $19;
+$214._valueLeftColor = $19;
+$214._valueEnabled = $12;
+$214._disposed = $13;
+$217["topStyle"] = $12;
+$217["rightStyle"] = $12;
+$217["bottomStyle"] = $12;
+$217["leftStyle"] = $12;
+$218["borderLeft"] = $28;
+$218["borderRight"] = $28;
+$218["MozBorderLeftColors"] = $28;
+$218["MozBorderRightColors"] = $28;
+$219["borderTop"] = $28;
+$219["borderBottom"] = $28;
+$219["MozBorderTopColors"] = $28;
+$219["MozBorderBottomColors"] = $28;
+$220._dependentObjects = $221;
+$220._hashCode = $222;
+$220._themedEdges = $223;
+$220._defsX = $224;
+$220._defsY = $225;
+$220._valueTopWidth = $14;
+$220._needsCompilationTop = $12;
+$220._useEnhancedCrossBrowserMode = $19;
+$220._valueRightWidth = $48;
+$220._needsCompilationRight = $12;
+$220._valueBottomWidth = $14;
+$220._needsCompilationBottom = $12;
+$220._valueLeftWidth = $48;
+$220._needsCompilationLeft = $12;
+$220._valueTopStyle = $194;
+$220._valueRightStyle = $194;
+$220._valueBottomStyle = $194;
+$220._valueLeftStyle = $194;
+$220.classname = $156;
+$220._properties = $157;
+$220._valueTopColor = $19;
+$220._valueRightColor = $19;
+$220._valueBottomColor = $19;
+$220._valueLeftColor = $19;
+$220._valueEnabled = $12;
+$220._disposed = $13;
+$223["topStyle"] = $12;
+$223["rightStyle"] = $12;
+$223["bottomStyle"] = $12;
+$223["leftStyle"] = $12;
+$224["borderLeft"] = $28;
+$224["borderRight"] = $28;
+$224["MozBorderLeftColors"] = $28;
+$224["MozBorderRightColors"] = $28;
+$225["borderTop"] = $28;
+$225["borderBottom"] = $28;
+$225["MozBorderTopColors"] = $28;
+$225["MozBorderBottomColors"] = $28;
+$226._dependentObjects = $227;
+$226._hashCode = $228;
+$226._themedEdges = $229;
+$226._defsX = $230;
+$226._defsY = $231;
+$226._valueTopWidth = $48;
+$226._needsCompilationTop = $12;
+$226._useEnhancedCrossBrowserMode = $19;
+$226._valueRightWidth = $14;
+$226._needsCompilationRight = $12;
+$226._valueBottomWidth = $48;
+$226._needsCompilationBottom = $12;
+$226._valueLeftWidth = $14;
+$226._needsCompilationLeft = $12;
+$226._valueTopStyle = $194;
+$226._valueRightStyle = $194;
+$226._valueBottomStyle = $194;
+$226._valueLeftStyle = $194;
+$226.classname = $156;
+$226._properties = $157;
+$226._valueTopColor = $19;
+$226._valueRightColor = $19;
+$226._valueBottomColor = $19;
+$226._valueLeftColor = $19;
+$226._valueEnabled = $12;
+$226._disposed = $13;
+$229["topStyle"] = $12;
+$229["rightStyle"] = $12;
+$229["bottomStyle"] = $12;
+$229["leftStyle"] = $12;
+$230["borderLeft"] = $28;
+$230["borderRight"] = $28;
+$230["MozBorderLeftColors"] = $28;
+$230["MozBorderRightColors"] = $28;
+$231["borderTop"] = $28;
+$231["borderBottom"] = $28;
+$231["MozBorderTopColors"] = $28;
+$231["MozBorderBottomColors"] = $28;
+$232._isHtmlColor = $13;
+$232._isRgbColor = $13;
+$232._isThemedColor = $12;
+$232._hex = $19;
+$232._blue = $19;
+$232._green = $19;
+$232._red = $19;
+$232._value = $233;
+$232._hashCode = $160;
+$232._dependentObjects = $234;
+$232.classname = $181;
+$232._manager = $182;
+$232._valueEnabled = $12;
+$232._properties = $46;
+$232._disposed = $13;
+$234["17"] = $188;
+$234["18"] = $145;
+$234["19"] = $195;
+$234["20"] = $202;
+$234["21"] = $208;
+$234["22"] = $214;
+$234["23"] = $220;
+$234["24"] = $226;
+$234["25"] = $235;
+$234["40"] = $242;
+$234["53"] = $247;
+$234["54"] = $253;
+$234["55"] = $258;
+$234["56"] = $264;
+$234["58"] = $270;
+$234["59"] = $282;
+$234["60"] = $287;
+$234["61"] = $291;
+$235._dependentObjects = $236;
+$235._hashCode = $237;
+$235._themedEdges = $238;
+$235._defsX = $239;
+$235._defsY = $240;
+$235._valueTopWidth = $14;
+$235._needsCompilationTop = $12;
+$235._useEnhancedCrossBrowserMode = $19;
+$235._valueRightWidth = $14;
+$235._needsCompilationRight = $12;
+$235._valueBottomWidth = $14;
+$235._needsCompilationBottom = $12;
+$235._valueLeftWidth = $14;
+$235._needsCompilationLeft = $12;
+$235._valueTopStyle = $241;
+$235._valueRightStyle = $241;
+$235._valueBottomStyle = $241;
+$235._valueLeftStyle = $241;
+$235._valueTopColor = $232;
+$235._valueRightColor = $232;
+$235._valueBottomColor = $232;
+$235._valueLeftColor = $232;
+$235.classname = $156;
+$235._properties = $157;
+$235._valueEnabled = $12;
+$235._disposed = $13;
+$239["borderLeft"] = $28;
+$239["borderRight"] = $28;
+$239["MozBorderLeftColors"] = $28;
+$239["MozBorderRightColors"] = $28;
+$240["borderTop"] = $28;
+$240["borderBottom"] = $28;
+$240["MozBorderTopColors"] = $28;
+$240["MozBorderBottomColors"] = $28;
+$242._hashCode = $65;
+$242._themedEdges = $243;
+$242._defsX = $244;
+$242._defsY = $245;
+$242._valueTopWidth = $14;
+$242._needsCompilationTop = $12;
+$242._useEnhancedCrossBrowserMode = $19;
+$242._valueRightWidth = $14;
+$242._needsCompilationRight = $12;
+$242._valueBottomWidth = $14;
+$242._needsCompilationBottom = $12;
+$242._valueLeftWidth = $14;
+$242._needsCompilationLeft = $12;
+$242._valueTopStyle = $241;
+$242._valueRightStyle = $241;
+$242._valueBottomStyle = $241;
+$242._valueLeftStyle = $241;
+$242._valueTopColor = $232;
+$242._valueRightColor = $232;
+$242._valueBottomColor = $232;
+$242._valueLeftColor = $232;
+$242.classname = $246;
+$242._properties = $157;
+$242._valueEnabled = $12;
+$242._disposed = $13;
+$244["borderLeft"] = $28;
+$244["borderRight"] = $28;
+$244["MozBorderLeftColors"] = $28;
+$244["MozBorderRightColors"] = $28;
+$245["borderTop"] = $28;
+$245["borderBottom"] = $28;
+$245["MozBorderTopColors"] = $28;
+$245["MozBorderBottomColors"] = $28;
+$247._dependentObjects = $248;
+$247._hashCode = $249;
+$247._themedEdges = $250;
+$247._defsX = $251;
+$247._defsY = $252;
+$247._valueBottomWidth = $14;
+$247._needsCompilationBottom = $12;
+$247._useEnhancedCrossBrowserMode = $19;
+$247._valueBottomStyle = $241;
+$247._valueBottomColor = $232;
+$247.classname = $156;
+$247._needsCompilationTop = $12;
+$247._needsCompilationRight = $12;
+$247._needsCompilationLeft = $12;
+$247._valueTopWidth = $48;
+$247._properties = $157;
+$247._valueRightWidth = $48;
+$247._valueLeftWidth = $48;
+$247._valueTopStyle = $6;
+$247._valueRightStyle = $6;
+$247._valueLeftStyle = $6;
+$247._valueTopColor = $19;
+$247._valueRightColor = $19;
+$247._valueLeftColor = $19;
+$247._valueEnabled = $12;
+$247._disposed = $13;
+$251["borderLeft"] = $28;
+$251["borderRight"] = $28;
+$251["MozBorderLeftColors"] = $28;
+$251["MozBorderRightColors"] = $28;
+$252["borderTop"] = $28;
+$252["borderBottom"] = $28;
+$252["MozBorderTopColors"] = $28;
+$252["MozBorderBottomColors"] = $28;
+$253._dependentObjects = $254;
+$253._hashCode = $62;
+$253._themedEdges = $255;
+$253._defsX = $256;
+$253._defsY = $257;
+$253._valueTopWidth = $14;
+$253._needsCompilationTop = $12;
+$253._useEnhancedCrossBrowserMode = $19;
+$253._valueTopStyle = $241;
+$253._valueTopColor = $232;
+$253.classname = $156;
+$253._needsCompilationRight = $12;
+$253._needsCompilationBottom = $12;
+$253._needsCompilationLeft = $12;
+$253._properties = $157;
+$253._valueRightWidth = $48;
+$253._valueBottomWidth = $48;
+$253._valueLeftWidth = $48;
+$253._valueRightStyle = $6;
+$253._valueBottomStyle = $6;
+$253._valueLeftStyle = $6;
+$253._valueRightColor = $19;
+$253._valueBottomColor = $19;
+$253._valueLeftColor = $19;
+$253._valueEnabled = $12;
+$253._disposed = $13;
+$256["borderLeft"] = $28;
+$256["borderRight"] = $28;
+$256["MozBorderLeftColors"] = $28;
+$256["MozBorderRightColors"] = $28;
+$257["borderTop"] = $28;
+$257["borderBottom"] = $28;
+$257["MozBorderTopColors"] = $28;
+$257["MozBorderBottomColors"] = $28;
+$258._dependentObjects = $259;
+$258._hashCode = $260;
+$258._themedEdges = $261;
+$258._defsX = $262;
+$258._defsY = $263;
+$258._valueRightWidth = $14;
+$258._needsCompilationRight = $12;
+$258._useEnhancedCrossBrowserMode = $19;
+$258._valueRightStyle = $241;
+$258._valueRightColor = $232;
+$258.classname = $156;
+$258._needsCompilationTop = $12;
+$258._needsCompilationBottom = $12;
+$258._needsCompilationLeft = $12;
+$258._valueTopWidth = $48;
+$258._properties = $157;
+$258._valueBottomWidth = $48;
+$258._valueLeftWidth = $48;
+$258._valueTopStyle = $6;
+$258._valueBottomStyle = $6;
+$258._valueLeftStyle = $6;
+$258._valueTopColor = $19;
+$258._valueBottomColor = $19;
+$258._valueLeftColor = $19;
+$258._valueEnabled = $12;
+$258._disposed = $13;
+$262["borderLeft"] = $28;
+$262["borderRight"] = $28;
+$262["MozBorderLeftColors"] = $28;
+$262["MozBorderRightColors"] = $28;
+$263["borderTop"] = $28;
+$263["borderBottom"] = $28;
+$263["MozBorderTopColors"] = $28;
+$263["MozBorderBottomColors"] = $28;
+$264._dependentObjects = $265;
+$264._hashCode = $266;
+$264._themedEdges = $267;
+$264._defsX = $268;
+$264._defsY = $269;
+$264._valueLeftWidth = $14;
+$264._needsCompilationLeft = $12;
+$264._useEnhancedCrossBrowserMode = $19;
+$264._valueLeftStyle = $241;
+$264._valueLeftColor = $232;
+$264.classname = $156;
+$264._needsCompilationTop = $12;
+$264._needsCompilationRight = $12;
+$264._needsCompilationBottom = $12;
+$264._valueTopWidth = $48;
+$264._properties = $157;
+$264._valueRightWidth = $48;
+$264._valueBottomWidth = $48;
+$264._valueTopStyle = $6;
+$264._valueRightStyle = $6;
+$264._valueBottomStyle = $6;
+$264._valueTopColor = $19;
+$264._valueRightColor = $19;
+$264._valueBottomColor = $19;
+$264._valueEnabled = $12;
+$264._disposed = $13;
+$268["borderLeft"] = $28;
+$268["borderRight"] = $28;
+$268["MozBorderLeftColors"] = $28;
+$268["MozBorderRightColors"] = $28;
+$269["borderTop"] = $28;
+$269["borderBottom"] = $28;
+$269["MozBorderTopColors"] = $28;
+$269["MozBorderBottomColors"] = $28;
+$270._hashCode = $271;
+$270._themedEdges = $272;
+$270._defsX = $273;
+$270._defsY = $274;
+$270._valueTopWidth = $14;
+$270._needsCompilationTop = $12;
+$270._useEnhancedCrossBrowserMode = $19;
+$270._valueRightWidth = $14;
+$270._needsCompilationRight = $12;
+$270._valueBottomWidth = $17;
+$270._needsCompilationBottom = $12;
+$270._valueLeftWidth = $14;
+$270._needsCompilationLeft = $12;
+$270._valueTopStyle = $241;
+$270._valueRightStyle = $241;
+$270._valueBottomStyle = $241;
+$270._valueLeftStyle = $241;
+$270._valueTopColor = $232;
+$270._valueRightColor = $232;
+$270._valueBottomColor = $275;
+$270._valueLeftColor = $232;
+$270.classname = $246;
+$270._properties = $157;
+$270._valueEnabled = $12;
+$270._disposed = $13;
+$273["borderLeft"] = $28;
+$273["borderRight"] = $28;
+$273["MozBorderLeftColors"] = $28;
+$273["MozBorderRightColors"] = $28;
+$274["borderTop"] = $28;
+$274["borderBottom"] = $28;
+$274["MozBorderTopColors"] = $28;
+$274["MozBorderBottomColors"] = $28;
+$275._isHtmlColor = $13;
+$275._isRgbColor = $12;
+$275._isThemedColor = $13;
+$275._hex = $276;
+$275._red = $277;
+$275._green = $278;
+$275._blue = $279;
+$275._value = $276;
+$275._hashCode = $280;
+$275._dependentObjects = $281;
+$275.classname = $181;
+$275._manager = $182;
+$275._valueEnabled = $12;
+$275._properties = $46;
+$275._disposed = $13;
+$281["58"] = $270;
+$281["59"] = $282;
+$281["60"] = $287;
+$281["61"] = $291;
+$282._hashCode = $283;
+$282._themedEdges = $284;
+$282._defsX = $285;
+$282._defsY = $286;
+$282._valueTopWidth = $17;
+$282._needsCompilationTop = $12;
+$282._useEnhancedCrossBrowserMode = $19;
+$282._valueRightWidth = $14;
+$282._needsCompilationRight = $12;
+$282._valueBottomWidth = $14;
+$282._needsCompilationBottom = $12;
+$282._valueLeftWidth = $14;
+$282._needsCompilationLeft = $12;
+$282._valueTopStyle = $241;
+$282._valueRightStyle = $241;
+$282._valueBottomStyle = $241;
+$282._valueLeftStyle = $241;
+$282._valueTopColor = $275;
+$282._valueRightColor = $232;
+$282._valueBottomColor = $232;
+$282._valueLeftColor = $232;
+$282.classname = $246;
+$282._properties = $157;
+$282._valueEnabled = $12;
+$282._disposed = $13;
+$285["borderLeft"] = $28;
+$285["borderRight"] = $28;
+$285["MozBorderLeftColors"] = $28;
+$285["MozBorderRightColors"] = $28;
+$286["borderTop"] = $28;
+$286["borderBottom"] = $28;
+$286["MozBorderTopColors"] = $28;
+$286["MozBorderBottomColors"] = $28;
+$287._hashCode = $279;
+$287._themedEdges = $288;
+$287._defsX = $289;
+$287._defsY = $290;
+$287._valueTopWidth = $14;
+$287._needsCompilationTop = $12;
+$287._useEnhancedCrossBrowserMode = $19;
+$287._valueRightWidth = $17;
+$287._needsCompilationRight = $12;
+$287._valueBottomWidth = $14;
+$287._needsCompilationBottom = $12;
+$287._valueLeftWidth = $14;
+$287._needsCompilationLeft = $12;
+$287._valueTopStyle = $241;
+$287._valueRightStyle = $241;
+$287._valueBottomStyle = $241;
+$287._valueLeftStyle = $241;
+$287._valueTopColor = $232;
+$287._valueRightColor = $275;
+$287._valueBottomColor = $232;
+$287._valueLeftColor = $232;
+$287.classname = $246;
+$287._properties = $157;
+$287._valueEnabled = $12;
+$287._disposed = $13;
+$289["borderLeft"] = $28;
+$289["borderRight"] = $28;
+$289["MozBorderLeftColors"] = $28;
+$289["MozBorderRightColors"] = $28;
+$290["borderTop"] = $28;
+$290["borderBottom"] = $28;
+$290["MozBorderTopColors"] = $28;
+$290["MozBorderBottomColors"] = $28;
+$291._hashCode = $292;
+$291._themedEdges = $293;
+$291._defsX = $294;
+$291._defsY = $295;
+$291._valueTopWidth = $14;
+$291._needsCompilationTop = $12;
+$291._useEnhancedCrossBrowserMode = $19;
+$291._valueRightWidth = $14;
+$291._needsCompilationRight = $12;
+$291._valueBottomWidth = $14;
+$291._needsCompilationBottom = $12;
+$291._valueLeftWidth = $17;
+$291._needsCompilationLeft = $12;
+$291._valueTopStyle = $241;
+$291._valueRightStyle = $241;
+$291._valueBottomStyle = $241;
+$291._valueLeftStyle = $241;
+$291._valueTopColor = $232;
+$291._valueRightColor = $232;
+$291._valueBottomColor = $232;
+$291._valueLeftColor = $275;
+$291.classname = $246;
+$291._properties = $157;
+$291._valueEnabled = $12;
+$291._disposed = $13;
+$294["borderLeft"] = $28;
+$294["borderRight"] = $28;
+$294["MozBorderLeftColors"] = $28;
+$294["MozBorderRightColors"] = $28;
+$295["borderTop"] = $28;
+$295["borderBottom"] = $28;
+$295["MozBorderTopColors"] = $28;
+$295["MozBorderBottomColors"] = $28;
+$296._isHtmlColor = $13;
+$296._isRgbColor = $13;
+$296._isThemedColor = $12;
+$296._hex = $19;
+$296._blue = $19;
+$296._green = $19;
+$296._red = $19;
+$296._value = $297;
+$296._hashCode = $298;
+$296._dependentObjects = $299;
+$296.classname = $181;
+$296._manager = $182;
+$296._valueEnabled = $12;
+$296._properties = $46;
+$296._disposed = $13;
+$299["17"] = $188;
+$299["18"] = $145;
+$299["19"] = $195;
+$299["20"] = $202;
+$299["21"] = $208;
+$299["22"] = $214;
+$299["23"] = $220;
+$299["24"] = $226;
+$299["26"] = $300;
+$300._dependentObjects = $301;
+$300._hashCode = $302;
+$300._themedEdges = $303;
+$300._defsX = $304;
+$300._defsY = $305;
+$300._valueTopWidth = $14;
+$300._needsCompilationTop = $12;
+$300._useEnhancedCrossBrowserMode = $19;
+$300._valueRightWidth = $14;
+$300._needsCompilationRight = $12;
+$300._valueBottomWidth = $14;
+$300._needsCompilationBottom = $12;
+$300._valueLeftWidth = $14;
+$300._needsCompilationLeft = $12;
+$300._valueTopStyle = $241;
+$300._valueRightStyle = $241;
+$300._valueBottomStyle = $241;
+$300._valueLeftStyle = $241;
+$300._valueTopColor = $296;
+$300._valueRightColor = $296;
+$300._valueBottomColor = $296;
+$300._valueLeftColor = $296;
+$300.classname = $156;
+$300._properties = $157;
+$300._valueEnabled = $12;
+$300._disposed = $13;
+$304["borderLeft"] = $28;
+$304["borderRight"] = $28;
+$304["MozBorderLeftColors"] = $28;
+$304["MozBorderRightColors"] = $28;
+$305["borderTop"] = $28;
+$305["borderBottom"] = $28;
+$305["MozBorderTopColors"] = $28;
+$305["MozBorderBottomColors"] = $28;
+$306._isHtmlColor = $13;
+$306._isRgbColor = $13;
+$306._isThemedColor = $12;
+$306._hex = $19;
+$306._blue = $19;
+$306._green = $19;
+$306._red = $19;
+$306._value = $307;
+$306._hashCode = $159;
+$306._dependentObjects = $308;
+$306.classname = $181;
+$306._manager = $182;
+$306._valueEnabled = $12;
+$306._properties = $46;
+$306._disposed = $13;
+$308["17"] = $188;
+$308["18"] = $145;
+$308["19"] = $195;
+$308["20"] = $202;
+$308["21"] = $208;
+$308["22"] = $214;
+$308["23"] = $220;
+$308["24"] = $226;
+$309._isHtmlColor = $13;
+$309._isRgbColor = $13;
+$309._isThemedColor = $12;
+$309._hex = $19;
+$309._blue = $19;
+$309._green = $19;
+$309._red = $19;
+$309._value = $310;
+$309._hashCode = $311;
+$309._dependentObjects = $312;
+$309.classname = $181;
+$309._manager = $182;
+$309._valueEnabled = $12;
+$309._properties = $46;
+$309._disposed = $13;
+$312["27"] = $313;
+$313._dependentObjects = $314;
+$313._hashCode = $315;
+$313._themedEdges = $316;
+$313._defsX = $317;
+$313._defsY = $318;
+$313._valueTopWidth = $14;
+$313._needsCompilationTop = $12;
+$313._useEnhancedCrossBrowserMode = $19;
+$313._valueRightWidth = $14;
+$313._needsCompilationRight = $12;
+$313._valueBottomWidth = $14;
+$313._needsCompilationBottom = $12;
+$313._valueLeftWidth = $14;
+$313._needsCompilationLeft = $12;
+$313._valueTopStyle = $241;
+$313._valueRightStyle = $241;
+$313._valueBottomStyle = $241;
+$313._valueLeftStyle = $241;
+$313._valueTopColor = $309;
+$313._valueRightColor = $309;
+$313._valueBottomColor = $309;
+$313._valueLeftColor = $309;
+$313.classname = $156;
+$313._properties = $157;
+$313._valueEnabled = $12;
+$313._disposed = $13;
+$317["borderLeft"] = $28;
+$317["borderRight"] = $28;
+$317["MozBorderLeftColors"] = $28;
+$317["MozBorderRightColors"] = $28;
+$318["borderTop"] = $28;
+$318["borderBottom"] = $28;
+$318["MozBorderTopColors"] = $28;
+$318["MozBorderBottomColors"] = $28;
+$319._isHtmlColor = $13;
+$319._isRgbColor = $13;
+$319._isThemedColor = $12;
+$319._hex = $19;
+$319._blue = $19;
+$319._green = $19;
+$319._red = $19;
+$319._value = $320;
+$319._hashCode = $321;
+$319._dependentObjects = $322;
+$319.classname = $181;
+$319._manager = $182;
+$319._valueEnabled = $12;
+$319._properties = $46;
+$319._disposed = $13;
+$323._isHtmlColor = $13;
+$323._isRgbColor = $13;
+$323._isThemedColor = $12;
+$323._hex = $19;
+$323._blue = $19;
+$323._green = $19;
+$323._red = $19;
+$323._value = $324;
+$323._hashCode = $325;
+$323._dependentObjects = $326;
+$323.classname = $181;
+$323._manager = $182;
+$323._valueEnabled = $12;
+$323._properties = $46;
+$323._disposed = $13;
+$327._isHtmlColor = $13;
+$327._isRgbColor = $13;
+$327._isThemedColor = $12;
+$327._hex = $19;
+$327._blue = $19;
+$327._green = $19;
+$327._red = $19;
+$327._value = $328;
+$327._hashCode = $329;
+$327._dependentObjects = $330;
+$327.classname = $181;
+$327._manager = $182;
+$327._valueEnabled = $12;
+$327._properties = $46;
+$327._disposed = $13;
+$331._isHtmlColor = $13;
+$331._isRgbColor = $13;
+$331._isThemedColor = $12;
+$331._hex = $19;
+$331._blue = $19;
+$331._green = $19;
+$331._red = $19;
+$331._value = $332;
+$331._hashCode = $333;
+$331._dependentObjects = $334;
+$331.classname = $181;
+$331._manager = $182;
+$331._valueEnabled = $12;
+$331._properties = $46;
+$331._disposed = $13;
+$335._isHtmlColor = $13;
+$335._isRgbColor = $13;
+$335._isThemedColor = $12;
+$335._hex = $19;
+$335._blue = $19;
+$335._green = $19;
+$335._red = $19;
+$335._value = $336;
+$335._hashCode = $20;
+$335._dependentObjects = $337;
+$335.classname = $181;
+$335._manager = $182;
+$335._valueEnabled = $12;
+$335._properties = $46;
+$335._disposed = $13;
+$338._isHtmlColor = $13;
+$338._isRgbColor = $13;
+$338._isThemedColor = $12;
+$338._hex = $19;
+$338._blue = $19;
+$338._green = $19;
+$338._red = $19;
+$338._value = $339;
+$338._hashCode = $340;
+$338._dependentObjects = $341;
+$338.classname = $181;
+$338._manager = $182;
+$338._valueEnabled = $12;
+$338._properties = $46;
+$338._disposed = $13;
+$342._isHtmlColor = $13;
+$342._isRgbColor = $13;
+$342._isThemedColor = $12;
+$342._hex = $19;
+$342._blue = $19;
+$342._green = $19;
+$342._red = $19;
+$342._value = $343;
+$342._hashCode = $344;
+$342._dependentObjects = $345;
+$342.classname = $181;
+$342._manager = $182;
+$342._valueEnabled = $12;
+$342._properties = $46;
+$342._disposed = $13;
+$346._isHtmlColor = $13;
+$346._isRgbColor = $12;
+$346._isThemedColor = $13;
+$346._hex = $347;
+$346._red = $348;
+$346._green = $349;
+$346._blue = $350;
+$346._value = $347;
+$346._hashCode = $351;
+$346._dependentObjects = $352;
+$346.classname = $181;
+$346._manager = $182;
+$346._valueEnabled = $12;
+$346._properties = $46;
+$346._disposed = $13;
+$353._isHtmlColor = $13;
+$353._isRgbColor = $12;
+$353._isThemedColor = $13;
+$353._hex = $354;
+$353._red = $355;
+$353._green = $356;
+$353._blue = $277;
+$353._value = $354;
+$353._hashCode = $357;
+$353._dependentObjects = $358;
+$353.classname = $181;
+$353._manager = $182;
+$353._valueEnabled = $12;
+$353._properties = $46;
+$353._disposed = $13;
+$359._isHtmlColor = $13;
+$359._isRgbColor = $13;
+$359._isThemedColor = $12;
+$359._hex = $19;
+$359._blue = $19;
+$359._green = $19;
+$359._red = $19;
+$359._value = $360;
+$359._hashCode = $361;
+$359._dependentObjects = $362;
+$359.classname = $181;
+$359._manager = $182;
+$359._valueEnabled = $12;
+$359._properties = $46;
+$359._disposed = $13;
+$362["64"] = $96;
+$363._isHtmlColor = $13;
+$363._isRgbColor = $13;
+$363._isThemedColor = $12;
+$363._hex = $19;
+$363._blue = $19;
+$363._green = $19;
+$363._red = $19;
+$363._value = $364;
+$363._hashCode = $365;
+$363._dependentObjects = $366;
+$363.classname = $181;
+$363._manager = $182;
+$363._valueEnabled = $12;
+$363._properties = $46;
+$363._disposed = $13;
+$366["64"] = $96;
+$367["systemDefault"] = $368;
+$367["windowsRoyale"] = $388;
+$367["windowsClassic"] = $442;
+$367["windowsLunaBlue"] = $478;
+$367["windowsLunaGreen"] = $529;
+$367["windowsLunaSilver"] = $572;
+$368._hashCode = $154;
+$368._valueId = $369;
+$368._valueTitle = $370;
+$368._colors = $371;
+$368._compiledColors = $372;
+$368._needsCompilation = $13;
+$368.classname = $386;
+$368._properties = $387;
+$368._manager = $182;
+$368._valueEnabled = $12;
+$368._disposed = $13;
+$372["activeborder"] = $373;
+$372["activecaption"] = $339;
+$372["appworkspace"] = $374;
+$372["background"] = $375;
+$372["buttonface"] = $9;
+$372["buttonhighlight"] = $376;
+$372["buttonshadow"] = $377;
+$372["buttontext"] = $378;
+$372["captiontext"] = $343;
+$372["graytext"] = $320;
+$372["highlight"] = $324;
+$372["highlighttext"] = $328;
+$372["inactiveborder"] = $379;
+$372["inactivecaption"] = $332;
+$372["inactivecaptiontext"] = $336;
+$372["infobackground"] = $380;
+$372["infotext"] = $310;
+$372["menu"] = $381;
+$372["menutext"] = $382;
+$372["scrollbar"] = $383;
+$372["threeddarkshadow"] = $185;
+$372["threedface"] = $360;
+$372["threedhighlight"] = $307;
+$372["threedlightshadow"] = $297;
+$372["threedshadow"] = $233;
+$372["window"] = $384;
+$372["windowframe"] = $385;
+$372["windowtext"] = $364;
+$388._hashCode = $17;
+$388._valueId = $389;
+$388._valueTitle = $390;
+$388._colors = $391;
+$388._compiledColors = $441;
+$388.classname = $386;
+$388._properties = $387;
+$388._manager = $182;
+$388._needsCompilation = $12;
+$388._valueEnabled = $12;
+$388._disposed = $13;
+$391["activeborder"] = $392;
+$391["activecaption"] = $395;
+$391["appworkspace"] = $399;
+$391["background"] = $401;
+$391["buttonface"] = $403;
+$391["buttonhighlight"] = $407;
+$391["buttonshadow"] = $408;
+$391["buttontext"] = $412;
+$391["captiontext"] = $413;
+$391["graytext"] = $414;
+$391["highlight"] = $415;
+$391["highlighttext"] = $416;
+$391["inactiveborder"] = $417;
+$391["inactivecaption"] = $418;
+$391["inactivecaptiontext"] = $422;
+$391["infobackground"] = $423;
+$391["infotext"] = $424;
+$391["menu"] = $425;
+$391["menutext"] = $426;
+$391["scrollbar"] = $427;
+$391["threeddarkshadow"] = $428;
+$391["threedface"] = $432;
+$391["threedhighlight"] = $433;
+$391["threedlightshadow"] = $434;
+$391["threedshadow"] = $437;
+$391["window"] = $438;
+$391["windowframe"] = $439;
+$391["windowtext"] = $440;
+$392[0] = $393;
+$392[1] = $394;
+$392[2] = $278;
+$395[0] = $396;
+$395[1] = $397;
+$395[2] = $398;
+$399[0] = $400;
+$399[1] = $400;
+$399[2] = $400;
+$401[0] = $48;
+$401[1] = $48;
+$401[2] = $402;
+$403[0] = $404;
+$403[1] = $405;
+$403[2] = $406;
+$407[0] = $350;
+$407[1] = $350;
+$407[2] = $350;
+$408[0] = $409;
+$408[1] = $410;
+$408[2] = $411;
+$412[0] = $48;
+$412[1] = $48;
+$412[2] = $48;
+$413[0] = $350;
+$413[1] = $350;
+$413[2] = $350;
+$414[0] = $409;
+$414[1] = $410;
+$414[2] = $411;
+$415[0] = $396;
+$415[1] = $397;
+$415[2] = $398;
+$416[0] = $350;
+$416[1] = $350;
+$416[2] = $350;
+$417[0] = $393;
+$417[1] = $394;
+$417[2] = $278;
+$418[0] = $419;
+$418[1] = $420;
+$418[2] = $421;
+$422[0] = $350;
+$422[1] = $350;
+$422[2] = $350;
+$423[0] = $350;
+$423[1] = $350;
+$423[2] = $348;
+$424[0] = $48;
+$424[1] = $48;
+$424[2] = $48;
+$425[0] = $350;
+$425[1] = $350;
+$425[2] = $350;
+$426[0] = $48;
+$426[1] = $48;
+$426[2] = $48;
+$427[0] = $393;
+$427[1] = $394;
+$427[2] = $278;
+$428[0] = $429;
+$428[1] = $430;
+$428[2] = $431;
+$432[0] = $404;
+$432[1] = $405;
+$432[2] = $406;
+$433[0] = $350;
+$433[1] = $350;
+$433[2] = $350;
+$434[0] = $144;
+$434[1] = $435;
+$434[2] = $436;
+$437[0] = $409;
+$437[1] = $410;
+$437[2] = $411;
+$438[0] = $350;
+$438[1] = $350;
+$438[2] = $350;
+$439[0] = $48;
+$439[1] = $48;
+$439[2] = $48;
+$440[0] = $48;
+$440[1] = $48;
+$440[2] = $48;
+$442._hashCode = $15;
+$442._valueId = $443;
+$442._valueTitle = $444;
+$442._colors = $445;
+$442._compiledColors = $477;
+$442.classname = $386;
+$442._properties = $387;
+$442._manager = $182;
+$442._needsCompilation = $12;
+$442._valueEnabled = $12;
+$442._disposed = $13;
+$445["activeborder"] = $446;
+$445["activecaption"] = $447;
+$445["appworkspace"] = $449;
+$445["background"] = $450;
+$445["buttonface"] = $453;
+$445["buttonhighlight"] = $454;
+$445["buttonshadow"] = $455;
+$445["buttontext"] = $456;
+$445["captiontext"] = $457;
+$445["graytext"] = $458;
+$445["highlight"] = $459;
+$445["highlighttext"] = $460;
+$445["inactiveborder"] = $461;
+$445["inactivecaption"] = $462;
+$445["inactivecaptiontext"] = $463;
+$445["infobackground"] = $464;
+$445["infotext"] = $465;
+$445["menu"] = $466;
+$445["menutext"] = $467;
+$445["scrollbar"] = $468;
+$445["threeddarkshadow"] = $469;
+$445["threedface"] = $470;
+$445["threedhighlight"] = $471;
+$445["threedlightshadow"] = $472;
+$445["threedshadow"] = $473;
+$445["window"] = $474;
+$445["windowframe"] = $475;
+$445["windowtext"] = $476;
+$446[0] = $393;
+$446[1] = $394;
+$446[2] = $278;
+$447[0] = $160;
+$447[1] = $325;
+$447[2] = $448;
+$449[0] = $400;
+$449[1] = $400;
+$449[2] = $400;
+$450[0] = $271;
+$450[1] = $451;
+$450[2] = $452;
+$453[0] = $393;
+$453[1] = $394;
+$453[2] = $278;
+$454[0] = $350;
+$454[1] = $350;
+$454[2] = $350;
+$455[0] = $400;
+$455[1] = $400;
+$455[2] = $400;
+$456[0] = $48;
+$456[1] = $48;
+$456[2] = $48;
+$457[0] = $350;
+$457[1] = $350;
+$457[2] = $350;
+$458[0] = $400;
+$458[1] = $400;
+$458[2] = $400;
+$459[0] = $160;
+$459[1] = $325;
+$459[2] = $448;
+$460[0] = $350;
+$460[1] = $350;
+$460[2] = $350;
+$461[0] = $393;
+$461[1] = $394;
+$461[2] = $278;
+$462[0] = $400;
+$462[1] = $400;
+$462[2] = $400;
+$463[0] = $393;
+$463[1] = $394;
+$463[2] = $278;
+$464[0] = $350;
+$464[1] = $350;
+$464[2] = $348;
+$465[0] = $48;
+$465[1] = $48;
+$465[2] = $48;
+$466[0] = $393;
+$466[1] = $394;
+$466[2] = $278;
+$467[0] = $48;
+$467[1] = $48;
+$467[2] = $48;
+$468[0] = $393;
+$468[1] = $394;
+$468[2] = $278;
+$469[0] = $402;
+$469[1] = $402;
+$469[2] = $402;
+$470[0] = $393;
+$470[1] = $394;
+$470[2] = $278;
+$471[0] = $350;
+$471[1] = $350;
+$471[2] = $350;
+$472[0] = $393;
+$472[1] = $394;
+$472[2] = $278;
+$473[0] = $400;
+$473[1] = $400;
+$473[2] = $400;
+$474[0] = $350;
+$474[1] = $350;
+$474[2] = $350;
+$475[0] = $48;
+$475[1] = $48;
+$475[2] = $48;
+$476[0] = $48;
+$476[1] = $48;
+$476[2] = $48;
+$478._hashCode = $479;
+$478._valueId = $480;
+$478._valueTitle = $481;
+$478._colors = $482;
+$478._compiledColors = $528;
+$478.classname = $386;
+$478._properties = $387;
+$478._manager = $182;
+$478._needsCompilation = $12;
+$478._valueEnabled = $12;
+$478._disposed = $13;
+$482["activeborder"] = $483;
+$482["activecaption"] = $484;
+$482["appworkspace"] = $487;
+$482["background"] = $488;
+$482["buttonface"] = $490;
+$482["buttonhighlight"] = $493;
+$482["buttonshadow"] = $494;
+$482["buttontext"] = $497;
+$482["captiontext"] = $498;
+$482["graytext"] = $499;
+$482["highlight"] = $500;
+$482["highlighttext"] = $503;
+$482["inactiveborder"] = $504;
+$482["inactivecaption"] = $505;
+$482["inactivecaptiontext"] = $508;
+$482["infobackground"] = $510;
+$482["infotext"] = $511;
+$482["menu"] = $512;
+$482["menutext"] = $513;
+$482["scrollbar"] = $514;
+$482["threeddarkshadow"] = $515;
+$482["threedface"] = $518;
+$482["threedhighlight"] = $519;
+$482["threedlightshadow"] = $520;
+$482["threedshadow"] = $524;
+$482["window"] = $525;
+$482["windowframe"] = $526;
+$482["windowtext"] = $527;
+$483[0] = $393;
+$483[1] = $394;
+$483[2] = $278;
+$484[0] = $48;
+$484[1] = $485;
+$484[2] = $486;
+$487[0] = $400;
+$487[1] = $400;
+$487[2] = $400;
+$488[0] = $48;
+$488[1] = $25;
+$488[2] = $489;
+$490[0] = $491;
+$490[1] = $405;
+$490[2] = $492;
+$493[0] = $350;
+$493[1] = $350;
+$493[2] = $350;
+$494[0] = $495;
+$494[1] = $398;
+$494[2] = $496;
+$497[0] = $48;
+$497[1] = $48;
+$497[2] = $48;
+$498[0] = $350;
+$498[1] = $350;
+$498[2] = $350;
+$499[0] = $495;
+$499[1] = $398;
+$499[2] = $496;
+$500[0] = $501;
+$500[1] = $448;
+$500[2] = $502;
+$503[0] = $350;
+$503[1] = $350;
+$503[2] = $350;
+$504[0] = $393;
+$504[1] = $394;
+$504[2] = $278;
+$505[0] = $506;
+$505[1] = $507;
+$505[2] = $435;
+$508[0] = $492;
+$508[1] = $436;
+$508[2] = $509;
+$510[0] = $350;
+$510[1] = $350;
+$510[2] = $348;
+$511[0] = $48;
+$511[1] = $48;
+$511[2] = $48;
+$512[0] = $350;
+$512[1] = $350;
+$512[2] = $350;
+$513[0] = $48;
+$513[1] = $48;
+$513[2] = $48;
+$514[0] = $393;
+$514[1] = $394;
+$514[2] = $278;
+$515[0] = $516;
+$515[1] = $419;
+$515[2] = $517;
+$518[0] = $491;
+$518[1] = $405;
+$518[2] = $492;
+$519[0] = $350;
+$519[1] = $350;
+$519[2] = $350;
+$520[0] = $521;
+$520[1] = $522;
+$520[2] = $523;
+$524[0] = $495;
+$524[1] = $398;
+$524[2] = $496;
+$525[0] = $350;
+$525[1] = $350;
+$525[2] = $350;
+$526[0] = $48;
+$526[1] = $48;
+$526[2] = $48;
+$527[0] = $48;
+$527[1] = $48;
+$527[2] = $48;
+$529._hashCode = $530;
+$529._valueId = $531;
+$529._valueTitle = $532;
+$529._colors = $533;
+$529._compiledColors = $571;
+$529.classname = $386;
+$529._properties = $387;
+$529._manager = $182;
+$529._needsCompilation = $12;
+$529._valueEnabled = $12;
+$529._disposed = $13;
+$533["activeborder"] = $534;
+$533["activecaption"] = $535;
+$533["appworkspace"] = $538;
+$533["background"] = $539;
+$533["buttonface"] = $542;
+$533["buttonhighlight"] = $543;
+$533["buttonshadow"] = $544;
+$533["buttontext"] = $545;
+$533["captiontext"] = $546;
+$533["graytext"] = $547;
+$533["highlight"] = $548;
+$533["highlighttext"] = $552;
+$533["inactiveborder"] = $553;
+$533["inactivecaption"] = $554;
+$533["inactivecaptiontext"] = $557;
+$533["infobackground"] = $558;
+$533["infotext"] = $559;
+$533["menu"] = $560;
+$533["menutext"] = $561;
+$533["scrollbar"] = $562;
+$533["threeddarkshadow"] = $563;
+$533["threedface"] = $564;
+$533["threedhighlight"] = $565;
+$533["threedlightshadow"] = $566;
+$533["threedshadow"] = $567;
+$533["window"] = $568;
+$533["windowframe"] = $569;
+$533["windowtext"] = $570;
+$534[0] = $393;
+$534[1] = $394;
+$534[2] = $278;
+$535[0] = $536;
+$535[1] = $420;
+$535[2] = $537;
+$538[0] = $400;
+$538[1] = $400;
+$538[2] = $400;
+$539[0] = $540;
+$539[1] = $495;
+$539[2] = $541;
+$542[0] = $491;
+$542[1] = $405;
+$542[2] = $492;
+$543[0] = $350;
+$543[1] = $350;
+$543[2] = $350;
+$544[0] = $495;
+$544[1] = $398;
+$544[2] = $496;
+$545[0] = $48;
+$545[1] = $48;
+$545[2] = $48;
+$546[0] = $350;
+$546[1] = $350;
+$546[2] = $350;
+$547[0] = $495;
+$547[1] = $398;
+$547[2] = $496;
+$548[0] = $549;
+$548[1] = $550;
+$548[2] = $551;
+$552[0] = $350;
+$552[1] = $350;
+$552[2] = $350;
+$553[0] = $393;
+$553[1] = $394;
+$553[2] = $278;
+$554[0] = $393;
+$554[1] = $555;
+$554[2] = $556;
+$557[0] = $350;
+$557[1] = $350;
+$557[2] = $350;
+$558[0] = $350;
+$558[1] = $350;
+$558[2] = $348;
+$559[0] = $48;
+$559[1] = $48;
+$559[2] = $48;
+$560[0] = $350;
+$560[1] = $350;
+$560[2] = $350;
+$561[0] = $48;
+$561[1] = $48;
+$561[2] = $48;
+$562[0] = $393;
+$562[1] = $394;
+$562[2] = $278;
+$563[0] = $516;
+$563[1] = $419;
+$563[2] = $517;
+$564[0] = $491;
+$564[1] = $405;
+$564[2] = $492;
+$565[0] = $350;
+$565[1] = $350;
+$565[2] = $350;
+$566[0] = $521;
+$566[1] = $522;
+$566[2] = $523;
+$567[0] = $495;
+$567[1] = $398;
+$567[2] = $496;
+$568[0] = $350;
+$568[1] = $350;
+$568[2] = $350;
+$569[0] = $48;
+$569[1] = $48;
+$569[2] = $48;
+$570[0] = $48;
+$570[1] = $48;
+$570[2] = $48;
+$572._hashCode = $573;
+$572._valueId = $574;
+$572._valueTitle = $575;
+$572._colors = $576;
+$572._compiledColors = $615;
+$572.classname = $386;
+$572._properties = $387;
+$572._manager = $182;
+$572._needsCompilation = $12;
+$572._valueEnabled = $12;
+$572._disposed = $13;
+$576["activeborder"] = $577;
+$576["activecaption"] = $578;
+$576["appworkspace"] = $580;
+$576["background"] = $581;
+$576["buttonface"] = $584;
+$576["buttonhighlight"] = $586;
+$576["buttonshadow"] = $587;
+$576["buttontext"] = $588;
+$576["captiontext"] = $589;
+$576["graytext"] = $592;
+$576["highlight"] = $593;
+$576["highlighttext"] = $597;
+$576["inactiveborder"] = $598;
+$576["inactivecaption"] = $599;
+$576["inactivecaptiontext"] = $600;
+$576["infobackground"] = $602;
+$576["infotext"] = $603;
+$576["menu"] = $604;
+$576["menutext"] = $605;
+$576["scrollbar"] = $606;
+$576["threeddarkshadow"] = $607;
+$576["threedface"] = $608;
+$576["threedhighlight"] = $609;
+$576["threedlightshadow"] = $610;
+$576["threedshadow"] = $611;
+$576["window"] = $612;
+$576["windowframe"] = $613;
+$576["windowtext"] = $614;
+$577[0] = $393;
+$577[1] = $394;
+$577[2] = $278;
+$578[0] = $579;
+$578[1] = $579;
+$578[2] = $579;
+$580[0] = $400;
+$580[1] = $400;
+$580[2] = $400;
+$581[0] = $124;
+$581[1] = $582;
+$581[2] = $583;
+$584[0] = $585;
+$584[1] = $435;
+$584[2] = $486;
+$586[0] = $350;
+$586[1] = $350;
+$586[2] = $350;
+$587[0] = $540;
+$587[1] = $540;
+$587[2] = $420;
+$588[0] = $48;
+$588[1] = $48;
+$588[2] = $48;
+$589[0] = $590;
+$589[1] = $591;
+$589[2] = $591;
+$592[0] = $495;
+$592[1] = $398;
+$592[2] = $496;
+$593[0] = $594;
+$593[1] = $595;
+$593[2] = $596;
+$597[0] = $48;
+$597[1] = $48;
+$597[2] = $48;
+$598[0] = $393;
+$598[1] = $394;
+$598[2] = $278;
+$599[0] = $350;
+$599[1] = $350;
+$599[2] = $350;
+$600[0] = $601;
+$600[1] = $420;
+$600[2] = $420;
+$602[0] = $350;
+$602[1] = $350;
+$602[2] = $348;
+$603[0] = $48;
+$603[1] = $48;
+$603[2] = $48;
+$604[0] = $350;
+$604[1] = $350;
+$604[2] = $350;
+$605[0] = $48;
+$605[1] = $48;
+$605[2] = $48;
+$606[0] = $393;
+$606[1] = $394;
+$606[2] = $278;
+$607[0] = $516;
+$607[1] = $419;
+$607[2] = $517;
+$608[0] = $585;
+$608[1] = $435;
+$608[2] = $486;
+$609[0] = $350;
+$609[1] = $350;
+$609[2] = $350;
+$610[0] = $521;
+$610[1] = $522;
+$610[2] = $523;
+$611[0] = $540;
+$611[1] = $540;
+$611[2] = $420;
+$612[0] = $350;
+$612[1] = $350;
+$612[2] = $350;
+$613[0] = $48;
+$613[1] = $48;
+$613[2] = $48;
+$614[0] = $48;
+$614[1] = $48;
+$614[2] = $48;
+$616["threeddarkshadow"] = $184;
+$616["threedshadow"] = $232;
+$616["threedlightshadow"] = $296;
+$616["threedhighlight"] = $306;
+$616["infotext"] = $309;
+$616["graytext"] = $319;
+$616["buttonface"] = $97;
+$616["highlight"] = $323;
+$616["highlighttext"] = $327;
+$616["inactivecaption"] = $331;
+$616["inactivecaptiontext"] = $335;
+$616["activecaption"] = $338;
+$616["captiontext"] = $342;
+$616["threedface"] = $359;
+$616["windowtext"] = $363;
+$619[0] = $24;
+$619[1] = $54;
+});
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CookieStorage_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CookieStorage_1.html
new file mode 100644 (file)
index 0000000..cb6df85
--- /dev/null
@@ -0,0 +1,45 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for qx.io.local.CookieApi.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var f1 = new qx.ui.form.TextField;
+    f1.setLocation(20, 48);
+    qx.ui.core.ClientDocument.getInstance().add(f1);
+
+    var b1 = new qx.ui.form.Button("Restore");
+    b1.setLocation(20, 80);
+    qx.ui.core.ClientDocument.getInstance().add(b1);
+
+    var b2 = new qx.ui.form.Button("Save");
+    b2.setLocation(80, 80);
+    qx.ui.core.ClientDocument.getInstance().add(b2);
+
+
+
+    b1.addEventListener("execute", function(e) {
+      f1.setValue(qx.io.local.CookieTransport.get("fieldContent"));
+    });
+
+    b2.addEventListener("execute", function(e) {
+      qx.io.local.CookieTransport.set("fieldContent", f1.getValue());
+    });
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CookieStorage_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CookieStorage_2.html
new file mode 100644 (file)
index 0000000..e22c5b6
--- /dev/null
@@ -0,0 +1,67 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for qx.io.local.CookieTransport API.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var vAll = [];
+    var vNum = 20;
+
+    for (var i=0; i<vNum; i++)
+    {
+      var f1 = new qx.ui.form.TextField;
+      f1.setLocation(20, 48+(i*22));
+      qx.ui.core.ClientDocument.getInstance().add(f1);
+      vAll.push(f1);
+    };
+
+    var b1 = new qx.ui.form.Button("Restore");
+    b1.setLocation(220, 48);
+    qx.ui.core.ClientDocument.getInstance().add(b1);
+
+    var b2 = new qx.ui.form.Button("Save");
+    b2.setLocation(280, 48);
+    qx.ui.core.ClientDocument.getInstance().add(b2);
+
+    var b3 = new qx.ui.form.Button("Clear");
+    b3.setLocation(340, 48);
+    qx.ui.core.ClientDocument.getInstance().add(b3);
+
+
+
+    b1.addEventListener("execute", function(e)
+    {
+      for (var i=0; i<vAll.length; i++) {
+        var vIn = qx.io.local.CookieTransport.get("fieldContent" + i);
+        vAll[i].setValue(vIn);
+      };
+    });
+
+    b2.addEventListener("execute", function(e)
+    {
+      for (var i=0; i<vAll.length; i++) {
+        qx.io.local.CookieTransport.set("fieldContent" + i, vAll[i].getValue());
+      };
+    });
+
+    b3.addEventListener("execute", function(e) {
+      qx.io.local.CookieTransport.delAll();
+    });
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Cookie_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Cookie_1.html
new file mode 100644 (file)
index 0000000..1b3f83f
--- /dev/null
@@ -0,0 +1,45 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for qx.io.local.CookieApi.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var f1 = new qx.ui.form.TextField;
+    f1.setLocation(20, 48);
+    qx.ui.core.ClientDocument.getInstance().add(f1);
+
+    var b1 = new qx.ui.form.Button("Restore");
+    b1.setLocation(20, 80);
+    qx.ui.core.ClientDocument.getInstance().add(b1);
+
+    var b2 = new qx.ui.form.Button("Save");
+    b2.setLocation(80, 80);
+    qx.ui.core.ClientDocument.getInstance().add(b2);
+
+
+
+    b1.addEventListener("execute", function(e) {
+      f1.setValue(qx.io.local.CookieApi.get("fieldContent"));
+    });
+
+    b2.addEventListener("execute", function(e) {
+      qx.io.local.CookieApi.set("fieldContent", f1.getValue());
+    });
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CrossBrowser_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CrossBrowser_1.html
new file mode 100644 (file)
index 0000000..aa0ce0f
--- /dev/null
@@ -0,0 +1,166 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <fieldset style="padding:3px; background-color:#fff; text-align:right"><legend style="color:red">Outer</legend>
+    <span style="color:blue; font-style:italic">Margin</span>
+    <fieldset style="margin:3px 10px; padding:3px 10px; background-color:#bbb"><legend style="color:red">Box</legend>
+    <span style="color:blue; font-style:italic">Inset (Border + Scrollbar)</span>
+    <fieldset style="margin:3px 10px; padding:3px 10px; background-color:#999"><legend style="color:red">Area</legend>
+    <span style="color:blue; font-style:italic">Padding</span>
+    <fieldset style="margin:3px 10px; padding:3px 10px; background-color:#666"><legend style="color:red">Inner</legend>
+    </fieldset>
+    </fieldset>
+    </fieldset>
+    </fieldset>
+  </div>
+
+  <div style="margin-left:200px;margin-right:400px; margin-top: 30px;">
+Mit seiner Aufnahme in die Elite war Knechts Leben auf eine andre Ebene verpflanzt, es war der erste und entscheidende Schritt in seiner Entwicklung geschehen. Es geht durchaus nicht allen Elitesch�lern so, da� die amtliche Aufnahme in die Elite mit dem innern Erlebnis der Berufung zusammenf�llt. Das ist Gnade, oder wenn man es banal ausdr�cken will: es ist ein Gl�cksfall. Wem er begegnet, dessen Leben hat ein Plus, so wie der ein Plus besitzt, dem ein Gl�cksfall besonders gl�ckliche Gaben an Leib und See le mitgegeben hat. Die meisten Elitesch�ler, ja beinahe alle, empfinden zwar ihre Wahl als ein gro�es Gl�ck, als eine Auszeichnung, auf die sie stolz sind, und sehr viele von ihnen haben sich auch diese Auszeichnung vorher gl�hend erw�nscht. Aber der ï¿½bergang von der gew�hnlichen heimatlichen Schule in die Schulen von Kastalien f�llt den meisten Auserw�hlten dann doch schwerer, als sie gedacht h�tten, und bringt manchen unerwartete Entt�uschungen. Vor allem ist der ï¿½bergang f�r alle jene Sch�ler, die in i hrem Elternhaus gl�cklich und geliebt waren, ein sehr schwerer Abschied und Verzicht, und so kommt denn auch, namentlich w�hrend der beiden ersten Elitejahre, eine nicht unbetr�chtliche Zahl von R�ckversetzungen vor, deren Grund nicht ein Mangel an Begabung und Flei�, sondern Unf�higkeit der Sch�ler ist, sich mit dem Internatsleben und vor allem mit dem Gedanken zu vers�hnen, k�nftig die Verbindung mit Familie und Heimat immer mehr zu l�sen und schlie�lich keine andre Zugeh�rigkeit mehr zu kennen und zu r espektieren als die zum Orden. Dann gibt es je und je auch Sch�ler, welchen umgekehrt gerade das Loskommen vom Vaterhaus und von einer ihnen entleideten Schule die Hauptsache bei ihrer Aufnahme in die Elite war; diese, etwa von einem strengen Vater oder einem ihnen unangenehmen Lehrer befreit, atmeten zwar eine Weile auf, hatten sich aber von dem Wechsel so gro�e und unm�gliche Ver�nderungen ihres ganzen Lebens versprochen, da� bald eine Entt�uschung kam. Auch die eigentlichen Streber und Mustersch�ler, d i! e Pedantischen, konnten sich in Kastalien nicht immer halten; nicht da� sie den Studien nicht w�ren gewachsen gewesen, aber es kam in der Elite eben nicht allein auf die Studien und Fachzeugnisse an, sondern es wurden auch erzieherische und musische Ziele angestrebt, vor welchen dieser und jener die Waffen streckte. Immerhin war in dem System der vier gro�en Eliteschulen mit ihren zahlreichen Unterabteilungen und Zweiganstalten Raum f�r vielerlei Begabungen, und ein strebsamer Mathematiker oder Philologe, wenn er wirklich das Zeug zu einem Gelehrten in sich hatte, brauchte etwa einen Mangel an musikalischer oder philosophischer Begabung nicht als Gefahr zu empfinden. Es gab zuzeiten sogar in Kastalien sehr starke Tendenzen zur Pflege der reinen, n�chternen Fachwissenschaften, und die Vork�mpfer dieser Tendenzen waren nicht nur gegen die ï¿½Phantasten�, das hei�t gegen die Musikalischen und Musischen, kritisch und spottlustig gestimmt, sondern haben zuzeiten innerhalb ihrer Kreise alles Musische, und namentl ich das Glasperlenspiel, geradezu abgeschworen und verp�nt.Da Knechts Leben, soweit es uns bekannt ist, sich ganz in Kastalien abspielte, in jenem stillsten und heitersten Bezirk unseres gebirgigen Landes, den man fr�her mit einem Ausdruck des Dichters Goethe oft auch ï¿½die p�dagogische Provinz� genannt hat, wollen wir in aller K�rze und auf die Gefahr hin, den Leser mit L�ngstgewu�tem zu langweilen, nochmals dies ber�hmte Kastalien.
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var w1 = new qx.ui.basic.Terminator;
+
+      with(w1)
+      {
+        setHeight(100);
+        setWidth(100);
+        setTop(48);
+        setLeft(20);
+        setBackgroundColor("orange");
+        setStyleProperty("padding", "5px");
+        setStyleProperty("margin", "10px");
+        setBorder(new qx.renderer.border.Border(2, "solid", "blue"));
+        setOverflow("scroll");
+      };
+
+      d.add(w1);
+
+      w1.addEventListener("initialShow", function(e)
+      {
+        QxDebug("Properties", "getComputedMarginLeft: " + w1.getComputedMarginLeft());
+        QxDebug("Properties", "getComputedMarginTop: " + w1.getComputedMarginTop());
+        QxDebug("Properties", "getComputedMarginRight: " + w1.getComputedMarginRight());
+        QxDebug("Properties", "getComputedMarginBottom: " + w1.getComputedMarginBottom());
+
+        QxDebug("Properties", "getComputedPaddingLeft: " + w1.getComputedPaddingLeft());
+        QxDebug("Properties", "getComputedPaddingTop: " + w1.getComputedPaddingTop());
+        QxDebug("Properties", "getComputedPaddingRight: " + w1.getComputedPaddingRight());
+        QxDebug("Properties", "getComputedPaddingBottom: " + w1.getComputedPaddingBottom());
+
+        QxDebug("Properties", "getComputedBorderLeft: " + w1.getComputedBorderLeft());
+        QxDebug("Properties", "getComputedBorderTop: " + w1.getComputedBorderTop());
+        QxDebug("Properties", "getComputedBorderRight: " + w1.getComputedBorderRight());
+        QxDebug("Properties", "getComputedBorderBottom: " + w1.getComputedBorderBottom());
+
+        QxDebug("Dimensions", "getComputedOuterWidth: " + w1.getComputedOuterWidth());
+        QxDebug("Dimensions", "getComputedOuterHeight: " + w1.getComputedOuterHeight());
+
+        QxDebug("Dimensions", "getComputedBoxWidth: " + w1.getComputedBoxWidth());
+        QxDebug("Dimensions", "getComputedBoxHeight: " + w1.getComputedBoxHeight());
+
+        QxDebug("Dimensions", "getComputedAreaWidth: " + w1.getComputedAreaWidth());
+        QxDebug("Dimensions", "getComputedAreaHeight: " + w1.getComputedAreaHeight());
+
+        QxDebug("Dimensions", "getComputedInnerWidth: " + w1.getComputedInnerWidth());
+        QxDebug("Dimensions", "getComputedInnerHeight: " + w1.getComputedInnerHeight());
+
+        QxDebug("Insets", "getComputedInsetLeft: " + w1.getComputedInsetLeft());
+        QxDebug("Insets", "getComputedInsetTop: " + w1.getComputedInsetTop());
+        QxDebug("Insets", "getComputedInsetRight: " + w1.getComputedInsetRight());
+        QxDebug("Insets", "getComputedInsetBottom: " + w1.getComputedInsetBottom());
+
+        QxDebug("Scroll", "getComputedScrollBarSizeLeft: " + w1.getComputedScrollBarSizeLeft());
+        QxDebug("Scroll", "getComputedScrollBarSizeTop: " + w1.getComputedScrollBarSizeTop());
+        QxDebug("Scroll", "getComputedScrollBarSizeRight: " + w1.getComputedScrollBarSizeRight());
+        QxDebug("Scroll", "getComputedScrollBarSizeBottom: " + w1.getComputedScrollBarSizeBottom());
+
+        QxDebug("Scroll", "getComputedScrollBarVisibleX: " + w1.getComputedScrollBarVisibleX());
+        QxDebug("Scroll", "getComputedScrollBarVisibleY: " + w1.getComputedScrollBarVisibleY());
+
+
+
+        QxDebug("Positions->Client", "getComputedClientOuterLeft: " + w1.getComputedClientOuterLeft());
+        QxDebug("Positions->Client", "getComputedClientOuterTop: " + w1.getComputedClientOuterTop());
+        QxDebug("Positions->Client", "getComputedClientOuterRight: " + w1.getComputedClientOuterRight());
+        QxDebug("Positions->Client", "getComputedClientOuterBottom: " + w1.getComputedClientOuterBottom());
+
+        QxDebug("Positions->Client", "getComputedClientBoxLeft: " + w1.getComputedClientBoxLeft());
+        QxDebug("Positions->Client", "getComputedClientBoxTop: " + w1.getComputedClientBoxTop());
+        QxDebug("Positions->Client", "getComputedClientBoxRight: " + w1.getComputedClientBoxRight());
+        QxDebug("Positions->Client", "getComputedClientBoxBottom: " + w1.getComputedClientBoxBottom());
+
+        QxDebug("Positions->Client", "getComputedClientAreaLeft: " + w1.getComputedClientAreaLeft());
+        QxDebug("Positions->Client", "getComputedClientAreaTop: " + w1.getComputedClientAreaTop());
+        QxDebug("Positions->Client", "getComputedClientAreaRight: " + w1.getComputedClientAreaRight());
+        QxDebug("Positions->Client", "getComputedClientAreaBottom: " + w1.getComputedClientAreaBottom());
+
+        QxDebug("Positions->Client", "getComputedClientInnerLeft: " + w1.getComputedClientInnerLeft());
+        QxDebug("Positions->Client", "getComputedClientInnerTop: " + w1.getComputedClientInnerTop());
+        QxDebug("Positions->Client", "getComputedClientInnerRight: " + w1.getComputedClientInnerRight());
+        QxDebug("Positions->Client", "getComputedClientInnerBottom: " + w1.getComputedClientInnerBottom());
+
+
+
+        QxDebug("Positions->Page", "getComputedPageOuterLeft: " + w1.getComputedPageOuterLeft());
+        QxDebug("Positions->Page", "getComputedPageOuterTop: " + w1.getComputedPageOuterTop());
+        QxDebug("Positions->Page", "getComputedPageOuterRight: " + w1.getComputedPageOuterRight());
+        QxDebug("Positions->Page", "getComputedPageOuterBottom: " + w1.getComputedPageOuterBottom());
+
+        QxDebug("Positions->Page", "getComputedPageBoxLeft: " + w1.getComputedPageBoxLeft());
+        QxDebug("Positions->Page", "getComputedPageBoxTop: " + w1.getComputedPageBoxTop());
+        QxDebug("Positions->Page", "getComputedPageBoxRight: " + w1.getComputedPageBoxRight());
+        QxDebug("Positions->Page", "getComputedPageBoxBottom: " + w1.getComputedPageBoxBottom());
+
+        QxDebug("Positions->Page", "getComputedPageAreaLeft: " + w1.getComputedPageAreaLeft());
+        QxDebug("Positions->Page", "getComputedPageAreaTop: " + w1.getComputedPageAreaTop());
+        QxDebug("Positions->Page", "getComputedPageAreaRight: " + w1.getComputedPageAreaRight());
+        QxDebug("Positions->Page", "getComputedPageAreaBottom: " + w1.getComputedPageAreaBottom());
+
+        QxDebug("Positions->Page", "getComputedPageInnerLeft: " + w1.getComputedPageInnerLeft());
+        QxDebug("Positions->Page", "getComputedPageInnerTop: " + w1.getComputedPageInnerTop());
+        QxDebug("Positions->Page", "getComputedPageInnerRight: " + w1.getComputedPageInnerRight());
+        QxDebug("Positions->Page", "getComputedPageInnerBottom: " + w1.getComputedPageInnerBottom());
+
+
+
+
+        QxDebug("Screen", "getComputedScreenOuterLeft: " + w1.getComputedScreenOuterLeft());
+        QxDebug("Screen", "getComputedScreenOuterTop: " + w1.getComputedScreenOuterTop());
+        QxDebug("Screen", "getComputedScreenOuterRight: " + w1.getComputedScreenOuterRight());
+        QxDebug("Screen", "getComputedScreenOuterBottom: " + w1.getComputedScreenOuterBottom());
+
+        QxDebug("Screen", "getComputedScreenBoxLeft: " + w1.getComputedScreenBoxLeft());
+        QxDebug("Screen", "getComputedScreenBoxTop: " + w1.getComputedScreenBoxTop());
+        QxDebug("Screen", "getComputedScreenBoxRight: " + w1.getComputedScreenBoxRight());
+        QxDebug("Screen", "getComputedScreenBoxBottom: " + w1.getComputedScreenBoxBottom());
+
+        QxDebug("Screen", "getComputedScreenAreaLeft: " + w1.getComputedScreenAreaLeft());
+        QxDebug("Screen", "getComputedScreenAreaTop: " + w1.getComputedScreenAreaTop());
+        QxDebug("Screen", "getComputedScreenAreaRight: " + w1.getComputedScreenAreaRight());
+        QxDebug("Screen", "getComputedScreenAreaBottom: " + w1.getComputedScreenAreaBottom());
+
+        QxDebug("Screen", "getComputedScreenInnerLeft: " + w1.getComputedScreenInnerLeft());
+        QxDebug("Screen", "getComputedScreenInnerTop: " + w1.getComputedScreenInnerTop());
+        QxDebug("Screen", "getComputedScreenInnerRight: " + w1.getComputedScreenInnerRight());
+        QxDebug("Screen", "getComputedScreenInnerBottom: " + w1.getComputedScreenInnerBottom());
+      });
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CrossBrowser_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/CrossBrowser_2.html
new file mode 100644 (file)
index 0000000..a37a47b
--- /dev/null
@@ -0,0 +1,128 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Tests for crossbrowser offsetTop and offsetLeft properties provided by qx.dom</p>
+  </div>
+  
+  <style type="text/css">
+
+#i{
+  border: 1px solid red;
+}
+
+#l{
+  position: absolute;
+  
+  top: 100px;
+  left: 100px;
+  
+  width: 300px;
+  height: 300px;
+  
+  overflow: auto;
+  border: 6px solid red;
+  padding: 10px;
+}
+
+#p1{
+  position: static;
+  
+  width: 100px;
+  height: 100px;
+  
+  overflow: auto;  
+  
+  border: 5px solid orange;
+  padding: 5px;
+}
+
+#p2{
+  position: absolute;
+  
+  top: 150px;
+  left: 150px;
+
+  width: 100px;
+  height: 100px;
+  
+  overflow: auto;  
+  
+  border: 5px solid orange;
+  padding: 3px;
+}
+
+#p1 div,
+#p2 div{
+  border: 2px solid blue;
+  padding: 4px;
+}
+  </style>
+  
+  <br/><br/><br/><br/><br/>
+  <p id="i">Inline</p>
+  
+  <div id="l">
+    <div id="p1">
+      <div id="p1a">P1-A</div>
+      <div id="p1b">P1-B</div>
+      <div id="p1c">P1-C</div>
+      <div id="p1d">P1-D</div>
+      <div id="p1e">P1-E</div>
+      <div id="p1f">P1-F</div>
+      <div id="p1g">P1-G</div>
+      <div id="p1h">P1-H</div>
+      <div id="p1j">P1-I</div>
+    </div>
+    <div id="p2">
+      <div id="p2a">P2-A</div>
+      <div id="p2b">P2-B</div>
+      <div id="p2c">P2-C</div>
+      <div id="p2d">P2-D</div>
+      <div id="p2e">P2-E</div>
+      <div id="p2f">P2-F</div>
+      <div id="p2g">P2-G</div>
+      <div id="p2h">P2-H</div>
+      <div id="p2j">P2-I</div>
+    </div>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+      
+      var i = document.getElementById("i");
+      var l = document.getElementById("l");
+      var p1 = document.getElementById("p1");
+      var p2 = document.getElementById("p2");      
+      var p1a = document.getElementById("p1a");
+      var p2a = document.getElementById("p2a");
+        
+      qx.core.Init.getInstance().debug("Browser-Impl", "I: " + i.offsetLeft + "x" + i.offsetTop);    
+      qx.core.Init.getInstance().debug("Browser-Impl", "L: " + l.offsetLeft + "x" + l.offsetTop);    
+      qx.core.Init.getInstance().debug("Browser-Impl", "P1: " + p1.offsetLeft + "x" + p1.offsetTop);    
+      qx.core.Init.getInstance().debug("Browser-Impl", "P2: " + p2.offsetLeft + "x" + p2.offsetTop);    
+      qx.core.Init.getInstance().debug("Browser-Impl", "P1A: " + p1a.offsetLeft + "x" + p1a.offsetTop);
+      qx.core.Init.getInstance().debug("Browser-Impl", "P2A: " + p2a.offsetLeft + "x" + p2a.offsetTop);
+      
+      qx.core.Init.getInstance().debug("QxDom-Impl", "I: " + qx.dom.Offset.getLeft(i) + "x" + qx.dom.Offset.getTop(i));    
+      qx.core.Init.getInstance().debug("QxDom-Impl", "L: " + qx.dom.Offset.getLeft(l) + "x" + qx.dom.Offset.getTop(l));    
+      qx.core.Init.getInstance().debug("QxDom-Impl", "P1: " + qx.dom.Offset.getLeft(p1) + "x" + qx.dom.Offset.getTop(p1));    
+      qx.core.Init.getInstance().debug("QxDom-Impl", "P2: " + qx.dom.Offset.getLeft(p2) + "x" + qx.dom.Offset.getTop(p2));    
+      qx.core.Init.getInstance().debug("QxDom-Impl", "P1A: " + qx.dom.Offset.getLeft(p1a) + "x" + qx.dom.Offset.getTop(p1a));
+      qx.core.Init.getInstance().debug("QxDom-Impl", "P2A: " + qx.dom.Offset.getLeft(p2a) + "x" + qx.dom.Offset.getTop(p2a));
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_1.html
new file mode 100644 (file)
index 0000000..6e4bab9
--- /dev/null
@@ -0,0 +1,53 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Simple Test for qx.ui.layout.DockLayout.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var dl1 = new qx.ui.layout.DockLayout;
+    
+    dl1.setTop(48);
+    dl1.setLeft(20);
+    dl1.setRight(335);
+    dl1.setBottom(48);
+    
+    dl1.setBorder(2, "outset");
+    dl1.setBackgroundColor("white");
+    
+    d.add(dl1);
+    
+    
+    
+    var t1 = new qx.ui.basic.Terminator;
+    t1.setHeight(50);
+    t1.setBackgroundColor("red");
+    dl1.addTop(t1);
+
+    var t2 = new qx.ui.basic.Terminator;
+    t2.setWidth(150);
+    t2.setBackgroundColor("yellow");
+    dl1.addLeft(t2);
+    
+    var t3 = new qx.ui.basic.Terminator;
+    t3.setBackgroundColor("blue");
+    dl1.add(t3);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_2.html
new file mode 100644 (file)
index 0000000..52ecefa
--- /dev/null
@@ -0,0 +1,224 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    The next generation of table-less layouts ;)
+  </div>
+
+  <script type="text/javascript">
+  function selfRemove() {
+    this.getParent().remove(this);
+  };  
+  
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var dl1 = new qx.ui.layout.DockLayout;
+    
+    dl1.setTop(48);
+    dl1.setLeft(20);
+    dl1.setRight(335);
+    dl1.setBottom(120);
+    dl1.setMinWidth(400);
+    dl1.setMinHeight(300);
+    
+    dl1.setBorder(2, "outset");
+    dl1.setBackgroundColor("white");
+    
+    d.add(dl1);
+    
+    
+    
+    var t1 = new qx.ui.basic.Terminator;
+    t1.setHeight(50);
+    t1.setBackgroundColor("red");
+    t1.setVerticalAlign("top");
+    t1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t1.addEventListener("click", selfRemove);
+
+    var t2 = new qx.ui.basic.Terminator;
+    // t2.setWidth(150);
+    t2.setWidth("20%");
+    t2.setBackgroundColor("gray");
+    t2.setHorizontalAlign("left");
+    t2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t2.addEventListener("click", selfRemove);
+
+    var t3 = new qx.ui.basic.Terminator;
+    t3.setHeight(100);
+    t3.setBackgroundColor("yellow");
+    t3.setVerticalAlign("top");
+    t3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t3.addEventListener("click", selfRemove);
+
+    var t4 = new qx.ui.basic.Terminator;
+    t4.setWidth(40);
+    t4.setBackgroundColor("orange");
+    t4.setHorizontalAlign("right");
+    t4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t4.addEventListener("click", selfRemove);
+
+    var t5 = new qx.ui.basic.Terminator;
+    t5.setHeight(80);
+    t5.setBackgroundColor("blue");
+    t5.setVerticalAlign("bottom");
+    t5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t5.addEventListener("click", selfRemove);
+   
+    var t6 = new qx.ui.basic.Terminator;
+    t6.setBackgroundColor("green");
+    t6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t6.addEventListener("click", selfRemove);
+
+    dl1.add(t1, t2, t3, t4, t5, t6);
+    
+    
+    
+    
+    
+   
+    
+    
+    
+    var l1 = new qx.ui.basic.Label("Mode:");
+    l1.setWidth(50);
+    
+    var btn1_1 = new qx.ui.form.Button("Vertical", "icon/16/button-ok.png");
+    var btn1_2 = new qx.ui.form.Button("Horizontal", "icon/16/button-ok.png");
+    var btn1_3 = new qx.ui.form.Button("Ordered", "icon/16/button-ok.png");
+    
+    btn1_1.addEventListener("click", function(e) {
+      dl1.setMode("vertical");
+    });
+
+    btn1_2.addEventListener("click", function(e) {
+      dl1.setMode("horizontal");
+    });
+
+    btn1_3.addEventListener("click", function(e) {
+      dl1.setMode("ordered");
+    });
+    
+    var h1 = new qx.ui.layout.HorizontalBoxLayout;
+    h1.setVerticalChildrenAlign("middle");
+    h1.add(l1, btn1_1, btn1_2, btn1_3);
+    h1.setBottom(78);
+    h1.setLeft(20);
+    d.add(h1);
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    var l2 = new qx.ui.basic.Label("Children:");
+    l2.setWidth(50);
+    
+    var btn2_1 = new qx.ui.form.Button("Remove First", "icon/16/button-ok.png");
+    var btn2_2 = new qx.ui.form.Button("Remove Last", "icon/16/button-ok.png");
+    var btn2_3 = new qx.ui.form.Button("Add Top", "icon/16/button-ok.png");
+    var btn2_4 = new qx.ui.form.Button("Add Right", "icon/16/button-ok.png");
+    var btn2_5 = new qx.ui.form.Button("Add Bottom", "icon/16/button-ok.png");
+    var btn2_6 = new qx.ui.form.Button("Add Left", "icon/16/button-ok.png");
+    var btn2_7 = new qx.ui.form.Button("Add Auto", "icon/16/button-ok.png");
+
+    btn2_1.addEventListener("execute", function(e) 
+    {
+      var c = dl1.getFirstChild();
+      if (c) {
+        dl1.remove(c);
+      };      
+    });
+
+    btn2_2.addEventListener("execute", function(e) 
+    {
+      var c = dl1.getLastChild();
+      if (c) {
+        dl1.remove(c);
+      };      
+    });
+    
+    btn2_3.addEventListener("execute", function(e) 
+    {
+      var t = new qx.ui.basic.Terminator();
+      
+      t.setBackgroundColor(qx.renderer.color.Color.fromRandom());
+      t.setHeight(2+Math.round(Math.random()*50));
+      t.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      t.addEventListener("click", selfRemove);
+      
+      dl1.addTop(t);
+    });
+    
+    btn2_4.addEventListener("execute", function(e) 
+    {
+      var t = new qx.ui.basic.Terminator();
+      
+      t.setBackgroundColor(qx.renderer.color.Color.fromRandom());
+      t.setWidth(2+Math.round(Math.random()*50));
+      t.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      t.addEventListener("click", selfRemove);
+      
+      dl1.addRight(t);
+    });
+    
+    btn2_5.addEventListener("execute", function(e) 
+    {
+      var t = new qx.ui.basic.Terminator();
+      
+      t.setBackgroundColor(qx.renderer.color.Color.fromRandom());
+      t.setHeight(2+Math.round(Math.random()*50));
+      t.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      t.addEventListener("click", selfRemove);
+      
+      dl1.addBottom(t);
+    });
+    
+    btn2_6.addEventListener("execute", function(e) 
+    {
+      var t = new qx.ui.basic.Terminator();
+      
+      t.setBackgroundColor(qx.renderer.color.Color.fromRandom());
+      t.setWidth(2+Math.round(Math.random()*50));
+      t.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      t.addEventListener("click", selfRemove);
+      
+      dl1.addLeft(t);
+    });
+    
+    btn2_7.addEventListener("execute", function(e) 
+    {
+      var t = new qx.ui.basic.Terminator();
+      
+      t.setBackgroundColor(qx.renderer.color.Color.fromRandom());
+      t.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      t.addEventListener("click", selfRemove);
+      
+      dl1.add(t);
+    });    
+
+    
+    var h2 = new qx.ui.layout.HorizontalBoxLayout;
+    h2.setVerticalChildrenAlign("middle");
+    h2.add(l2, btn2_1, btn2_2, btn2_3, btn2_4, btn2_5, btn2_6, btn2_7);
+    h2.setBottom(48);
+    h2.setLeft(20);
+    d.add(h2);    
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_3.html
new file mode 100644 (file)
index 0000000..0ef1f5c
--- /dev/null
@@ -0,0 +1,140 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Testing Layouts inside the qx.ui.layout.DockLayout. In this example centering through qx.ui.layout.HorizontalBoxLayout.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var dl1 = new qx.ui.layout.DockLayout;
+    
+    dl1.setTop(48);
+    dl1.setLeft(20);
+    dl1.setRight(335);
+    dl1.setBottom(48);
+    
+    dl1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    dl1.setBackgroundColor("white");
+    
+    d.add(dl1);
+    
+    
+    
+    var t1 = new qx.ui.layout.HorizontalBoxLayout;
+    t1.setHeight(50);
+    t1.setBackgroundColor("red");
+    t1.setWidth(null);
+    t1.setVerticalChildrenAlign("middle");
+    t1.setHorizontalChildrenAlign("center");
+    t1.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    dl1.addTop(t1);
+
+    var t2 = new qx.ui.layout.HorizontalBoxLayout;
+    t2.setWidth(150);
+    t2.setBackgroundColor("yellow");
+    t2.setHeight(null);
+    t2.setVerticalChildrenAlign("middle");
+    t2.setHorizontalChildrenAlign("center");
+    t2.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    dl1.addLeft(t2);
+    
+    var t3 = new qx.ui.layout.HorizontalBoxLayout;
+    t3.setHeight(50);
+    t3.setBackgroundColor("blue");
+    t3.setWidth(null);
+    t3.setVerticalChildrenAlign("middle");
+    t3.setHorizontalChildrenAlign("center");
+    t3.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    dl1.addBottom(t3);
+
+    var t4 = new qx.ui.layout.HorizontalBoxLayout;
+    t4.setWidth(150);
+    t4.setBackgroundColor("green");
+    t4.setHeight(null);
+    t4.setVerticalChildrenAlign("middle");
+    t4.setHorizontalChildrenAlign("center");
+    t4.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    dl1.addRight(t4);    
+    
+    
+    
+    
+    var dl2 = new qx.ui.layout.DockLayout;
+    dl2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    dl1.add(dl2);
+    
+    
+    
+    
+    
+
+
+    var t5 = new qx.ui.layout.HorizontalBoxLayout;
+    t5.setHeight(50);
+    t5.setBackgroundColor("fuchsia");
+    t5.setWidth(null);
+    t5.setVerticalChildrenAlign("middle");
+    t5.setHorizontalChildrenAlign("center");
+    t5.add(new qx.ui.basic.Image("icon/32/clock.png"));
+    dl2.addTop(t5);
+
+    var t6 = new qx.ui.layout.HorizontalBoxLayout;
+    t6.setWidth(150);
+    t6.setBackgroundColor("orange");
+    t6.setHeight(null);
+    t6.setVerticalChildrenAlign("middle");
+    t6.setHorizontalChildrenAlign("center");
+    t6.add(new qx.ui.basic.Image("icon/32/clock.png"));
+    dl2.addLeft(t6);
+    
+    var t7 = new qx.ui.layout.HorizontalBoxLayout;
+    t7.setHeight(50);
+    t7.setBackgroundColor("aqua");
+    t7.setWidth(null);
+    t7.setVerticalChildrenAlign("middle");
+    t7.setHorizontalChildrenAlign("center");
+    t7.add(new qx.ui.basic.Image("icon/32/clock.png"));
+    dl2.addBottom(t7);
+
+    var t8 = new qx.ui.layout.HorizontalBoxLayout;
+    t8.setWidth(150);
+    t8.setBackgroundColor("lime");
+    t8.setHeight(null);
+    t8.setVerticalChildrenAlign("middle");
+    t8.setHorizontalChildrenAlign("center");
+    t8.add(new qx.ui.basic.Image("icon/32/clock.png"));
+    dl2.addRight(t8); 
+    
+    
+    
+
+    
+    var hb1 = new qx.ui.layout.HorizontalBoxLayout;
+    
+    hb1.setBackgroundColor("silver");
+    hb1.setVerticalChildrenAlign("middle");
+    hb1.setHorizontalChildrenAlign("center");
+    hb1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    hb1.setWidth(null);
+    hb1.setHeight(null);
+    hb1.add(new qx.ui.basic.Image("icon/64/clock.png"));
+    
+    dl2.add(hb1);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_4.html
new file mode 100644 (file)
index 0000000..89cbe88
--- /dev/null
@@ -0,0 +1,140 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Same as the previous one, but additional the dimensions of the qx.ui.layout.DockLayout are defined as percents here.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var dl1 = new qx.ui.layout.DockLayout;
+    
+    dl1.setTop(48);
+    dl1.setLeft(20);
+    dl1.setRight(335);
+    dl1.setBottom(48);
+    
+    dl1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    dl1.setBackgroundColor("white");
+    
+    d.add(dl1);
+    
+    
+    
+    var t1 = new qx.ui.layout.HorizontalBoxLayout;
+    t1.setHeight("20%");
+    t1.setBackgroundColor("red");
+    t1.setWidth(null);
+    t1.setVerticalChildrenAlign("middle");
+    t1.setHorizontalChildrenAlign("center");
+    t1.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    dl1.addTop(t1);
+
+    var t2 = new qx.ui.layout.HorizontalBoxLayout;
+    t2.setWidth("20%");
+    t2.setBackgroundColor("yellow");
+    t2.setHeight(null);
+    t2.setVerticalChildrenAlign("middle");
+    t2.setHorizontalChildrenAlign("center");
+    t2.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    dl1.addLeft(t2);
+    
+    var t3 = new qx.ui.layout.HorizontalBoxLayout;
+    t3.setHeight("20%");
+    t3.setBackgroundColor("blue");
+    t3.setWidth(null);
+    t3.setVerticalChildrenAlign("middle");
+    t3.setHorizontalChildrenAlign("center");
+    t3.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    dl1.addBottom(t3);
+
+    var t4 = new qx.ui.layout.HorizontalBoxLayout;
+    t4.setWidth("20%");
+    t4.setBackgroundColor("green");
+    t4.setHeight(null);
+    t4.setVerticalChildrenAlign("middle");
+    t4.setHorizontalChildrenAlign("center");
+    t4.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    dl1.addRight(t4);    
+    
+    
+    
+    
+    var dl2 = new qx.ui.layout.DockLayout;
+    dl2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    dl1.add(dl2);
+    
+    
+    
+    
+    
+
+
+    var t5 = new qx.ui.layout.HorizontalBoxLayout;
+    t5.setHeight("20%");
+    t5.setBackgroundColor("fuchsia");
+    t5.setWidth(null);
+    t5.setVerticalChildrenAlign("middle");
+    t5.setHorizontalChildrenAlign("center");
+    t5.add(new qx.ui.basic.Image("icon/32/clock.png"));
+    dl2.addTop(t5);
+
+    var t6 = new qx.ui.layout.HorizontalBoxLayout;
+    t6.setWidth("20%");
+    t6.setBackgroundColor("orange");
+    t6.setHeight(null);
+    t6.setVerticalChildrenAlign("middle");
+    t6.setHorizontalChildrenAlign("center");
+    t6.add(new qx.ui.basic.Image("icon/32/clock.png"));
+    dl2.addLeft(t6);
+    
+    var t7 = new qx.ui.layout.HorizontalBoxLayout;
+    t7.setHeight("20%");
+    t7.setBackgroundColor("aqua");
+    t7.setWidth(null);
+    t7.setVerticalChildrenAlign("middle");
+    t7.setHorizontalChildrenAlign("center");
+    t7.add(new qx.ui.basic.Image("icon/32/clock.png"));
+    dl2.addBottom(t7);
+
+    var t8 = new qx.ui.layout.HorizontalBoxLayout;
+    t8.setWidth("20%");
+    t8.setBackgroundColor("lime");
+    t8.setHeight(null);
+    t8.setVerticalChildrenAlign("middle");
+    t8.setHorizontalChildrenAlign("center");
+    t8.add(new qx.ui.basic.Image("icon/32/clock.png"));
+    dl2.addRight(t8); 
+    
+    
+    
+
+    
+    var hb1 = new qx.ui.layout.HorizontalBoxLayout;
+    
+    hb1.setBackgroundColor("silver");
+    hb1.setVerticalChildrenAlign("middle");
+    hb1.setHorizontalChildrenAlign("center");
+    hb1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    hb1.setWidth(null);
+    hb1.setHeight(null);
+    hb1.add(new qx.ui.basic.Image("icon/64/clock.png"));
+    
+    dl2.add(hb1);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_5.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_5.html
new file mode 100644 (file)
index 0000000..382db25
--- /dev/null
@@ -0,0 +1,164 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Same as the previous one, but additional added multiple children to the box layout.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var dl1 = new qx.ui.layout.DockLayout;
+    
+    dl1.setTop(48);
+    dl1.setLeft(20);
+    dl1.setRight(335);
+    dl1.setBottom(48);
+    
+    dl1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    dl1.setBackgroundColor("white");
+    
+    d.add(dl1);
+    
+    
+    
+    var t1 = new qx.ui.layout.HorizontalBoxLayout;
+    t1.setHeight("20%");
+    t1.setBackgroundColor("red");
+    t1.setWidth(null);
+    t1.setVerticalChildrenAlign("middle");
+    t1.setHorizontalChildrenAlign("center");
+    t1.setSpacing(4);
+    t1.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    t1.add(new qx.ui.basic.Label("Hello World"));
+    t1.add(new qx.ui.basic.Image("icon/48/colors.png"));
+    dl1.addTop(t1);
+
+    var t2 = new qx.ui.layout.HorizontalBoxLayout;
+    t2.setWidth("20%");
+    t2.setBackgroundColor("yellow");
+    t2.setHeight(null);
+    t2.setVerticalChildrenAlign("middle");
+    t2.setHorizontalChildrenAlign("center");
+    t2.setSpacing(4);
+    t2.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    t2.add(new qx.ui.basic.Label("Hello World"));
+    t2.add(new qx.ui.basic.Image("icon/48/colors.png"));
+    dl1.addLeft(t2);
+    
+    var t3 = new qx.ui.layout.HorizontalBoxLayout;
+    t3.setHeight("20%");
+    t3.setBackgroundColor("blue");
+    t3.setWidth(null);
+    t3.setVerticalChildrenAlign("middle");
+    t3.setHorizontalChildrenAlign("center");
+    t3.setSpacing(4);
+    t3.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    t3.add(new qx.ui.basic.Label("Hello World"));
+    t3.add(new qx.ui.basic.Image("icon/48/colors.png"));
+    dl1.addBottom(t3);
+
+    var t4 = new qx.ui.layout.HorizontalBoxLayout;
+    t4.setWidth("20%");
+    t4.setBackgroundColor("green");
+    t4.setHeight(null);
+    t4.setVerticalChildrenAlign("middle");
+    t4.setHorizontalChildrenAlign("center");
+    t4.setSpacing(4);
+    t4.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    t4.add(new qx.ui.basic.Label("Hello World"));
+    t4.add(new qx.ui.basic.Image("icon/48/colors.png"));
+    dl1.addRight(t4);    
+    
+    
+    
+    
+    var dl2 = new qx.ui.layout.DockLayout;
+    dl2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    dl1.add(dl2);
+    
+    
+    
+    
+    
+
+
+    var t5 = new qx.ui.layout.HorizontalBoxLayout;
+    t5.setHeight("20%");
+    t5.setBackgroundColor("fuchsia");
+    t5.setWidth(null);
+    t5.setVerticalChildrenAlign("middle");
+    t5.setHorizontalChildrenAlign("center");
+    t5.setSpacing(4);
+    t5.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    t5.add(new qx.ui.basic.Label("Hello World"));
+    t5.add(new qx.ui.basic.Image("icon/48/colors.png"));
+    dl2.addTop(t5);
+
+    var t6 = new qx.ui.layout.HorizontalBoxLayout;
+    t6.setWidth("20%");
+    t6.setBackgroundColor("orange");
+    t6.setHeight(null);
+    t6.setVerticalChildrenAlign("middle");
+    t6.setHorizontalChildrenAlign("center");
+    t6.setSpacing(4);
+    t6.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    t6.add(new qx.ui.basic.Label("Hello World"));
+    t6.add(new qx.ui.basic.Image("icon/48/colors.png"));
+    dl2.addLeft(t6);
+    
+    var t7 = new qx.ui.layout.HorizontalBoxLayout;
+    t7.setHeight("20%");
+    t7.setBackgroundColor("aqua");
+    t7.setWidth(null);
+    t7.setVerticalChildrenAlign("middle");
+    t7.setHorizontalChildrenAlign("center");
+    t7.setSpacing(4);
+    t7.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    t7.add(new qx.ui.basic.Label("Hello World"));
+    t7.add(new qx.ui.basic.Image("icon/48/colors.png"));
+    dl2.addBottom(t7);
+
+    var t8 = new qx.ui.layout.HorizontalBoxLayout;
+    t8.setWidth("20%");
+    t8.setBackgroundColor("lime");
+    t8.setHeight(null);
+    t8.setVerticalChildrenAlign("middle");
+    t8.setHorizontalChildrenAlign("center");
+    t8.setSpacing(4);
+    t8.add(new qx.ui.basic.Image("icon/16/clock.png"));
+    t8.add(new qx.ui.basic.Label("Hello World"));
+    t8.add(new qx.ui.basic.Image("icon/48/colors.png"));
+    dl2.addRight(t8); 
+    
+    
+    
+
+    
+    var hb1 = new qx.ui.layout.HorizontalBoxLayout;
+    
+    hb1.setBackgroundColor("silver");
+    hb1.setVerticalChildrenAlign("middle");
+    hb1.setHorizontalChildrenAlign("center");
+    hb1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    hb1.setWidth(null);
+    hb1.setHeight(null);
+    hb1.add(new qx.ui.basic.Image("icon/64/clock.png"));
+    
+    dl2.add(hb1);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_6.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DockLayout_6.html
new file mode 100644 (file)
index 0000000..3bf090b
--- /dev/null
@@ -0,0 +1,71 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Simple Test for qx.ui.layout.DockLayout. But with a dynamic child. Simple click on "Hello World" to see the effect.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var dl1 = new qx.ui.layout.DockLayout;
+
+    dl1.setTop(48);
+    dl1.setLeft(20);
+    dl1.setRight(335);
+    dl1.setBottom(48);
+
+    dl1.setBorder(2, "outset");
+    dl1.setBackgroundColor("white");
+
+    d.add(dl1);
+
+
+
+    var t1 = new qx.ui.basic.Terminator;
+    t1.setHeight(50);
+    t1.setBackgroundColor("white");
+    t1.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+    dl1.addTop(t1);
+
+    var t2 = new qx.ui.basic.Label("Hello World");
+    t2.setHeight(null);
+    t2.setBackgroundColor("white");
+    t2.setPadding(10);
+    t2.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+    dl1.addLeft(t2);
+
+    var t3 = new qx.ui.layout.HorizontalBoxLayout;
+
+    t3.setWidth(null);
+    t3.setHeight(null);
+    t3.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+    t3.setBackgroundColor("white");
+    t3.setHorizontalChildrenAlign("center");
+    t3.setVerticalChildrenAlign("middle");
+
+    dl1.add(t3);
+
+    t3.add(new qx.ui.basic.Image("icon/128/bitmapgraphics.png"));
+
+
+
+    t2.addEventListener("click", function(e) {
+      this.setHtml(this.getHtml() == "Hello World" ? "Real long text, especially to test this cool behaviour" : "Hello World");
+    });
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DragAndDropManager_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DragAndDropManager_1.html
new file mode 100644 (file)
index 0000000..000c45a
--- /dev/null
@@ -0,0 +1,131 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for drag&#38;drop implementation.</p>
+    <p>Changing the action using the modifier keys (Shift, Alt, Control) might not work in Safari.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+    
+    var a1 = new qx.ui.basic.Atom("Drag Me");
+    a1.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove });
+    a1.setPadding(10);
+    a1.setLocation(20, 48); 
+    d.add(a1);
+
+    
+    function handleDragStart(e)
+    {
+      e.addData("text/plain", "Plain text");
+      e.addData("text/html", "Some <strong>HTML</strong>");
+      
+      e.addAction("copy");
+      e.addAction("move");
+      e.addAction("alias");
+      
+      e.startDrag();
+    };
+    
+    function handleDragDrop( e )
+    {
+      var type = e.getDropDataTypes()[0];
+      var data = e.getData(type);
+      
+      this.debug("Drag&Drop Action: " + e.getAction());
+  
+      switch(type)
+      {
+        case "text/plain":
+        case "text/html":
+          this.setLabel(data);  
+          break;
+      };     
+    };
+    
+    function handleDragOver(e) {
+      e.getTarget().setBackgroundColor("#f2f2f2");    
+    };
+  
+    function handleDragOut(e) {
+      e.getTarget().setBackgroundColor("#fff");
+    };
+  
+    function handleDragEnd(e)
+    {
+      // we don't need to do anything here
+      // If we had a succesful move action we might have removed
+      // the source here or something else
+    };
+    
+    a1.addEventListener("dragstart", handleDragStart);
+    
+    
+    
+    
+    var w1 = new qx.ui.basic.Atom("Drop to me");
+    w1.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 100, left: 20, horizontalAlign: "center" });
+    w1.setDropDataTypes(["text/html", "text/plain"]);
+    w1.addEventListener("dragdrop", handleDragDrop);
+    w1.addEventListener("dragover", handleDragOver);
+    w1.addEventListener("dragout", handleDragOut);    
+    
+    var w2 = new qx.ui.basic.Atom("Drop to me");
+    w2.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 230, left: 20, horizontalAlign: "center" });
+    w2.setDropDataTypes(["text/html", "text/plain"]);
+    w2.addEventListener("dragdrop", handleDragDrop);
+    w2.addEventListener("dragover", handleDragOver);
+    w2.addEventListener("dragout", handleDragOut);    
+
+    var w3 = new qx.ui.basic.Atom("Drop to me");
+    w3.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 100, left: 150, horizontalAlign: "center" });
+    w3.setDropDataTypes(["text/html", "text/plain"]);
+    w3.addEventListener("dragdrop", handleDragDrop);
+    w3.addEventListener("dragover", handleDragOver);
+    w3.addEventListener("dragout", handleDragOut);    
+    
+    var w4 = new qx.ui.basic.Atom("Drop to me");
+    w4.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 230, left: 150, horizontalAlign: "center" });
+    w4.setDropDataTypes(["text/html", "text/plain"]);
+    w4.addEventListener("dragdrop", handleDragDrop);
+    w4.addEventListener("dragover", handleDragOver);
+    w4.addEventListener("dragout", handleDragOut);    
+    
+    
+    
+    var f1 = new qx.ui.layout.CanvasLayout;
+    f1.set({ backgroundColor: "orange", width: 230, height: 120, top: 350, left: 20 });
+  
+    var w5 = new qx.ui.basic.Atom("Drop to me");
+    w5.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 10, horizontalAlign: "center" });
+    w5.setDropDataTypes(["text/html", "text/plain"]);
+    w5.addEventListener("dragdrop", handleDragDrop);
+    w5.addEventListener("dragover", handleDragOver);
+    w5.addEventListener("dragout", handleDragOut);     
+    
+    var w6 = new qx.ui.basic.Atom("Drop to me");
+    w6.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 10, right: 0, horizontalAlign: "center" });
+    w6.setDropDataTypes(["text/html", "text/plain"]);
+    w6.addEventListener("dragdrop", handleDragDrop);
+    w6.addEventListener("dragover", handleDragOver);
+    w6.addEventListener("dragout", handleDragOut);   
+    
+    f1.add(w5, w6);
+    d.add(w1, w2, w3, w4, f1);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DragAndDropManager_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/DragAndDropManager_2.html
new file mode 100644 (file)
index 0000000..04a943c
--- /dev/null
@@ -0,0 +1,124 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for drag&#38;drop implementation.</p>
+    <p>Changing the action using the modifier keys (Shift, Alt, Control) might not work in Safari.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+    
+    var a1 = new qx.ui.basic.Atom("Drag Me");
+    a1.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove });
+    a1.setPadding(10);
+    a1.setLocation(20, 48); 
+    d.add(a1);
+    
+    
+    
+    
+    function printEvent(e) {
+      return "TARGET:" + (e.getTarget() ? e.getTarget().toHashCode() : "null") + " [ORIG:" + (e.getOriginalTarget() ? e.getOriginalTarget().toHashCode() : "null") + "]  [REL:" + (e.getRelatedTarget() ? e.getRelatedTarget().toHashCode() : "null") + "]";
+    };
+    
+    function handleDragStart(e)
+    {
+      this.debug("Fire DragStart: " + printEvent(e));
+      
+      e.addData("text/plain", "Plain text");
+      e.addData("text/html", "Some <strong>HTML</strong>");
+      
+      e.addAction("copy");
+      e.addAction("move");
+      e.addAction("alias");
+      
+      e.startDrag();
+    };
+    
+    function handleDragDrop( e )
+    {
+      this.debug("Fire DragDrop: " + printEvent(e));
+
+      var type = e.getDropDataTypes()[0];
+      var data = e.getData(type);
+      
+      switch(type)
+      {
+        case "text/plain":
+        case "text/html":
+          this.setLabel(data);  
+          break;
+      };     
+    };
+    
+    function handleDragOver(e) 
+    {
+      this.debug("Fire DragOver: " + printEvent(e));
+      e.getTarget().setBackgroundColor("#f2f2f2");    
+    };
+  
+    function handleDragOut(e) 
+    {
+      this.debug("Fire DragOut: " + printEvent(e));
+      e.getTarget().setBackgroundColor("#fff");
+    };
+  
+    function handleDragEnd(e) {
+      this.debug("Fire DragEnd: " + printEvent(e));
+    };
+    
+    
+    
+    
+    a1.addEventListener("dragstart", handleDragStart);
+    a1.addEventListener("dragend", handleDragEnd);
+    
+    
+    
+    
+    var w1 = new qx.ui.basic.Atom("Drop to me");
+    w1.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 100, left: 20, horizontalAlign: "center" });
+    w1.setDropDataTypes(["text/html", "text/plain"]);
+    w1.addEventListener("dragdrop", handleDragDrop);
+    w1.addEventListener("dragover", handleDragOver);
+    w1.addEventListener("dragout", handleDragOut); 
+    
+    var w2 = new qx.ui.basic.Atom("Drop to me");
+    w2.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 200, left: 20, horizontalAlign: "center" });
+    w2.setDropDataTypes(["text/html", "text/plain"]);
+    w2.addEventListener("dragdrop", handleDragDrop);
+    w2.addEventListener("dragover", handleDragOver);
+    w2.addEventListener("dragout", handleDragOut);
+
+    var w3 = new qx.ui.basic.Atom("Drop to me");
+    w3.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 100, left: 150, horizontalAlign: "center" });
+    w3.setDropDataTypes(["text/html", "text/plain"]);
+    w3.addEventListener("dragdrop", handleDragDrop);
+    w3.addEventListener("dragover", handleDragOver);
+    w3.addEventListener("dragout", handleDragOut);
+    
+    var w4 = new qx.ui.basic.Atom("Drop to me");
+    w4.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 200, left: 150, horizontalAlign: "center" });
+    w4.setDropDataTypes(["text/html", "text/plain"]);
+    w4.addEventListener("dragdrop", handleDragDrop);
+    w4.addEventListener("dragover", handleDragOver);
+    w4.addEventListener("dragout", handleDragOut);
+    
+    d.add(w1, w2, w3, w4);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/EnabledDisabled_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/EnabledDisabled_1.html
new file mode 100644 (file)
index 0000000..d411a31
--- /dev/null
@@ -0,0 +1,230 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Some test for the enable property in QxObject which will be extended from qx.ui.core.Widget and any other
+    widget which need additional handling on a change of this property. Keep in mind: Disabled QxWidgets will be ignored
+    from the QxEventManager and the qx.event.handler.FocusHandler.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var w1 = new qx.ui.basic.Label("Basic Container");
+
+    with(w1)
+    {
+      setWidth(75);
+      setLeft(20);
+      setTop(48);
+      setHeight(50);
+      setWidth(80);
+      setBackgroundColor("#fff");
+      setColor("blue");
+      setTabIndex(1);
+      setBorder(new qx.renderer.border.Border(2, "solid", "blue"));
+      setEnabled(false);
+    };
+
+    d.add(w1);
+
+    w1.addEventListener("mouseover", function(e)
+    {
+      if( this.getEnabled() )
+        this.getElement().style.color = "red";
+    });
+
+    w1.addEventListener("mouseout", function(e)
+    {
+      if( this.getEnabled() )
+        this.getElement().style.color = "blue";
+    });
+
+    var c1t = new qx.ui.form.CheckBox("Enabled");
+    with(c1t)
+    {
+      setTop(60);
+      setLeft(220);
+      addEventListener("changeChecked", function(e) { w1.setEnabled(e.getData()); });
+    };
+
+    d.add(c1t);
+
+    //------
+    // atom
+    //------
+
+    var a1 = new qx.ui.basic.Atom("Atom", "icon/32/clock.png");
+
+    with(a1)
+    {
+      setTop(190);
+      setLeft(20);
+      setEnabled(false);
+      setPadding(2, 4);
+      setBackgroundColor("#FFFF6D");
+    };
+
+    d.add(a1);
+
+    var swa1 = new qx.ui.form.CheckBox("Enabled");
+    with(swa1)
+    {
+      setTop(196);
+      setLeft(220);
+      addEventListener("changeChecked", function(e) { a1.setEnabled(e.getData()); });
+    };
+
+    d.add(swa1);
+
+    //--------
+    // button
+    //--------
+
+    var btn1 = new qx.ui.form.Button("Button No #1");
+    with(btn1)
+    {
+      setTop(244);
+      setLeft(20);
+      setEnabled(false);
+    };
+
+    d.add(btn1);
+
+    var swbtn1 = new qx.ui.form.CheckBox("Enabled");
+    with(swbtn1)
+    {
+      setTop(244);
+      setLeft(220);
+      addEventListener("changeChecked", function(e) { btn1.setEnabled(e.getData()); });
+    };
+
+    d.add(swbtn1);
+
+    //-------------
+    // radiobutton
+    //-------------
+
+    var rb1 = new qx.ui.form.RadioButton("Radio button");
+    with(rb1)
+    {
+      setTop(292);
+      setLeft(20);
+      setEnabled(false);
+    };
+
+    d.add(rb1);
+
+    var swrb1 = new qx.ui.form.CheckBox("Enabled");
+    with(swrb1)
+    {
+      setTop(292);
+      setLeft(220);
+      addEventListener("changeChecked", function(e) { rb1.setEnabled(e.getData()); });
+    };
+
+    d.add(swrb1);
+
+    //----------
+    // checkbox
+    //----------
+
+    var cb1 = new qx.ui.form.CheckBox("Checkbox");
+    with(cb1)
+    {
+      setTop(340);
+      setLeft(20);
+      setEnabled(false);
+    };
+
+    d.add(cb1);
+
+    var swcb1 = new qx.ui.form.CheckBox("Enabled");
+    with(swcb1)
+    {
+      setTop(340);
+      setLeft(220);
+      addEventListener("changeChecked", function(e) { cb1.setEnabled(e.getData()); });
+    };
+
+    d.add(swcb1);
+
+    //-----------
+    // TextField
+    //-----------
+
+    var tf1 = new qx.ui.form.TextField;
+    with(tf1)
+    {
+      setTop(388);
+      setLeft(20);
+      setEnabled(false);
+    };
+
+    d.add(tf1);
+
+    var swtf1 = new qx.ui.form.CheckBox("Enabled");
+    with(swtf1)
+    {
+      setTop(388);
+      setLeft(220);
+      addEventListener("changeChecked", function(e) { tf1.setEnabled(e.getData()); });
+    };
+
+    d.add(swtf1);
+
+    //-----------
+    // ComboBox
+    //-----------
+
+    var cb1 = new qx.ui.form.ComboBox;
+    with(cb1)
+    {
+      setTop(436);
+      setLeft(20);
+      setEnabled(false);
+      setEditable(true);
+    };
+
+    d.add(cb1);
+
+    cb1.addEventListener("beforeInitialOpen", function(e)
+    {
+      var item;
+
+      for(var i=1; i<=30; i++)
+      {
+        item = new qx.ui.form.ListItem("Item No " + i);
+        !(i % 10) && (item.setEnabled(false));
+        cb1.add(item);
+      };
+    });
+
+    var swcb1 = new qx.ui.form.CheckBox("Enabled");
+    with(swcb1)
+    {
+      setTop(436);
+      setLeft(220);
+      addEventListener("changeChecked", function(e) { cb1.setEnabled(e.getData()); });
+    };
+
+    d.add(swcb1);
+
+  });
+
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FieldSet_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FieldSet_1.html
new file mode 100644 (file)
index 0000000..378ffe5
--- /dev/null
@@ -0,0 +1,141 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>A more complex example than the previous one. Use layout managers for its content. Configured minWidth of the qx.ui.groupbox.GroupBox with "auto".</p>
+  </div>
+
+  <fieldset style="position:absolute; top:48px; left:400px; width:200px; height:100px"><legend>builtin</legend>content content content content content content content content content content content content content content content</fieldset>
+
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var fs = new qx.ui.groupbox.GroupBox("My first Fieldset", "icon/16/clock.png");
+
+      with(fs)
+      {
+        setWidth("40%");
+        setBottom(48);
+        setTop(48);
+        setLeft(20);
+
+        setMaxWidth(350);
+        setMinWidth("auto");
+      };
+      
+      d.add(fs);
+      
+      
+      
+      
+      var fsl = new qx.ui.layout.VerticalBoxLayout;
+      fsl.setLeft(0);
+      fsl.setRight(0);
+      fsl.setHeight("auto");
+      fsl.setSpacing(4);
+      fs.add(fsl);
+      
+      
+      
+      
+      var r1 = new qx.ui.layout.HorizontalBoxLayout;
+      r1.setLeft(0);
+      r1.setWidth("100%");
+      r1.setHeight("auto");
+      r1.setVerticalChildrenAlign("middle");
+      fsl.add(r1);
+
+      var a1 = new qx.ui.basic.Atom("TextField 1");
+      with(a1)
+      {
+        setLeft(0);
+        setWidth("40%");
+        setHorizontalChildrenAlign("left");
+      };
+
+      var i1 = new qx.ui.form.TextField;
+      with(i1)
+      {
+        setRight(0);
+        setWidth("60%");
+      };
+      
+      r1.add(a1, i1);
+
+
+
+
+
+      var r2 = new qx.ui.layout.HorizontalBoxLayout;
+      r2.setLeft(0);
+      r2.setWidth("100%");
+      r2.setHeight("auto");
+      r2.setVerticalChildrenAlign("middle");
+      fsl.add(r2);
+      
+      var a2 = new qx.ui.basic.Atom("TextField 2", "icon/16/look-and-feel.png");
+      with(a2)
+      {
+        setLeft(0);
+        setWidth("40%");
+        setHorizontalChildrenAlign("left");
+      };
+
+      var i2 = new qx.ui.form.TextField;
+      with(i2)
+      {
+        setRight(0);
+        setWidth("60%");
+      };
+      
+      r2.add(a2, i2);
+
+
+
+
+
+
+      var r3 = new qx.ui.layout.HorizontalBoxLayout;
+      r3.setLeft(0);
+      r3.setWidth("100%");
+      r3.setHeight("auto");
+      r3.setVerticalChildrenAlign("middle");      
+      fsl.add(r3);
+
+      var a3 = new qx.ui.basic.Atom("TextField 3");
+      with(a3)
+      {
+        setLeft(0);
+        setWidth("40%");
+        setHorizontalChildrenAlign("left");        
+      };
+
+      var i3 = new qx.ui.form.TextField;
+      with(i3)
+      {
+        setRight(0);
+        setWidth("60%");
+      };
+      
+      r3.add(a3, i3);
+
+
+
+      
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Fields_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Fields_1.html
new file mode 100644 (file)
index 0000000..997e1b0
--- /dev/null
@@ -0,0 +1,179 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test the setting of background color of form fields.</p>
+  </div>
+
+  <script type="text/javascript">
+  function changeBackgrounds(parent, color)
+  {
+    var children = parent.getChildren();
+    var child;
+
+    for (var i=0; i<children.length; i++)
+    {
+      child = children[i];
+
+      switch(child.classname)
+      {
+        case 'qx.ui.form.TextArea':
+        case 'qx.ui.form.TextField':
+        case 'qx.ui.form.ComboBox':
+        case 'qx.ui.form.PasswordField':
+          child.setBackgroundColor(color);
+          break;
+      };
+    };
+  };
+
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    function textChange(e) {
+      this.debug("Text changed: " + e.getData());
+    }
+
+    var t1 = new qx.ui.form.TextField;
+    t1.setValue("textfield");
+    t1.setTop(48);
+    t1.setLeft(20);
+
+    t1.addEventListener("changeText", textChange);
+    t1.addEventListener("input", function(e) {
+      this.debug("Input: " + e.getData());
+    });
+
+    d.add(t1);
+
+
+
+
+    var t2 = new qx.ui.form.PasswordField;
+    t2.setValue("passwordfield");
+    t2.setTop(80);
+    t2.setLeft(20);
+
+    t2.addEventListener("changeText", textChange);
+
+    d.add(t2);
+
+
+    var t3 = new qx.ui.form.TextArea;
+    t3.setValue("textarea");
+    t3.setTop(110);
+    t3.setLeft(20);
+    t3.setWidth(300);
+    t3.setHeight(60);
+
+    t3.addEventListener("changeText", textChange);
+
+    d.add(t3);
+
+
+    var t4 = new qx.ui.form.TextField;
+    t4.setValue("textfield");
+    t4.setTop(200);
+    t4.setLeft(20);
+    t4.setWidth(200);
+    t4.setMaxLength(100);
+    t4.setReadOnly(true);
+
+    t4.addEventListener("changeText", textChange);
+
+    d.add(t4);
+
+
+    var t5 = new qx.ui.form.TextField;
+    t5.setValue("You are foo!");
+    t5.setTop(240);
+    t5.setLeft(20);
+
+    t5.addEventListener("changeText", textChange);
+
+    d.add(t5);
+
+    var c1 = new qx.ui.form.ComboBox;
+    c1.setTop(280);
+    c1.setLeft(20);
+
+    c1.addEventListener("beforeInitialOpen", function(e)
+    {
+      var item;
+
+      for(var i=1; i<=30; i++)
+      {
+        item = new qx.ui.form.ListItem("Item No " + i);
+        !(i % 10) && (item.setEnabled(false));
+        c1.add(item);
+      };
+    });
+
+    // this does not work here (if there is no content)
+    c1.setSelected(c1.getList().getFirstChild());
+
+    c1.addEventListener("changeValue", function(e) {
+      this.debug("New value: " + e.getData());
+    });
+
+    c1.addEventListener("changeSelected", function(e) {
+      this.debug("New selected: " + e.getData());
+    });
+
+
+
+
+    var b1 = new qx.ui.form.CheckBox("Editable");
+
+    b1.set({ top: 282, left: 150 });
+
+    b1.addEventListener("changeChecked", function(e) {
+      c1.setEditable(e.getData());
+    });
+
+
+    var b2 = new qx.ui.form.Button("red", "icon/16/colors.png");   b2.set({left:10,top:10});
+    var b3 = new qx.ui.form.Button("green", "icon/16/colors.png"); b3.set({left:10,top:40});
+    var b4 = new qx.ui.form.Button("white", "icon/16/colors.png"); b4.set({left:10,top:70});
+
+    b2.addEventListener("click", function(e) { changeBackgrounds(d,this.getLabel()); });
+    b3.addEventListener("click", function(e) { changeBackgrounds(d,this.getLabel()); });
+    b4.addEventListener("click", function(e) { changeBackgrounds(d,this.getLabel()); });
+
+    var fs = new qx.ui.groupbox.GroupBox("BackgroundColor");
+    fs.set({left:400,top:50,width:150,height:"auto"});
+    fs.add(b2,b3,b4);
+
+
+
+      d.add(c1, b1, fs);
+
+
+
+
+
+
+
+
+    // Color Themes
+    qx.manager.object.ColorManager.getInstance().createThemeList(d, 20, 320);
+
+
+
+
+
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FlowLayout_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FlowLayout_1.html
new file mode 100644 (file)
index 0000000..6ec2571
--- /dev/null
@@ -0,0 +1,319 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Tests for the new implementation of the qx.ui.layout.FlowLayout widget.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+
+
+    var flow1 = new qx.ui.layout.FlowLayout;
+
+    flow1.setTop(48);
+    flow1.setLeft(20);
+    flow1.setRight(335);
+    flow1.setBottom(200);
+
+    // flow1.setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
+    // flow1.setPadding(8);
+
+    flow1.setHorizontalSpacing(4);
+    flow1.setVerticalSpacing(4);
+    
+    // flow1.setHorizontalChildrenAlign("right");
+    // flow1.setVerticalChildrenAlign("bottom");
+    
+    // flow1.setReverseChildrenOrder(true);
+    
+    d.add(flow1);
+
+    
+    
+    var w1 = new qx.ui.basic.Terminator;
+    
+    w1.setBackgroundColor("orange");
+    w1.setWidth(300);
+    w1.setHeight(20);
+    
+    
+    var w2 = new qx.ui.basic.Terminator;
+    
+    w2.setBackgroundColor("blue");
+    w2.setWidth(200);
+    w2.setHeight(50);
+
+
+    var w3 = new qx.ui.basic.Terminator;
+    
+    w3.setBackgroundColor("green");
+    w3.setWidth(100);
+    w3.setHeight(150);
+    w3.setMarginLeft(20);
+
+    var w4 = new qx.ui.basic.Terminator;
+    
+    w4.setBackgroundColor("purple");
+    w4.setWidth("30%");
+    w4.setHeight("10%");
+    
+    var w5 = new qx.ui.basic.Terminator;
+    
+    w5.setBackgroundColor("yellow");
+    w5.setWidth(50);
+    w5.setHeight(80);
+    
+    var w6 = new qx.ui.basic.Terminator;
+    
+    w6.setBackgroundColor("red");
+    w6.setWidth(400);
+    w6.setHeight(50);     
+    
+    var i1 = new qx.ui.basic.Image("icon/32/clock.png");
+    var i2 = new qx.ui.basic.Image("icon/32/colors.png");
+    
+    i2.setResizeToInner(true);
+       
+    var c1 = new qx.ui.basic.Label("Hello World");
+    var c2 = new qx.ui.basic.Label("<ol><li>Simple HTML List</li><li>with one</li><li>and another item</li></ol>");
+    
+    var a1 = new qx.ui.form.Button("Press", "icon/16/bell.png");
+
+
+    flow1.add(w1, i1, w2, w3, a1, c2, w4, i2, w5, c1, w6);
+    
+    
+    
+    
+    
+    w1.addEventListener("click", function(e) {
+      this.setMaxWidth(this.getMaxWidth() == 50 ? null : 50);
+    });
+    
+    w2.addEventListener("click", function(e)
+    {
+      if (this.getWidth() == 200)
+      {
+        this.setWidth(100); 
+        this.setHeight(200);
+      }
+    else
+      {
+        this.setWidth(200);
+        this.setHeight(50);
+      };
+    });
+    
+    i1.addEventListener("click", function(e) {
+      this.setSource(this.getSource() == "icon/32/clock.png" ? "icon/128/clock.png" : "icon/32/clock.png");
+    });
+    
+    i2.addEventListener("click", function(e)
+    {
+      this.setWidth(this.getWidth() == "auto" ? 128 : "auto");
+      this.setHeight(this.getHeight() == "auto" ? 128 : "auto");
+    });
+    
+    c1.addEventListener("click", function(e) {
+      this.setHtml(this.getHtml() == "Hello World" ? "Yeah, qooxdoo is great" : "Hello World");
+    });
+    
+    
+    
+    
+    // *************************************************************
+    
+    var controlBox = new qx.ui.layout.VerticalBoxLayout;
+    
+    controlBox.setLeft(20);
+    controlBox.setBottom(48);
+    controlBox.setRight(335);
+    controlBox.setWidth(null);
+    controlBox.setHeight("auto");
+    controlBox.setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
+    controlBox.setSpacing(4);
+    controlBox.setPadding(8);
+    
+    d.add(controlBox);
+    
+    
+    
+    
+    var cc0 = new qx.ui.basic.Label("Spacing: ");
+    cc0.setWidth(50);
+    
+    var bc0 = new qx.ui.form.Button("0x0", "icon/16/button-ok.png");
+    var bc1 = new qx.ui.form.Button("4x4", "icon/16/button-ok.png");
+    var bc2 = new qx.ui.form.Button("8x8", "icon/16/button-ok.png");
+    var bc3 = new qx.ui.form.Button("20x20", "icon/16/button-ok.png");
+    var bc4 = new qx.ui.form.Button("0x10", "icon/16/button-ok.png");
+    var bc5 = new qx.ui.form.Button("10x0", "icon/16/button-ok.png");
+    
+    bc0.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(0);
+      flow1.setVerticalSpacing(0);
+    });
+
+    bc1.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(4);
+      flow1.setVerticalSpacing(4);
+    });
+
+    bc2.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(8);
+      flow1.setVerticalSpacing(8);
+    });
+
+    bc3.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(20);
+      flow1.setVerticalSpacing(20);
+    });
+
+    bc4.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(0);
+      flow1.setVerticalSpacing(10);
+    });
+
+    bc5.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(10);
+      flow1.setVerticalSpacing(0);
+    });
+    
+    var hc0 = new qx.ui.layout.HorizontalBoxLayout;
+    
+    hc0.add(cc0, bc0, bc1, bc2, bc3, bc4, bc5);
+    hc0.setVerticalChildrenAlign("middle");
+    hc0.setHeight("auto");
+    
+    controlBox.add(hc0);
+    
+    
+    
+    
+    
+    
+    var cr0 = new qx.ui.basic.Label("Order: ");
+    cr0.setWidth(50);
+    
+    var br0 = new qx.ui.form.Button("Default", "icon/16/button-ok.png");
+    var br1 = new qx.ui.form.Button("Reversed", "icon/16/button-ok.png");    
+    
+    br0.addEventListener("execute", function(e) {
+      flow1.setReverseChildrenOrder(false);
+    });
+    
+    br1.addEventListener("execute", function(e) {
+      flow1.setReverseChildrenOrder(true);
+    });   
+    
+    
+    
+    var hc1 = new qx.ui.layout.HorizontalBoxLayout;
+    
+    hc1.add(cr0, br0, br1);
+    hc1.setVerticalChildrenAlign("middle");
+    hc1.setHeight("auto");
+    
+    controlBox.add(hc1);
+    
+    
+    
+    
+    
+    
+    
+    var cr0 = new qx.ui.basic.Label("Align: ");
+    cr0.setWidth(50);
+    
+    var br0 = new qx.ui.form.Button("Top", "icon/16/button-ok.png");
+    var br1 = new qx.ui.form.Button("Bottom", "icon/16/button-ok.png");
+    var br2 = new qx.ui.form.Button("Left", "icon/16/button-ok.png");
+    var br3 = new qx.ui.form.Button("Right", "icon/16/button-ok.png");
+    
+    br0.addEventListener("execute", function(e) {
+      flow1.setVerticalChildrenAlign("top");
+    });
+    
+    br1.addEventListener("execute", function(e) {
+      flow1.setVerticalChildrenAlign("bottom");
+    });   
+    
+    br2.addEventListener("execute", function(e) {
+      flow1.setHorizontalChildrenAlign("left");
+    });   
+
+    br3.addEventListener("execute", function(e) {
+      flow1.setHorizontalChildrenAlign("right");
+    });   
+    
+    
+    var hc1 = new qx.ui.layout.HorizontalBoxLayout;
+    
+    hc1.add(cr0, br0, br1, br2, br3);
+    hc1.setVerticalChildrenAlign("middle");
+    hc1.setHeight("auto");
+    
+    controlBox.add(hc1);    
+    
+    
+    
+    
+    
+    
+    
+    var ca0 = new qx.ui.basic.Label("Children: ");
+    ca0.setWidth(50);
+    
+    var ba0 = new qx.ui.form.Button("New Atom", "icon/16/button-ok.png");
+    var ba1 = new qx.ui.form.Button("New Image", "icon/16/button-ok.png");    
+    var ba2 = new qx.ui.form.Button("New Atom to #3", "icon/16/button-ok.png");    
+    var ba3 = new qx.ui.form.Button("New Image to #6", "icon/16/button-ok.png");    
+    var ba4 = new qx.ui.form.Button("Remove First", "icon/16/button-ok.png");    
+    
+    ba0.addEventListener("execute", function(e) {
+      flow1.add(new qx.ui.basic.Atom("New Atom", "icon/16/services.png"));
+    });
+    
+    ba1.addEventListener("execute", function(e) {
+      flow1.add(new qx.ui.basic.Image("icon/64/pipe.png"));
+    });   
+    
+    ba2.addEventListener("execute", function(e) {
+      flow1.addAt(new qx.ui.basic.Atom("New Atom", "icon/16/bell.png"), 3);
+    });  
+    
+    ba3.addEventListener("execute", function(e) {
+      flow1.addAt(new qx.ui.basic.Image("icon/64/vectorgraphics.png"), 6);
+    });  
+    
+    ba4.addEventListener("execute", function(e) {
+      flow1.remove(flow1.getFirstChild());
+    });              
+    
+    var ha1 = new qx.ui.layout.HorizontalBoxLayout;
+    
+    ha1.add(ca0, ba0, ba1, ba2, ba3, ba4);
+    ha1.setVerticalChildrenAlign("middle");
+    ha1.setHeight("auto");
+    
+    controlBox.add(ha1);   
+    
+    
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FlowLayout_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FlowLayout_2.html
new file mode 100644 (file)
index 0000000..ba19c87
--- /dev/null
@@ -0,0 +1,193 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Tests for the new implementation of the qx.ui.layout.FlowLayout widget.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var flow1 = new qx.ui.layout.FlowLayout;
+
+    flow1.setTop(48);
+    flow1.setLeft(20);
+    flow1.setRight(335);
+    flow1.setBottom(200);
+
+    // flow1.setBorder(qx.renderer.border.BorderPresets.getInstance().ridge);
+    // flow1.setPadding(8);
+
+    flow1.setHorizontalSpacing(4);
+    flow1.setVerticalSpacing(4);
+    
+    // flow1.setOverflow("scrollY");
+
+    d.add(flow1);
+
+    for (var i=0, witer; i<100; i++)
+    {
+      witer = new qx.ui.basic.Terminator;
+      
+      witer.setBackgroundColor("white");
+      witer.setWidth(50);
+      witer.setHeight(50);
+      
+      flow1.add(witer);
+    };
+    
+    
+    // *************************************************************
+    
+    var controlBox = new qx.ui.layout.VerticalBoxLayout;
+    
+    controlBox.setLeft(20);
+    controlBox.setBottom(48);
+    controlBox.setRight(335);
+    controlBox.setWidth(null);
+    controlBox.setHeight("auto");
+    controlBox.setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
+    controlBox.setSpacing(4);
+    controlBox.setPadding(8);
+    
+    d.add(controlBox);
+    
+    
+    
+    
+    var cc0 = new qx.ui.basic.Label("Spacing: ");
+    cc0.setWidth(50);
+    
+    var bc0 = new qx.ui.form.Button("0x0", "icon/16/button-ok.png");
+    var bc1 = new qx.ui.form.Button("4x4", "icon/16/button-ok.png");
+    var bc2 = new qx.ui.form.Button("8x8", "icon/16/button-ok.png");
+    var bc3 = new qx.ui.form.Button("20x20", "icon/16/button-ok.png");
+    var bc4 = new qx.ui.form.Button("0x10", "icon/16/button-ok.png");
+    var bc5 = new qx.ui.form.Button("10x0", "icon/16/button-ok.png");
+    
+    bc0.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(0);
+      flow1.setVerticalSpacing(0);
+    });
+
+    bc1.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(4);
+      flow1.setVerticalSpacing(4);
+    });
+
+    bc2.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(8);
+      flow1.setVerticalSpacing(8);
+    });
+
+    bc3.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(20);
+      flow1.setVerticalSpacing(20);
+    });
+
+    bc4.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(0);
+      flow1.setVerticalSpacing(10);
+    });
+
+    bc5.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(10);
+      flow1.setVerticalSpacing(0);
+    });
+    
+    var hc0 = new qx.ui.layout.HorizontalBoxLayout;
+    
+    hc0.add(cc0, bc0, bc1, bc2, bc3, bc4, bc5);
+    hc0.setVerticalChildrenAlign("middle");
+    hc0.setHeight("auto");
+    
+    controlBox.add(hc0);
+    
+    
+    
+    
+    
+    
+    var cr0 = new qx.ui.basic.Label("Order: ");
+    cr0.setWidth(50);
+    
+    var br0 = new qx.ui.form.Button("Default", "icon/16/button-ok.png");
+    var br1 = new qx.ui.form.Button("Reversed", "icon/16/button-ok.png");    
+    
+    br0.addEventListener("execute", function(e) {
+      flow1.setReverseChildrenOrder(false);
+    });
+    
+    br1.addEventListener("execute", function(e) {
+      flow1.setReverseChildrenOrder(true);
+    });   
+    
+    
+    
+    var hc1 = new qx.ui.layout.HorizontalBoxLayout;
+    
+    hc1.add(cr0, br0, br1);
+    hc1.setVerticalChildrenAlign("middle");
+    hc1.setHeight("auto");
+    
+    controlBox.add(hc1);
+    
+    
+    
+    
+    
+    
+    
+    var ca0 = new qx.ui.basic.Label("Children: ");
+    ca0.setWidth(50);
+    
+    var ba0 = new qx.ui.form.Button("New Atom", "icon/16/button-ok.png");
+    var ba1 = new qx.ui.form.Button("New Image", "icon/16/button-ok.png");    
+    var ba2 = new qx.ui.form.Button("New Atom to #3", "icon/16/button-ok.png");    
+    var ba3 = new qx.ui.form.Button("New Image to #6", "icon/16/button-ok.png");    
+    var ba4 = new qx.ui.form.Button("Remove First", "icon/16/button-ok.png");    
+    
+    ba0.addEventListener("execute", function(e) {
+      flow1.add(new qx.ui.basic.Atom("New Atom", "icon/16/services.png"));
+    });
+    
+    ba1.addEventListener("execute", function(e) {
+      flow1.add(new qx.ui.basic.Image("icon/64/pipe.png"));
+    });   
+    
+    ba2.addEventListener("execute", function(e) {
+      flow1.addAt(new qx.ui.basic.Atom("New Atom", "icon/16/bell.png"), 3);
+    });  
+    
+    ba3.addEventListener("execute", function(e) {
+      flow1.addAt(new qx.ui.basic.Image("icon/64/vectorgraphics.png"), 6);
+    });  
+    
+    ba4.addEventListener("execute", function(e) {
+      flow1.remove(flow1.getFirstChild());
+    });              
+    
+    var ha1 = new qx.ui.layout.HorizontalBoxLayout;
+    
+    ha1.add(ca0, ba0, ba1, ba2, ba3, ba4);
+    ha1.setVerticalChildrenAlign("middle");
+    ha1.setHeight("auto");
+    
+    controlBox.add(ha1);   
+    
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FlowLayout_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FlowLayout_3.html
new file mode 100644 (file)
index 0000000..99c27e1
--- /dev/null
@@ -0,0 +1,277 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Tests for the new implementation of the qx.ui.layout.FlowLayout widget.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+
+
+    var flow1 = new qx.ui.layout.FlowLayout;
+
+    flow1.setTop(48);
+    flow1.setLeft(20);
+    flow1.setRight(335);
+    // flow1.setWidth("auto");
+    flow1.setHeight("auto");
+
+    flow1.setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
+    flow1.setPadding(8);
+
+    flow1.setHorizontalSpacing(4);
+    flow1.setVerticalSpacing(4);
+    
+    // flow1.setReverseChildrenOrder(true);
+    
+    d.add(flow1);
+
+    
+    
+    var w1 = new qx.ui.basic.Terminator;
+    
+    w1.setBackgroundColor("orange");
+    w1.setWidth(300);
+    w1.setHeight(20);
+    
+    
+    var w2 = new qx.ui.basic.Terminator;
+    
+    w2.setBackgroundColor("blue");
+    w2.setWidth(200);
+    w2.setHeight(50);
+
+
+    var w3 = new qx.ui.basic.Terminator;
+    
+    w3.setBackgroundColor("green");
+    w3.setWidth(100);
+    w3.setHeight(150);
+    w3.setMarginLeft(20);
+
+    var w4 = new qx.ui.basic.Terminator;
+    
+    w4.setBackgroundColor("purple");
+    w4.setWidth(100);
+    w4.setHeight(20);
+    
+    var w5 = new qx.ui.basic.Terminator;
+    
+    w5.setBackgroundColor("yellow");
+    w5.setWidth(50);
+    w5.setHeight(80);
+    
+    var w6 = new qx.ui.basic.Terminator;
+    
+    w6.setBackgroundColor("red");
+    w6.setWidth(400);
+    w6.setHeight(50);     
+    
+    var i1 = new qx.ui.basic.Image("icon/32/clock.png");
+    var i2 = new qx.ui.basic.Image("icon/32/colors.png");
+    
+    i2.setResizeToInner(true);
+       
+    var c1 = new qx.ui.basic.Label("Hello World");
+    var c2 = new qx.ui.basic.Label("<ol><li>Simple HTML List</li><li>with one</li><li>and another item</li></ol>");
+    
+    var a1 = new qx.ui.form.Button("Press", "icon/16/bell.png");
+
+
+    flow1.add(w1, i1, w2, w3, a1, c2, w4, i2, w5, c1, w6);
+    
+    
+    
+    
+    
+    w1.addEventListener("click", function(e) {
+      this.setMaxWidth(this.getMaxWidth() == 50 ? null : 50);
+    });
+    
+    w2.addEventListener("click", function(e)
+    {
+      if (this.getWidth() == 200)
+      {
+        this.setWidth(100); 
+        this.setHeight(200);
+      }
+    else
+      {
+        this.setWidth(200);
+        this.setHeight(50);
+      };
+    });
+    
+    i1.addEventListener("click", function(e) {
+      this.setSource(this.getSource() == "icon/32/clock.png" ? "icon/128/clock.png" : "icon/32/clock.png");
+    });
+    
+    i2.addEventListener("click", function(e)
+    {
+      this.setWidth(this.getWidth() == "auto" ? 128 : "auto");
+      this.setHeight(this.getHeight() == "auto" ? 128 : "auto");
+    });
+    
+    c1.addEventListener("click", function(e) {
+      this.setHtml(this.getHtml() == "Hello World" ? "Yeah, qooxdoo is great" : "Hello World");
+    });
+    
+    
+    
+    
+    // *************************************************************
+    
+    var controlBox = new qx.ui.layout.VerticalBoxLayout;
+    
+    controlBox.setLeft(20);
+    controlBox.setBottom(48);
+    controlBox.setRight(335);
+    controlBox.setHeight("auto");
+    controlBox.setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
+    controlBox.setSpacing(4);
+    controlBox.setPadding(8);
+    
+    d.add(controlBox);
+    
+    
+    
+    
+    var cc0 = new qx.ui.basic.Label("Spacing: ");
+    cc0.setWidth(50);
+    
+    var bc0 = new qx.ui.form.Button("0x0", "icon/16/button-ok.png");
+    var bc1 = new qx.ui.form.Button("4x4", "icon/16/button-ok.png");
+    var bc2 = new qx.ui.form.Button("8x8", "icon/16/button-ok.png");
+    var bc3 = new qx.ui.form.Button("20x20", "icon/16/button-ok.png");
+    var bc4 = new qx.ui.form.Button("0x10", "icon/16/button-ok.png");
+    var bc5 = new qx.ui.form.Button("10x0", "icon/16/button-ok.png");
+    
+    bc0.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(0);
+      flow1.setVerticalSpacing(0);
+    });
+
+    bc1.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(4);
+      flow1.setVerticalSpacing(4);
+    });
+
+    bc2.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(8);
+      flow1.setVerticalSpacing(8);
+    });
+
+    bc3.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(20);
+      flow1.setVerticalSpacing(20);
+    });
+
+    bc4.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(0);
+      flow1.setVerticalSpacing(10);
+    });
+
+    bc5.addEventListener("execute", function(e) {
+      flow1.setHorizontalSpacing(10);
+      flow1.setVerticalSpacing(0);
+    });
+    
+    var hc0 = new qx.ui.layout.HorizontalBoxLayout;
+    
+    hc0.add(cc0, bc0, bc1, bc2, bc3, bc4, bc5);
+    hc0.setVerticalChildrenAlign("middle");
+    hc0.setHeight("auto");
+    
+    controlBox.add(hc0);
+    
+    
+    
+    
+    
+    
+    var cr0 = new qx.ui.basic.Label("Order: ");
+    cr0.setWidth(50);
+    
+    var br0 = new qx.ui.form.Button("Default", "icon/16/button-ok.png");
+    var br1 = new qx.ui.form.Button("Reversed", "icon/16/button-ok.png");    
+    
+    br0.addEventListener("execute", function(e) {
+      flow1.setReverseChildrenOrder(false);
+    });
+    
+    br1.addEventListener("execute", function(e) {
+      flow1.setReverseChildrenOrder(true);
+    });   
+    
+    
+    
+    var hc1 = new qx.ui.layout.HorizontalBoxLayout;
+    
+    hc1.add(cr0, br0, br1);
+    hc1.setVerticalChildrenAlign("middle");
+    hc1.setHeight("auto");
+    
+    controlBox.add(hc1);
+    
+    
+    
+    
+    
+    
+    
+    var ca0 = new qx.ui.basic.Label("Children: ");
+    ca0.setWidth(50);
+    
+    var ba0 = new qx.ui.form.Button("New Atom", "icon/16/button-ok.png");
+    var ba1 = new qx.ui.form.Button("New Image", "icon/16/button-ok.png");    
+    var ba2 = new qx.ui.form.Button("New Atom to #3", "icon/16/button-ok.png");    
+    var ba3 = new qx.ui.form.Button("New Image to #6", "icon/16/button-ok.png");    
+    var ba4 = new qx.ui.form.Button("Remove First", "icon/16/button-ok.png");    
+    
+    ba0.addEventListener("execute", function(e) {
+      flow1.add(new qx.ui.basic.Atom("New Atom", "icon/16/services.png"));
+    });
+    
+    ba1.addEventListener("execute", function(e) {
+      flow1.add(new qx.ui.basic.Image("icon/64/pipe.png"));
+    });   
+    
+    ba2.addEventListener("execute", function(e) {
+      flow1.addAt(new qx.ui.basic.Atom("New Atom", "icon/16/bell.png"), 3);
+    });  
+    
+    ba3.addEventListener("execute", function(e) {
+      flow1.addAt(new qx.ui.basic.Image("icon/64/vectorgraphics.png"), 6);
+    });  
+    
+    ba4.addEventListener("click", function(e) {
+      flow1.remove(flow1.getFirstChild());
+    });              
+    
+    var ha1 = new qx.ui.layout.HorizontalBoxLayout;
+    
+    ha1.add(ca0, ba0, ba1, ba2, ba3, ba4);
+    ha1.setVerticalChildrenAlign("middle");
+    ha1.setHeight("auto");
+    
+    controlBox.add(ha1);   
+    
+    
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FocusManager_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FocusManager_1.html
new file mode 100644 (file)
index 0000000..d25b311
--- /dev/null
@@ -0,0 +1,108 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Some tests for some of the most used properties of qx.ui.basic.Terminator (coordinates, dimensions, backgroundColor, opacity, ...).</p>
+    <p>Also here are the first test of some widgets which extend qx.ui.basic.Terminator: qx.ui.form.TextField and qx.ui.form.PasswordField. These extended
+    widgets also interacts like the basic QxTerminators with the qx.event.handler.FocusHandler.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var c1 = new qx.ui.basic.Terminator;
+    d.add(c1);
+
+    c1.setTabIndex(1);
+    c1.setHeight(60);
+    c1.setWidth(60);
+    c1.setTop(48);
+    c1.setLeft(20);
+    c1.setBackgroundColor("blue");
+    c1.setOpacity(0.5);
+
+    c1.addEventListener("keydown", function(e){
+      if (e.getKeyIdentifier() != "Space") {
+        return;
+      };
+
+      this.setBackgroundColor("rgb(" + Math.round(Math.random()*255) + "," + Math.round(Math.random()*255) + "," + Math.round(Math.random()*255) + ")");
+    });
+
+
+    var c2 = new qx.ui.basic.Terminator;
+    d.add(c2);
+
+    c2.setTabIndex(2);
+    c2.setHeight(60);
+    c2.setWidth(60);
+    c2.setTop(68);
+    c2.setLeft(40);
+    c2.setBackgroundColor("orange");
+    c2.setOpacity(0.5);
+
+    c2.addEventListener("keydown", function(e){
+      if (e.getKeyIdentifier() != "Space") {
+        return;
+      };
+
+      this.setBackgroundColor("rgb(" + Math.round(Math.random()*255) + "," + Math.round(Math.random()*255) + "," + Math.round(Math.random()*255) + ")");
+    });
+
+
+    var t1 = new qx.ui.form.TextField;
+    t1.setValue("textfield");
+    t1.setTop(140);
+    t1.setLeft(20);
+    t1.setTabIndex(3);
+
+    d.add(t1);
+
+
+
+    var t2 = new qx.ui.form.PasswordField;
+    t2.setValue("passwordfield");
+    t2.setTop(170);
+    t2.setLeft(20);
+    t2.setTabIndex(4);
+
+    d.add(t2);
+
+
+    var t3 = new qx.ui.form.TextArea;
+    t3.setValue("textarea");
+    t3.setTop(200);
+    t3.setLeft(20);
+    t3.setWidth(300);
+    t3.setHeight(60);
+    t3.setTabIndex(5);
+
+    d.add(t3);
+
+
+    var t4 = new qx.ui.form.TextField;
+    t4.setValue("textfield");
+    t4.setTop(300);
+    t4.setLeft(20);
+    t4.setWidth(200);
+    t4.setMaxLength(100);
+    t4.setReadOnly(true);
+    t4.setTabIndex(6);
+
+    d.add(t4);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Font_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Font_1.html
new file mode 100644 (file)
index 0000000..42e7cbc
--- /dev/null
@@ -0,0 +1,63 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.renderer.font.Font object for QxLabels inside QxAtoms.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var f1 = new qx.ui.layout.CanvasLayout;
+   
+    var a1 = new qx.ui.basic.Atom("Hello World");
+    
+    var b1 = new qx.ui.form.Button("Serif, 16px");
+    var b2 = new qx.ui.form.Button("Serif, 24px");
+    var b3 = new qx.ui.form.Button("Sans Serif, 16px");
+    var b4 = new qx.ui.form.Button("Sans Serif, 24px");
+    
+    b1.addEventListener("execute", function() {
+      a1.getLabelObject().setFont("16px serif");
+    });
+    
+    b2.addEventListener("execute", function() {
+      a1.getLabelObject().setFont("24px serif");
+    });
+
+    b3.addEventListener("execute", function() {
+      a1.getLabelObject().setFont("16px sans-serif");
+    });
+
+    b4.addEventListener("execute", function() {
+      a1.getLabelObject().setFont("24px sans-serif");
+    });
+
+    f1.setDimension("auto", "auto");
+    f1.setLocation(20, 48);
+    f1.setBorder("1px solid red");
+    
+    a1.setLocation(0, 0);
+    a1.getLabelObject().setFont("16px serif");
+    
+    b1.setLocation(200, 48);
+    b2.setLocation(200, 78);
+    b3.setLocation(200, 108);
+    b4.setLocation(200, 138);
+    
+    f1.add(a1);
+    qx.ui.core.ClientDocument.getInstance().add(f1, b1, b2, b3, b4);    
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FormUtils_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/FormUtils_1.html
new file mode 100644 (file)
index 0000000..2e7638d
--- /dev/null
@@ -0,0 +1,86 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing QxFormUtils</p>
+  </div>
+
+  <form id="mainform" style="position: absolute; left:300px; top: 48px">
+    <fieldset>
+      <legend>Basics</legend>
+      <input type="text" name="givenname" value="Given Name"/>
+      <br/>
+      <input type="text" name="name" value="Name"/>
+      <br/>
+      <input type="password" name="password" value="Password"/>
+    </fieldset>
+    <br/>
+    <input type="checkbox" checked="checked" name="human" id="human" value="true"/>
+    <label for="human">Human</label>
+    <br/>
+    <input type="checkbox" name="old" id="old" value="true"/>
+    <label for="old">Old</label>
+    <br/>
+    <input type="radio" name="gender" checked="checked" value="male" id="male"/>
+    <label for="male">Male</label">
+    <br/>
+    <input type="radio" name="gender" value="female" id="female"/>
+    <label for="female">Female</label">
+    <br/>
+    <label for="color">Favorite Color (Single)</label>
+    <br/>
+    <select name="color" id="color">
+      <option value="red">Red</option>
+      <option value="blue">Blue</option>
+      <option value="green">Green</option>
+      <option value="yellow">Yellow</option>
+      <option value="black">Black</option>
+      <option value="white">White</option>
+    </select>
+    <br/>
+    <label for="pets">Your Pets (Multiple)</label>
+    <br/>
+    <select name="pets" id="pets" multiple="multiple" size="3">
+      <option value="dog">Dog</option>
+      <option value="cat">Cat</option>
+      <option value="bird">Bird</option>
+      <option value="rabbit">Rabbit</option>
+      <option value="hamster">Hamster</option>
+    </select>
+    <br/>
+    <input type="submit" value="Send Data"/>
+  </form>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var btn = new qx.ui.form.Button("Encode");
+    btn.setLocation(20, 48);
+    qx.ui.core.ClientDocument.getInstance().add(btn);
+
+    var area = new qx.ui.form.TextArea;
+    area.setLocation(20, 100);
+    area.setDimension(200, 100);
+    qx.ui.core.ClientDocument.getInstance().add(area);
+
+    QxFormUtils.bind(document.getElementById("mainform"), function() {
+      alert("Submitting Form Replacement...");
+    });
+
+    btn.addEventListener("execute", function() {
+      area.setValue(QxFormUtils.encodeForm(document.getElementById("mainform")));
+    });
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Gallery_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Gallery_2.html
new file mode 100644 (file)
index 0000000..35cf671
--- /dev/null
@@ -0,0 +1,135 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test file for qx.ui.embed.Gallery</p>
+  </div>
+
+  <style type="text/css">
+    .qx_ui_embed_Gallery .galleryFrame{
+      padding: 2px;
+    }
+
+    .qx_ui_embed_Gallery .galleryCell{
+      border: 1px solid #444;
+      background: #fff;
+      margin: 2px;
+      float: left;
+      overflow: hidden;
+
+      font-family: Tahoma, Verdana, sans-serif;
+      font-size: 10px;
+
+      cursor: default;
+
+      -moz-user-select: none;
+      user-select: none;
+    }
+
+    .qx_ui_embed_Gallery .galleryCell img{
+      vertical-align: bottom;
+      display: block;
+    }
+
+    .qx_ui_embed_Gallery .galleryCell .galleryTitle,
+    .qx_ui_embed_Gallery .galleryCell .galleryComment{
+      background: #eee;
+      padding: 3px 6px;
+      text-align: center;
+      cursor: default;
+      overflow: hidden;
+      white-space: nowrap;
+    }
+
+    .qx_ui_embed_Gallery .galleryCell .galleryTitle{
+      border-bottom: 1px solid #aaa;
+    }
+
+    .qx_ui_embed_Gallery .galleryCell .galleryComment{
+      border-top: 1px solid #aaa;
+    }
+
+    .qx_ui_embed_Gallery .galleryCell-Selected{
+      background: #DCE8F6;
+      border: 1px solid #2760A1;
+    }
+
+    .qx_ui_embed_Gallery .galleryCell-Selected .galleryTitle,
+    .qx_ui_embed_Gallery .galleryCell-Selected .galleryComment{
+      background: #9BBFE7;
+    }
+
+    .qx_ui_embed_Gallery .galleryCell-Selected .galleryTitle{
+      border-bottom: 1px dotted #2760A1;
+    }
+
+    .qx_ui_embed_Gallery .galleryCell-Selected .galleryComment{
+      border-top: 1px dotted #2760A1;
+    }
+
+
+    /* customize */
+
+    .qx_ui_embed_Gallery{
+      background: #fff;
+      padding: 5px;
+    }
+
+    .qx_ui_embed_Gallery .galleryCell{
+      margin: 5px;
+      border: 1px solid #DCDFE8;
+    }
+
+    .qx_ui_embed_Gallery .galleryCell-Selected{
+      border: 1px solid #5E6474;
+      background: #DADDE4;
+    }
+  </style>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function() 
+    {
+      var galleryList = [];
+
+      for (var i=0; i<100; i++)
+      {
+        galleryList.push({
+          display : "bmzN9ci5",
+          width : 350,
+          height : 350,
+          thumbWidth : 64,
+          thumbHeight : 64,
+          title : "gohome.png",
+          timestamp : Math.random().toString(),
+          comment : "Cool Comment",
+          id : "7686191121780974-10682",
+          src : qx.manager.object.AliasManager.getInstance().resolvePath("icon/64/tv.png")
+        });
+      };
+
+      var gallery = new qx.ui.embed.Gallery(galleryList);
+
+      gallery.setLeft(20);
+      gallery.setRight(335);
+      gallery.setTop(48);
+      gallery.setBottom(48);
+      gallery.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      gallery.setShowTitle(false);
+      gallery.setShowComment(false);
+      gallery.setDecorHeight(0);
+
+      qx.ui.core.ClientDocument.getInstance().add(gallery);
+    });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Gallery_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Gallery_3.html
new file mode 100644 (file)
index 0000000..4da5171
--- /dev/null
@@ -0,0 +1,178 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test file for qx.ui.embed.Gallery, now with QxToolTips assigned.</p>
+    <button onclick="updateAdd()">Update Add</button>
+  </div>
+
+  <style type="text/css">
+    .qx_ui_embed_Gallery .galleryFrame{
+      padding: 2px;
+    }
+    
+    .qx_ui_embed_Gallery .galleryCell{
+      border: 1px solid #444;
+      background: #fff;
+      margin: 2px;
+      float: left;
+      overflow: hidden;
+    
+      font-family: Tahoma, Verdana, sans-serif;
+      font-size: 10px;
+    
+      cursor: default;
+    
+      -moz-user-select: none;
+      user-select: none;
+    }
+    
+    .qx_ui_embed_Gallery .galleryCell img{
+      vertical-align: bottom;
+      display: block;
+    }
+    
+    .qx_ui_embed_Gallery .galleryCell .galleryTitle,
+    .qx_ui_embed_Gallery .galleryCell .galleryComment{
+      background: #eee;
+      padding: 3px 6px;
+      text-align: center;
+      cursor: default;
+      overflow: hidden;
+      white-space: nowrap;
+    }
+    
+    .qx_ui_embed_Gallery .galleryCell .galleryTitle{
+      border-bottom: 1px solid #aaa;
+    }
+    
+    .qx_ui_embed_Gallery .galleryCell .galleryComment{
+      border-top: 1px solid #aaa;
+    }
+    
+    .qx_ui_embed_Gallery .galleryCell-Selected{
+      background: #DCE8F6;
+      border: 1px solid #2760A1;
+    }
+    
+    .qx_ui_embed_Gallery .galleryCell-Selected .galleryTitle,
+    .qx_ui_embed_Gallery .galleryCell-Selected .galleryComment{
+      background: #9BBFE7;
+    }
+    
+    .qx_ui_embed_Gallery .galleryCell-Selected .galleryTitle{
+      border-bottom: 1px dotted #2760A1;
+    }
+    
+    .qx_ui_embed_Gallery .galleryCell-Selected .galleryComment{
+      border-top: 1px dotted #2760A1;
+    }
+
+    
+    /* customize */
+
+    .qx_ui_embed_Gallery{
+      background: #fff;
+      padding: 5px;
+    }
+
+    .qx_ui_embed_Gallery .galleryCell{
+      margin: 5px;
+      border: 1px solid #DCDFE8;
+    }
+
+    .qx_ui_embed_Gallery .galleryCell-Selected{
+      border: 1px solid #5E6474;
+      background: #DADDE4;
+    }
+  </style>
+
+  <script type="text/javascript">
+    var updateAdd;
+  
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var galleryList = [];
+
+      for (var i=0; i<100; i++)
+      {
+        galleryList.push({
+          display : "bmzN9ci5",
+          width : 350,
+          height : 350,
+          thumbWidth : 64,
+          thumbHeight : 64,
+          title : "gohome" + i + ".png",
+          timestamp : Math.random().toString(),
+          comment : "Cool Comment: " + i,
+          id : "7686191121780974-10682-" + i,
+          src : qx.manager.object.AliasManager.getInstance().resolvePath("icon/64/paint.png")
+        });
+      };
+
+      var gallery = new qx.ui.embed.Gallery(galleryList);
+
+      gallery.setLeft(20);
+      gallery.setRight(335);
+      gallery.setTop(48);
+      gallery.setBottom(48);
+      gallery.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      gallery.setShowTitle(false);
+      gallery.setShowComment(false);
+      gallery.setDecorHeight(0);
+
+      qx.ui.core.ClientDocument.getInstance().add(gallery);
+
+
+
+      var toolTip = new qx.ui.popup.ToolTip("Photo Details", "icon/32/colors.png");
+    gallery.setToolTip(toolTip);
+    
+      gallery.addEventListener("beforeToolTipAppear", function(e)
+    {
+      var vNode = e.getData();
+      var vEntry = this.getEntryByNode(vNode);
+
+        toolTip.getAtom().setLabel("<strong>" + vEntry.title + "</strong><br/>" + vEntry.comment);
+
+      this.setToolTip(toolTip);
+      });
+      
+      
+      updateAdd = function()
+      {
+        var galleryListUpdated = qx.lang.Array.copy(gallery.getList());
+        
+        for (var i=galleryListUpdated.length, j=i+10; i<j; i++)
+        {
+          galleryListUpdated.push({
+            display : "bmzN9ci5",
+            width : 350,
+            height : 350,
+            thumbWidth : 64,
+            thumbHeight : 64,
+            title : "gohome" + i + ".png",
+            timestamp : Math.random().toString(),
+            comment : "Cool Comment: " + i,
+            id : "7686191121780974-10682-" + i,
+            src : qx.manager.object.AliasManager.getInstance().resolvePath("icon/64/colors.png")
+          });
+        };      
+        
+        gallery.addFromUpdatedList(galleryListUpdated);
+      };
+      
+    });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Generate_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Generate_1.html
new file mode 100644 (file)
index 0000000..6541a4b
--- /dev/null
@@ -0,0 +1,267 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>qx.ui.basic.Atom is the parent class for buttons, menu entries, icons, checkboxes. While you can do,
+    you usually don't have to instantiate qx.ui.basic.Atom directly.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.lang.Array.merge = function(firstArray, secondArray)
+  {
+    var combinedArray = [], currentValue, indexInSecond;
+
+    for (var i=0, l=firstArray.length; i<l; i++) {
+      (indexInSecond = secondArray.indexOf(currentValue = firstArray[i])) == -1 ? combinedArray.push(currentValue) : qx.lang.Array.append(combinedArray, secondArray.splice(0, indexInSecond+1));
+    };
+
+    return combinedArray.concat(secondArray);
+  };
+
+  var a = [ "before3Mnu", "fileMnu", "editMnu", "saveMnu", "exitMenu" ];
+  var b = [ "before1Mnu", "before2Mnu", "fileMnu", "fooMnu", "editMnu", "saveMnu", "after1Mnu" ];
+
+  //alert(qx.lang.Array.merge(a, b));
+
+  var comp1 =
+  {
+    bars :
+    [
+      {
+        id : "menubar",
+        groups : [ "mainMp", "helpMp" ]
+      },
+
+      {
+        id : "toolbar",
+        groups : [ "openTb", "editTb" ]
+      }
+    ],
+
+    groups :
+    {
+      // Menu Bar Parts
+      "mainMp" : { commands : [ "fileBtn", "editBtn", "viewBtn" ] },
+      "helpMp" : { commands : [ "helpBtn" ] },
+
+      // Tool Bar Parts
+      "openTb" : { commands : [ "openBtn", "openRecentlyBtn" ] },
+      "editTb" : { commands : [ "cutBtn", "copyBtn", "pasteBtn" ] },
+
+      // Menu Content
+      "openMn" : { commands : [ "openBtn", "openWithBtn", "openRecentlyBtn" ] },
+      "saveMn" : { commands : [ "saveBtn", "saveAsBtn" ] },
+      "closeMn" : { commands : [ "closeBtn" ] },
+      "exitMn" : { commands : [ "exitBtn" ] },
+      "undoMn" : { commands : [ "undoBtn", "redoBtn" ] },
+      "editMn" : { commands : [ "cutBtn", "copyBtn", "pasteBtn", "deleteBtn", "clipboardBtn" ] },
+      "searchMn" : { commands : [ "searchBtn", "replaceBtn", "continueSearchBtn" ] },
+
+      "barsMn" : { commands : [] },
+      "fontMn" : { commands : [] },
+
+      "aboutMn" : { commands : [ "aboutBtn" ] },
+      "recentDocsMn" : { commands : [ "doc1Btn", "doc2Btn", "doc3Btn" ] }
+    },
+
+    menus :
+    {
+      "fileMnu" : { groups : [ "openMn", "saveMn", "closeMn", "exitMn" ] },
+      "editMnu" : { groups : [ "undoMn", "editMn", "searchMn" ] },
+      "viewMnu" : { groups : [ "barsMn", "fontMn" ] },
+      "helpMnu" : { groups : [ "aboutMn" ] },
+      "openRecentlyMnu" : { groups : [ "recentDocsMn" ] }
+    },
+
+    commands :
+    {
+      // Menu-Buttons
+      "fileBtn" : { title : "Datei", menu : "fileMnu" },
+      "editBtn" : { title : "Bearbeiten", menu : "editMnu" },
+      "viewBtn" : { title : "Ansicht", menu : "viewMnu" },
+      "helpBtn" : { title : "Hilfe", menu : "helpMnu" },
+
+      // Execute-Buttons: Open
+      "openBtn" : { title : "Öffnen", execute : "open" },
+      "openWithBtn" : { title : "Öffnen mit...", execute : "openWith" },
+      "openRecentlyBtn" : { title : "Letzte Ã¶ffnen...", menu : "openRecentlyMnu" },
+
+      "saveBtn" : { title : "Speichern", execute : "save" },
+      "saveAsBtn" : { title : "Speichern als...", execute : "saveAs" },
+      "closeBtn" : { title : "Schließen", execute : "close" },
+      "exitBtn" : { title : "Beenden", execute : "exit" },
+
+      "undoBtn" : { title : "Rückgängig", execute : "undo" },
+      "redoBtn" : { title : "Wiederherstellen", execute : "redo" },
+      "deleteBtn" : { title : "Löschen", execute : "delete" },
+      "clipboardBtn" : { title : "Zwischenablage", execute : "clipboard" },
+
+      // Execute-Buttons: Search
+      "searchBtn" : { title : "Suchen", execute : "search" },
+      "replaceBtn" : { title : "Ersetzen", execute : "replace" },
+      "continueSearchBtn" : { title : "Weitersuchen", execute : "continuesearch" },
+
+      // Execute-Buttons: Edit
+      "cutBtn" : { title : "Ausschneiden", execute : "cut" },
+      "copyBtn" : { title : "Kopieren", execute : "copy" },
+      "pasteBtn" : { title : "Einfügen", execute : "paste" },
+
+      // Execute-Buttons: Info
+      "aboutBtn" : { title : "Ãœber", execute : "about" },
+
+      "doc1Btn" : { title : "Dokument 1", execute : "openDoc1" },
+      "doc2Btn" : { title : "Dokument 2", execute : "openDoc2" },
+      "doc3Btn" : { title : "Dokument 3", execute : "openDoc3" }
+    }
+  };
+
+  var comp2 =
+  {
+  };
+
+
+
+
+
+
+  qx.OO.defineClass("qx.Generator", qx.core.Target,
+  function(comp)
+  {
+    this._comp = comp;
+
+  });
+
+  qx.Proto._generateMenu = function(id)
+  {
+    var menu = new qx.ui.menu.Menu;
+
+    var menuData = this._comp.menus[id];
+
+    if (!menuData) {
+      alert("Missing menu: " + id);
+    };
+
+    for (var i=0; i<menuData.groups.length; i++)
+    {
+      var groupcontent = this._comp.groups[menuData.groups[i]];
+
+      if (!groupcontent) {
+        alert("Missing menu: " + menuData.groups[i]);
+      };
+
+      var groupcommandlist = groupcontent.commands;
+
+      for (var j=0; j<groupcommandlist.length; j++)
+      {
+        var commandData = this._comp.commands[groupcommandlist[j]];
+
+        if (!commandData) {
+          alert("Missing command: " + groupcommandlist[j]);
+        };
+
+        if (commandData.menu)
+        {
+          var subMenu = this._generateMenu(commandData.menu);
+          var menuButton = new qx.ui.menu.Button(commandData.title, null, null, subMenu);
+
+        subMenu.addToDocument();
+        }
+        else
+        {
+          var menuButton = new qx.ui.menu.Button(commandData.title);
+        };
+
+        menu.add(menuButton);
+      };
+
+      if (i < menuData.groups.length-1) {
+        menu.add(new qx.ui.menu.Separator);
+      };
+    };
+
+    return menu;
+  };
+
+  qx.Proto.getWidget = function()
+  {
+    var can = new qx.ui.layout.CanvasLayout;
+    can.auto();
+    can.setLocation(100, 100);
+    can.setBorder("2px solid red");
+
+    for (var i=0; i<this._comp.bars.length; i++)
+    {
+      var tb = new qx.ui.toolbar.ToolBar;
+      tb.setLocation(0, (i * 50));
+      tb.setRight(0);
+      can.add(tb);
+
+
+
+      var bardata = this._comp.bars[i];
+      var groupdata = bardata.groups;
+
+      for(var j=0; j<groupdata.length; j++)
+      {
+        var part = new qx.ui.toolbar.Part;
+
+        var groupcontent = this._comp.groups[groupdata[j]];
+        var groupcommandlist = groupcontent.commands;
+
+        if (!groupcommandlist)
+        {
+          alert("Missing commands in: " + groupcontent);
+        };
+
+        for (var k=0; k<groupcommandlist.length; k++)
+        {
+          var commanddata = this._comp.commands[groupcommandlist[k]];
+
+          if (commanddata)
+          {
+            if (typeof commanddata.menu != "undefined")
+            {
+              menu = this._generateMenu(commanddata.menu);
+          menu.addToDocument();
+    
+              btn = new qx.ui.toolbar.MenuButton(commanddata.title, menu);
+            }
+            else
+            {
+              btn = new qx.ui.toolbar.Button(commanddata.title);
+            };
+
+            part.add(btn);
+          }
+          else
+          {
+            alert("Missing: " + groupcommandlist[k]);
+          };
+        };
+
+        tb.add(part);
+      };
+    };
+
+    return can;
+  };
+
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var c1 = new qx.Generator(comp1);
+    qx.ui.core.ClientDocument.getInstance().add(c1.getWidget());
+  });
+
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_1.html
new file mode 100644 (file)
index 0000000..c0a1348
--- /dev/null
@@ -0,0 +1,79 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for qx.ui.layout.GridLayout.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var gl = new qx.ui.layout.GridLayout;
+    
+    gl.setLocation(20, 48);
+    gl.setDimension(462, 128);
+    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    gl.setPadding(2, 4);
+    gl.setColumnCount(4);
+    gl.setRowCount(2);
+    
+    gl.setColumnWidth(0, 100);
+    gl.setColumnWidth(1, 200);
+    gl.setColumnWidth(2, 50);
+    gl.setColumnWidth(3, 100);
+    
+    gl.setRowHeight(0, 40);
+    gl.setRowHeight(1, 80);
+
+    qx.ui.core.ClientDocument.getInstance().add(gl);
+    
+    
+    
+    
+    
+    var term1 = new qx.ui.basic.Terminator;
+    term1.setBackgroundColor("yellow");
+    gl.add(term1, 0, 0);
+    
+    var term2 = new qx.ui.basic.Terminator;
+    term2.setBackgroundColor("red");
+    gl.add(term2, 1, 0);
+    
+    var term3 = new qx.ui.basic.Terminator;
+    term3.setBackgroundColor("green");
+    gl.add(term3, 2, 0);
+
+    var term4 = new qx.ui.basic.Terminator;
+    term4.setBackgroundColor("blue");
+    gl.add(term4, 3, 0);
+
+    var term5 = new qx.ui.basic.Terminator;
+    term5.setBackgroundColor("fuchsia");
+    gl.add(term5, 0, 1);
+    
+    var term6 = new qx.ui.basic.Terminator;
+    term6.setBackgroundColor("olive");
+    gl.add(term6, 1, 1);
+    
+    var term7 = new qx.ui.basic.Terminator;
+    term7.setBackgroundColor("maroon");
+    gl.add(term7, 2, 1);
+    
+    var term8 = new qx.ui.basic.Terminator;
+    term8.setBackgroundColor("navy");
+    gl.add(term8, 3, 1);            
+  });
+  </script> 
+
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_10.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_10.html
new file mode 100644 (file)
index 0000000..b32dbc8
--- /dev/null
@@ -0,0 +1,94 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Layout Manager: qx.ui.layout.GridLayout. Example image borrowed from <a href="http://winfx.msdn.microsoft.com/library/en-us/wcp_conceptual/winfx/layout/overviews/grid_ovw.asp">Microsoft's XAML Documentation</a>.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var img = new qx.ui.basic.Image("./image/grid_dialog_box.png");
+
+    img.setLocation(20, 48);
+
+    var gl = new qx.ui.layout.GridLayout;
+
+    gl.setLocation(46, 300);
+    gl.auto();
+    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    gl.setPadding(4);
+
+    gl.setRowCount(4);
+    gl.setColumnCount(5);
+
+    gl.setHorizontalSpacing(4);
+    gl.setVerticalSpacing(4);
+
+    gl.setColumnWidth(0, 40);
+    gl.setColumnWidth(1, 35);
+    gl.setColumnWidth(2, 75);
+    gl.setColumnWidth(3, 75);
+    gl.setColumnWidth(4, 75);
+
+    gl.setRowHeight(0, 30);
+    gl.setRowHeight(1, 30);
+    gl.setRowHeight(2, 15);
+    gl.setRowHeight(3, 25);
+
+    gl.mergeCells(1, 0, 4, 1);
+    gl.mergeCells(1, 1, 4, 1);
+
+    gl.setRowVerticalAlignment(1, "middle");
+
+    qx.ui.core.ClientDocument.getInstance().add(img, gl);
+
+
+
+
+
+    var i1 = new qx.ui.basic.Image("icon/32/appearance.png");
+    gl.add(i1, 0, 0);
+
+    var t1 = new qx.ui.basic.Label("Open:");
+    t1.setMnemonic("O");
+    t1.setSelectable(false);
+    gl.add(t1, 0, 1);
+
+    var b1 = new qx.ui.form.Button("OK");
+    b1.setAllowStretchX(true);
+    gl.add(b1, 2, 3);
+
+    var b2 = new qx.ui.form.Button("Cancel");
+    b2.setAllowStretchX(true);
+    gl.add(b2, 3, 3);
+
+    var b3 = new qx.ui.form.Button("Browse...");
+    b3.setAllowStretchX(true);
+    b3.getLabelObject().setMnemonic("B");
+    gl.add(b3, 4, 3);
+
+    var t2 = new qx.ui.basic.Label("Type in the name of a program, folder, document or<br/> Internet Resource and Windows will open it for you.");
+    t2.setSelectable(false);
+    gl.add(t2, 1, 0);
+
+    var c1 = new qx.ui.form.ComboBox();
+    c1.setEditable(true);
+    c1.setValue("d:\\local\\pictures");
+    c1.setWidth(null);
+    gl.add(c1, 1, 1);
+  });
+  </script>
+
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_11.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_11.html
new file mode 100644 (file)
index 0000000..efdbbe9
--- /dev/null
@@ -0,0 +1,124 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Layout Manager: qx.ui.layout.GridLayout. Example image borrowed from <a href="http://winfx.msdn.microsoft.com/library/en-us/wcp_conceptual/winfx/layout/overviews/grid_ovw.asp">Microsoft's XAML Documentation</a>.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var img = new qx.ui.basic.Image("./image/grid_dialog_box.png");
+
+    img.setLocation(20, 48);
+
+    var gl = new qx.ui.layout.GridLayout;
+
+    gl.setLocation(46, 300);
+    gl.auto();
+    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    gl.setPadding(4);
+
+    gl.setRowCount(4);
+    gl.setColumnCount(5);
+
+    gl.setHorizontalSpacing(4);
+    gl.setVerticalSpacing(4);
+
+    gl.setColumnWidth(0, 40);
+    gl.setColumnWidth(1, 35);
+    gl.setColumnWidth(2, 75);
+    gl.setColumnWidth(3, 75);
+    gl.setColumnWidth(4, 75);
+
+    gl.setRowHeight(0, 30);
+    gl.setRowHeight(1, 30);
+    gl.setRowHeight(2, 15);
+    gl.setRowHeight(3, 25);
+
+    gl.mergeCells(1, 0, 4, 1);
+    gl.mergeCells(1, 1, 4, 1);
+
+    gl.setRowVerticalAlignment(1, "middle");
+
+    qx.ui.core.ClientDocument.getInstance().add(img, gl);
+
+
+
+
+
+    var i1 = new qx.ui.basic.Image("icon/32/appearance.png");
+    gl.add(i1, 0, 0);
+
+    var t1 = new qx.ui.basic.Label("Open:");
+    t1.setMnemonic("O");
+    t1.setSelectable(false);
+    gl.add(t1, 0, 1);
+
+    var b1 = new qx.ui.form.Button("OK");
+    b1.setAllowStretchX(true);
+    gl.add(b1, 2, 3);
+
+    var b2 = new qx.ui.form.Button("Cancel");
+    b2.setAllowStretchX(true);
+    gl.add(b2, 3, 3);
+
+    var b3 = new qx.ui.form.Button("Browse...");
+    b3.setAllowStretchX(true);
+    b3.getLabelObject().setMnemonic("B");
+    gl.add(b3, 4, 3);
+
+    var t2 = new qx.ui.basic.Label("Type in the name of a program, folder, document or Internet Resource and Windows will open it for you.");
+    t2.setSelectable(false);
+    t2.setStyleProperty("whiteSpace", "normal");
+    gl.add(t2, 1, 0);
+
+    var c1 = new qx.ui.form.ComboBox();
+    c1.setEditable(true);
+    c1.setValue("d:\\local\\pictures");
+    c1.setWidth(null);
+    gl.add(c1, 1, 1);
+
+
+
+
+
+
+
+
+
+    var c1 = new qx.ui.form.Button("Make bigger");
+    var c2 = new qx.ui.form.Button("Make smaller");
+
+    c1.setLocation(500, 300);
+    c2.setLocation(500, 330);
+
+    qx.ui.core.ClientDocument.getInstance().add(c1, c2);
+
+    c1.addEventListener("execute", function(e) {
+      gl.setColumnWidth(2, 100);
+      gl.setColumnWidth(3, 100);
+      gl.setColumnWidth(4, 100);
+    });
+
+    c2.addEventListener("execute", function(e) {
+      gl.setColumnWidth(2, 75);
+      gl.setColumnWidth(3, 75);
+      gl.setColumnWidth(4, 75);
+    });
+
+  });
+  </script>
+
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_2.html
new file mode 100644 (file)
index 0000000..f2d3758
--- /dev/null
@@ -0,0 +1,88 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for qx.ui.layout.GridLayout.</p>
+    <p>Added some own sizes and use more complex children.</p>
+    <p>The olive child has a width of 50% (which is related to the cell size here) and a horizontal alignment 'center'.</p>
+    <p>The navi child has a height of 20 pixel and is aligned to the bottom of the cell.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var gl = new qx.ui.layout.GridLayout;
+
+    gl.setLocation(20, 48);
+    gl.setDimension(462, 128);
+    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    gl.setPadding(2, 4);
+    gl.setColumnCount(4);
+    gl.setRowCount(2);
+
+    gl.setColumnWidth(0, 100);
+    gl.setColumnWidth(1, 200);
+    gl.setColumnWidth(2, 50);
+    gl.setColumnWidth(3, 100);
+
+    gl.setRowHeight(0, 40);
+    gl.setRowHeight(1, 80);
+
+    qx.ui.core.ClientDocument.getInstance().add(gl);
+
+
+
+
+
+    var term1 = new qx.ui.basic.Terminator;
+    term1.setBackgroundColor("yellow");
+    gl.add(term1, 0, 0);
+
+    var term2 = new qx.ui.form.Button("Hello World", "icon/22/colors.png");
+    gl.add(term2, 1, 0);
+
+    var term3 = new qx.ui.basic.Terminator;
+    term3.setBackgroundColor("green");
+    term3.setWidth(100);
+    term3.setHeight(100);
+    term3.setBorder("1px solid black");
+    gl.add(term3, 2, 0);
+
+    var term4 = new qx.ui.basic.Terminator;
+    term4.setBackgroundColor("blue");
+    gl.add(term4, 3, 0);
+
+    var term5 = new qx.ui.basic.Terminator;
+    term5.setBackgroundColor("fuchsia");
+    gl.add(term5, 0, 1);
+
+    var term6 = new qx.ui.basic.Terminator;
+    term6.setBackgroundColor("olive");
+    term6.setWidth("50%");
+    term6.setHorizontalAlign("center");
+    gl.add(term6, 1, 1);
+
+    var term7 = new qx.ui.basic.Terminator;
+    term7.setBackgroundColor("maroon");
+    gl.add(term7, 2, 1);
+
+    var term8 = new qx.ui.basic.Terminator;
+    term8.setBackgroundColor("navy");
+    term8.setHeight(20);
+    term8.setVerticalAlign("bottom");
+    gl.add(term8, 3, 1);
+  });
+  </script>
+
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_3.html
new file mode 100644 (file)
index 0000000..240816e
--- /dev/null
@@ -0,0 +1,82 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for qx.ui.layout.GridLayout.</p>
+    <p>Using auto dimensions for the grid.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var gl = new qx.ui.layout.GridLayout;
+    
+    gl.setLocation(20, 48);
+    gl.setDimension("auto", "auto");
+    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    gl.setPadding(2, 4);
+    gl.setColumnCount(4);
+    gl.setRowCount(2);
+    gl.setHorizontalSpacing(4);
+    gl.setVerticalSpacing(8);
+    
+    gl.setColumnWidth(0, 100);
+    gl.setColumnWidth(1, 200);
+    gl.setColumnWidth(2, 50);
+    gl.setColumnWidth(3, 100);
+    
+    gl.setRowHeight(0, 40);
+    gl.setRowHeight(1, 80);
+
+    qx.ui.core.ClientDocument.getInstance().add(gl);
+    
+    
+    
+    
+    
+    var term1 = new qx.ui.basic.Terminator;
+    term1.setBackgroundColor("yellow");
+    gl.add(term1, 0, 0);
+    
+    var term2 = new qx.ui.basic.Terminator;
+    term2.setBackgroundColor("red");
+    gl.add(term2, 1, 0);
+    
+    var term3 = new qx.ui.basic.Terminator;
+    term3.setBackgroundColor("green");
+    gl.add(term3, 2, 0);
+
+    var term4 = new qx.ui.basic.Terminator;
+    term4.setBackgroundColor("blue");
+    gl.add(term4, 3, 0);
+
+    var term5 = new qx.ui.basic.Terminator;
+    term5.setBackgroundColor("fuchsia");
+    gl.add(term5, 0, 1);
+    
+    var term6 = new qx.ui.basic.Terminator;
+    term6.setBackgroundColor("olive");
+    gl.add(term6, 1, 1);
+    
+    var term7 = new qx.ui.basic.Terminator;
+    term7.setBackgroundColor("maroon");
+    gl.add(term7, 2, 1);
+    
+    var term8 = new qx.ui.basic.Terminator;
+    term8.setBackgroundColor("navy");
+    gl.add(term8, 3, 1);            
+  });
+  </script> 
+
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_4.html
new file mode 100644 (file)
index 0000000..230e00f
--- /dev/null
@@ -0,0 +1,81 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for qx.ui.layout.GridLayout.</p>
+    <p>Using percents for children.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var gl = new qx.ui.layout.GridLayout;
+    
+    gl.setLocation(20, 48);
+    gl.setRight(335);
+    gl.setBottom(48);
+    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    gl.setPadding(2, 4);
+    gl.setColumnCount(4);
+    gl.setRowCount(2);
+    
+    gl.setColumnWidth(0, "10%");
+    gl.setColumnWidth(1, "40%");
+    gl.setColumnWidth(2, "30%");
+    gl.setColumnWidth(3, "20%");
+    
+    gl.setRowHeight(0, "70%");
+    gl.setRowHeight(1, "30%");
+
+    qx.ui.core.ClientDocument.getInstance().add(gl);
+    
+    
+    
+    
+    
+    var term1 = new qx.ui.basic.Terminator;
+    term1.setBackgroundColor("yellow");
+    gl.add(term1, 0, 0);
+    
+    var term2 = new qx.ui.basic.Terminator;
+    term2.setBackgroundColor("red");
+    gl.add(term2, 1, 0);
+    
+    var term3 = new qx.ui.basic.Terminator;
+    term3.setBackgroundColor("green");
+    gl.add(term3, 2, 0);
+
+    var term4 = new qx.ui.basic.Terminator;
+    term4.setBackgroundColor("blue");
+    gl.add(term4, 3, 0);
+
+    var term5 = new qx.ui.basic.Terminator;
+    term5.setBackgroundColor("fuchsia");
+    gl.add(term5, 0, 1);
+    
+    var term6 = new qx.ui.basic.Terminator;
+    term6.setBackgroundColor("olive");
+    gl.add(term6, 1, 1);
+    
+    var term7 = new qx.ui.basic.Terminator;
+    term7.setBackgroundColor("maroon");
+    gl.add(term7, 2, 1);
+    
+    var term8 = new qx.ui.basic.Terminator;
+    term8.setBackgroundColor("navy");
+    gl.add(term8, 3, 1);            
+  });
+  </script> 
+
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_5.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_5.html
new file mode 100644 (file)
index 0000000..d2a7689
--- /dev/null
@@ -0,0 +1,85 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>A simple form using qx.ui.layout.GridLayout</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var gl = new qx.ui.layout.GridLayout;
+    
+    gl.setLocation(20, 48);
+    gl.setDimension("auto", "auto");
+    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    gl.setPadding(8);
+    gl.setColumnCount(2);
+    gl.setRowCount(7);
+    gl.setVerticalSpacing(4);
+    gl.setHorizontalSpacing(6);
+    
+    gl.setColumnWidth(0, 70);
+    gl.setColumnWidth(1, 180);
+    
+    gl.setColumnHorizontalAlignment(0, "right");
+    gl.setColumnVerticalAlignment(0, "middle");
+    
+    gl.setRowHeight(0, 20);
+    gl.setRowHeight(1, 20);
+    gl.setRowHeight(2, 20);
+    gl.setRowHeight(3, 20);
+    gl.setRowHeight(4, 20);
+    gl.setRowHeight(5, 70);
+    gl.setRowHeight(6, 20);
+
+    qx.ui.core.ClientDocument.getInstance().add(gl);
+    
+    var label1 = new qx.ui.basic.Label("Given Name");
+    var label2 = new qx.ui.basic.Label("Name");
+    var label3 = new qx.ui.basic.Label("City");
+    var label4 = new qx.ui.basic.Label("Country");
+    var label5 = new qx.ui.basic.Label("E-Mail");
+    var label6 = new qx.ui.basic.Label("Comment");
+    label6.setVerticalAlign("top");
+    
+    label6.setVerticalAlign("top");
+    
+    var input1 = new qx.ui.form.TextField;
+    var input2 = new qx.ui.form.TextField;
+    var input3 = new qx.ui.form.TextField;
+    var input4 = new qx.ui.form.TextField;
+    var input5 = new qx.ui.form.TextField;
+    var input6 = new qx.ui.form.TextArea;
+    var input7 = new qx.ui.form.Button("Submit", "icon/16/apply.png");
+    
+    input7.setHorizontalAlign("right");
+    
+    gl.add(label1, 0, 0);
+    gl.add(input1, 1, 0);
+    gl.add(label2, 0, 1);
+    gl.add(input2, 1, 1);
+    gl.add(label3, 0, 2);
+    gl.add(input3, 1, 2);
+    gl.add(label4, 0, 3);
+    gl.add(input4, 1, 3);
+    gl.add(label5, 0, 4);
+    gl.add(input5, 1, 4);
+    gl.add(label6, 0, 5);
+    gl.add(input6, 1, 5);
+    gl.add(input7, 1, 6);
+  });
+  </script> 
+
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_6.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_6.html
new file mode 100644 (file)
index 0000000..7f95173
--- /dev/null
@@ -0,0 +1,109 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>A simple form using qx.ui.layout.GridLayout</p>
+    <p>Using padding instead of spacing. Spacing is between the cells, padding is inside the cells. The same layout using padding is always bigger because the first and last cells are also affected with the padding to the edge.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var gl = new qx.ui.layout.GridLayout;
+    
+    gl.setLocation(20, 48);
+    gl.setDimension("auto", "auto");
+    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    gl.setPadding(8);
+    gl.setColumnCount(2);
+    gl.setRowCount(7);
+    
+    gl.setColumnWidth(0, 76);
+    gl.setColumnWidth(1, 186);
+    
+    gl.setColumnHorizontalAlignment(0, "right");
+    gl.setColumnVerticalAlignment(0, "middle");
+    
+    gl.setRowHeight(0, 24);
+    gl.setRowHeight(1, 24);
+    gl.setRowHeight(2, 24);
+    gl.setRowHeight(3, 24);
+    gl.setRowHeight(4, 24);
+    gl.setRowHeight(5, 74);
+    gl.setRowHeight(6, 24);
+    
+    gl.setCellPaddingTop(2);
+    gl.setCellPaddingRight(3);
+    gl.setCellPaddingBottom(2);
+    gl.setCellPaddingLeft(3);
+    
+    /* 
+    
+    // the same like the above, but more local
+    gl.setColumnPaddingTop(0, 2);
+    gl.setColumnPaddingRight(0, 3);
+    gl.setColumnPaddingBottom(0, 2);
+    gl.setColumnPaddingLeft(0, 3);
+
+    gl.setColumnPaddingTop(1, 2);
+    gl.setColumnPaddingRight(1, 3);
+    gl.setColumnPaddingBottom(1, 2);
+    gl.setColumnPaddingLeft(1, 3);
+    
+    */    
+
+    qx.ui.core.ClientDocument.getInstance().add(gl);
+    
+    var label1 = new qx.ui.basic.Label("Given Name");
+    var label2 = new qx.ui.basic.Label("Name");
+    var label3 = new qx.ui.basic.Label("City");
+    var label4 = new qx.ui.basic.Label("Country");
+    var label5 = new qx.ui.basic.Label("E-Mail");
+    var label6 = new qx.ui.basic.Label("Comment");
+    
+    label6.setVerticalAlign("top");
+    
+    var input1 = new qx.ui.form.TextField;
+    var input2 = new qx.ui.form.TextField;
+    var input3 = new qx.ui.form.ComboBox;
+    var input4 = new qx.ui.form.TextField;
+    var input5 = new qx.ui.form.TextField;
+    var input6 = new qx.ui.form.TextArea;
+    var input7 = new qx.ui.form.Button("Submit", "icon/16/apply.png");
+    
+    input3.add(new qx.ui.form.ListItem("New York"));
+    input3.add(new qx.ui.form.ListItem("Paris"));
+    input3.add(new qx.ui.form.ListItem("Sydney"));
+    input3.add(new qx.ui.form.ListItem("Berlin"));
+    input3.add(new qx.ui.form.ListItem("Washington"));
+    
+    input7.setHorizontalAlign("right");
+    
+    gl.add(label1, 0, 0);
+    gl.add(input1, 1, 0);
+    gl.add(label2, 0, 1);
+    gl.add(input2, 1, 1);
+    gl.add(label3, 0, 2);
+    gl.add(input3, 1, 2);
+    gl.add(label4, 0, 3);
+    gl.add(input4, 1, 3);
+    gl.add(label5, 0, 4);
+    gl.add(input5, 1, 4);
+    gl.add(label6, 0, 5);
+    gl.add(input6, 1, 5);
+    gl.add(input7, 1, 6);
+  });
+  </script> 
+
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_7.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_7.html
new file mode 100644 (file)
index 0000000..6354544
--- /dev/null
@@ -0,0 +1,112 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for qx.ui.layout.GridLayout. Now with cells which are merged with others.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var gl = new qx.ui.layout.GridLayout;
+    
+    gl.setLocation(20, 48);
+    gl.setDimension(462, 128);
+    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    gl.setPadding(2, 4);
+    gl.setColumnCount(4);
+    gl.setRowCount(2);
+    
+    gl.setColumnWidth(0, 100);
+    gl.setColumnWidth(1, 200);
+    gl.setColumnWidth(2, 50);
+    gl.setColumnWidth(3, 100);
+    
+    gl.setRowHeight(0, 40);
+    gl.setRowHeight(1, 80);
+    
+    qx.ui.core.ClientDocument.getInstance().add(gl);
+    
+    // start-col, start-row, col-length, row-length
+    gl.debug("Merge: 1, 1, 2, 1");
+    gl.mergeCells(1, 1, 2, 1);   
+    
+    gl.debug("Span-Start (0, 1): " + gl.isSpanStart(0, 1));
+    gl.debug("Span-Start (0, 2): " + gl.isSpanStart(0, 2));
+    gl.debug("Span-Start (1, 1): " + gl.isSpanStart(1, 1));
+    gl.debug("Span-Start (1, 2): " + gl.isSpanStart(1, 2));
+    gl.debug("Span-Start (2, 1): " + gl.isSpanStart(2, 1));
+    gl.debug("Span-Start (2, 2): " + gl.isSpanStart(2, 2));
+    gl.debug("Span-Start (3, 1): " + gl.isSpanStart(3, 1));
+    gl.debug("Span-Start (3, 2): " + gl.isSpanStart(3, 2));
+    
+    gl.debug("Span-Cell (0, 1): " + gl.isSpanCell(0, 1));
+    gl.debug("Span-Cell (0, 2): " + gl.isSpanCell(0, 2));
+    gl.debug("Span-Cell (1, 1): " + gl.isSpanCell(1, 1));
+    gl.debug("Span-Cell (1, 2): " + gl.isSpanCell(1, 2));
+    gl.debug("Span-Cell (2, 1): " + gl.isSpanCell(2, 1));
+    gl.debug("Span-Cell (2, 2): " + gl.isSpanCell(2, 2));
+    gl.debug("Span-Cell (3, 1): " + gl.isSpanCell(3, 1));
+    gl.debug("Span-Cell (3, 2): " + gl.isSpanCell(3, 2));
+
+    gl.debug("Fill-Cell (0, 1): " + gl.isFillCell(0, 1));
+    gl.debug("Fill-Cell (0, 2): " + gl.isFillCell(0, 2));
+    gl.debug("Fill-Cell (1, 1): " + gl.isFillCell(1, 1));
+    gl.debug("Fill-Cell (1, 2): " + gl.isFillCell(1, 2));
+    gl.debug("Fill-Cell (2, 1): " + gl.isFillCell(2, 1));
+    gl.debug("Fill-Cell (2, 2): " + gl.isFillCell(2, 2));
+    gl.debug("Fill-Cell (3, 1): " + gl.isFillCell(3, 1));
+    gl.debug("Fill-Cell (3, 2): " + gl.isFillCell(3, 2));
+    
+    /*
+    // both should be impossible
+    gl.debug("Merge 1, 1, 2, 1");
+    gl.mergeCells(1, 1, 2, 1);
+
+    gl.debug("Merge 0, 0, 3, 4");
+    gl.mergeCells(0, 0, 3, 4);
+    */
+    
+    gl.debug("Merge 0, 0, 1, 2");
+    gl.mergeCells(0, 0, 1, 2);
+    
+    gl.debug("Merge 2, 0, 2, 1");
+    gl.mergeCells(2, 0, 2, 1);
+    
+    
+    
+    
+    var term1 = new qx.ui.basic.Terminator;
+    term1.setBackgroundColor("yellow");
+    gl.add(term1, 0, 0);
+    
+    var term2 = new qx.ui.basic.Terminator;
+    term2.setBackgroundColor("red");
+    gl.add(term2, 1, 0);
+    
+    var term3 = new qx.ui.basic.Terminator;
+    term3.setBackgroundColor("green");
+    gl.add(term3, 2, 0);
+
+    var term6 = new qx.ui.basic.Terminator;
+    term6.setBackgroundColor("olive");
+    gl.add(term6, 1, 1);    
+  
+    var term8 = new qx.ui.basic.Terminator;
+    term8.setBackgroundColor("navy");
+    gl.add(term8, 3, 1);            
+  });
+  </script> 
+
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_8.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_8.html
new file mode 100644 (file)
index 0000000..299d764
--- /dev/null
@@ -0,0 +1,115 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for qx.ui.layout.GridLayout. Now with cells which are merged with others.</p>
+    <p>Added spacing in combination with spans.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var gl = new qx.ui.layout.GridLayout;
+    
+    gl.setLocation(20, 48);
+    gl.setDimension("auto", "auto");
+    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    gl.setPadding(2, 4);
+    gl.setColumnCount(4);
+    gl.setRowCount(2);
+    gl.setHorizontalSpacing(10);
+    gl.setVerticalSpacing(10);
+    
+    gl.setColumnWidth(0, 100);
+    gl.setColumnWidth(1, 200);
+    gl.setColumnWidth(2, 50);
+    gl.setColumnWidth(3, 100);
+    
+    gl.setRowHeight(0, 40);
+    gl.setRowHeight(1, 80);
+    
+    qx.ui.core.ClientDocument.getInstance().add(gl);
+    
+    // start-col, start-row, col-length, row-length
+    gl.debug("Merge: 1, 1, 2, 1");
+    gl.mergeCells(1, 1, 2, 1);   
+    
+    gl.debug("Span-Start (0, 1): " + gl.isSpanStart(0, 1));
+    gl.debug("Span-Start (0, 2): " + gl.isSpanStart(0, 2));
+    gl.debug("Span-Start (1, 1): " + gl.isSpanStart(1, 1));
+    gl.debug("Span-Start (1, 2): " + gl.isSpanStart(1, 2));
+    gl.debug("Span-Start (2, 1): " + gl.isSpanStart(2, 1));
+    gl.debug("Span-Start (2, 2): " + gl.isSpanStart(2, 2));
+    gl.debug("Span-Start (3, 1): " + gl.isSpanStart(3, 1));
+    gl.debug("Span-Start (3, 2): " + gl.isSpanStart(3, 2));
+    
+    gl.debug("Span-Cell (0, 1): " + gl.isSpanCell(0, 1));
+    gl.debug("Span-Cell (0, 2): " + gl.isSpanCell(0, 2));
+    gl.debug("Span-Cell (1, 1): " + gl.isSpanCell(1, 1));
+    gl.debug("Span-Cell (1, 2): " + gl.isSpanCell(1, 2));
+    gl.debug("Span-Cell (2, 1): " + gl.isSpanCell(2, 1));
+    gl.debug("Span-Cell (2, 2): " + gl.isSpanCell(2, 2));
+    gl.debug("Span-Cell (3, 1): " + gl.isSpanCell(3, 1));
+    gl.debug("Span-Cell (3, 2): " + gl.isSpanCell(3, 2));
+
+    gl.debug("Fill-Cell (0, 1): " + gl.isFillCell(0, 1));
+    gl.debug("Fill-Cell (0, 2): " + gl.isFillCell(0, 2));
+    gl.debug("Fill-Cell (1, 1): " + gl.isFillCell(1, 1));
+    gl.debug("Fill-Cell (1, 2): " + gl.isFillCell(1, 2));
+    gl.debug("Fill-Cell (2, 1): " + gl.isFillCell(2, 1));
+    gl.debug("Fill-Cell (2, 2): " + gl.isFillCell(2, 2));
+    gl.debug("Fill-Cell (3, 1): " + gl.isFillCell(3, 1));
+    gl.debug("Fill-Cell (3, 2): " + gl.isFillCell(3, 2));
+    
+    /*
+    // both should be impossible
+    gl.debug("Merge 1, 1, 2, 1");
+    gl.mergeCells(1, 1, 2, 1);
+
+    gl.debug("Merge 0, 0, 3, 4");
+    gl.mergeCells(0, 0, 3, 4);
+    */
+    
+    gl.debug("Merge 0, 0, 1, 2");
+    gl.mergeCells(0, 0, 1, 2);
+    
+    gl.debug("Merge 2, 0, 2, 1");
+    gl.mergeCells(2, 0, 2, 1);
+    
+    
+    
+    
+    var term1 = new qx.ui.basic.Terminator;
+    term1.setBackgroundColor("yellow");
+    gl.add(term1, 0, 0);
+    
+    var term2 = new qx.ui.basic.Terminator;
+    term2.setBackgroundColor("red");
+    gl.add(term2, 1, 0);
+    
+    var term3 = new qx.ui.basic.Terminator;
+    term3.setBackgroundColor("green");
+    gl.add(term3, 2, 0);
+
+    var term6 = new qx.ui.basic.Terminator;
+    term6.setBackgroundColor("olive");
+    gl.add(term6, 1, 1);    
+  
+    var term8 = new qx.ui.basic.Terminator;
+    term8.setBackgroundColor("navy");
+    gl.add(term8, 3, 1);            
+  });
+  </script> 
+
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_9.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/GridLayout_9.html
new file mode 100644 (file)
index 0000000..1e575c8
--- /dev/null
@@ -0,0 +1,120 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for qx.ui.layout.GridLayout. Now with cells which are merged with others.</p>
+    <p>Added spacing in combination with spans.</p>
+    <p>Added padding in combination with spans.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var gl = new qx.ui.layout.GridLayout;
+    
+    gl.setLocation(20, 48);
+    gl.setDimension("auto", "auto");
+    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    gl.setPadding(2, 4);
+    gl.setColumnCount(4);
+    gl.setRowCount(2);
+    gl.setHorizontalSpacing(10);
+    gl.setVerticalSpacing(10);
+    gl.setCellPaddingTop(4);
+    gl.setCellPaddingRight(4);
+    gl.setCellPaddingBottom(4);
+    gl.setCellPaddingLeft(4);
+    
+    gl.setColumnWidth(0, 100);
+    gl.setColumnWidth(1, 200);
+    gl.setColumnWidth(2, 50);
+    gl.setColumnWidth(3, 100);
+    
+    gl.setRowHeight(0, 40);
+    gl.setRowHeight(1, 80);
+    
+    qx.ui.core.ClientDocument.getInstance().add(gl);
+    
+    // start-col, start-row, col-length, row-length
+    gl.debug("Merge: 1, 1, 2, 1");
+    gl.mergeCells(1, 1, 2, 1);   
+    
+    gl.debug("Span-Start (0, 1): " + gl.isSpanStart(0, 1));
+    gl.debug("Span-Start (0, 2): " + gl.isSpanStart(0, 2));
+    gl.debug("Span-Start (1, 1): " + gl.isSpanStart(1, 1));
+    gl.debug("Span-Start (1, 2): " + gl.isSpanStart(1, 2));
+    gl.debug("Span-Start (2, 1): " + gl.isSpanStart(2, 1));
+    gl.debug("Span-Start (2, 2): " + gl.isSpanStart(2, 2));
+    gl.debug("Span-Start (3, 1): " + gl.isSpanStart(3, 1));
+    gl.debug("Span-Start (3, 2): " + gl.isSpanStart(3, 2));
+    
+    gl.debug("Span-Cell (0, 1): " + gl.isSpanCell(0, 1));
+    gl.debug("Span-Cell (0, 2): " + gl.isSpanCell(0, 2));
+    gl.debug("Span-Cell (1, 1): " + gl.isSpanCell(1, 1));
+    gl.debug("Span-Cell (1, 2): " + gl.isSpanCell(1, 2));
+    gl.debug("Span-Cell (2, 1): " + gl.isSpanCell(2, 1));
+    gl.debug("Span-Cell (2, 2): " + gl.isSpanCell(2, 2));
+    gl.debug("Span-Cell (3, 1): " + gl.isSpanCell(3, 1));
+    gl.debug("Span-Cell (3, 2): " + gl.isSpanCell(3, 2));
+
+    gl.debug("Fill-Cell (0, 1): " + gl.isFillCell(0, 1));
+    gl.debug("Fill-Cell (0, 2): " + gl.isFillCell(0, 2));
+    gl.debug("Fill-Cell (1, 1): " + gl.isFillCell(1, 1));
+    gl.debug("Fill-Cell (1, 2): " + gl.isFillCell(1, 2));
+    gl.debug("Fill-Cell (2, 1): " + gl.isFillCell(2, 1));
+    gl.debug("Fill-Cell (2, 2): " + gl.isFillCell(2, 2));
+    gl.debug("Fill-Cell (3, 1): " + gl.isFillCell(3, 1));
+    gl.debug("Fill-Cell (3, 2): " + gl.isFillCell(3, 2));
+    
+    /*
+    // both should be impossible
+    gl.debug("Merge 1, 1, 2, 1");
+    gl.mergeCells(1, 1, 2, 1);
+
+    gl.debug("Merge 0, 0, 3, 4");
+    gl.mergeCells(0, 0, 3, 4);
+    */
+    
+    gl.debug("Merge 0, 0, 1, 2");
+    gl.mergeCells(0, 0, 1, 2);
+    
+    gl.debug("Merge 2, 0, 2, 1");
+    gl.mergeCells(2, 0, 2, 1);
+    
+    
+    
+    
+    var term1 = new qx.ui.basic.Terminator;
+    term1.setBackgroundColor("yellow");
+    gl.add(term1, 0, 0);
+    
+    var term2 = new qx.ui.basic.Terminator;
+    term2.setBackgroundColor("red");
+    gl.add(term2, 1, 0);
+    
+    var term3 = new qx.ui.basic.Terminator;
+    term3.setBackgroundColor("green");
+    gl.add(term3, 2, 0);
+
+    var term6 = new qx.ui.basic.Terminator;
+    term6.setBackgroundColor("olive");
+    gl.add(term6, 1, 1);    
+  
+    var term8 = new qx.ui.basic.Terminator;
+    term8.setBackgroundColor("navy");
+    gl.add(term8, 3, 1);            
+  });
+  </script> 
+
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/HorizontalBoxLayout_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/HorizontalBoxLayout_1.html
new file mode 100644 (file)
index 0000000..af7f60e
--- /dev/null
@@ -0,0 +1,1261 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Tests for the new implementation of the qx.ui.layout.HorizontalBoxLayout widget.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var cl_white = new qx.renderer.color.Color("white");
+    var cl_blue = new qx.renderer.color.Color("blue");
+    var cl_yellow = new qx.renderer.color.Color("yellow");
+    var cl_green = new qx.renderer.color.Color("green");
+    var cl_orange = new qx.renderer.color.Color("orange");
+    var cl_purple = new qx.renderer.color.Color("purple");
+    var cl_aqua = new qx.renderer.color.Color("aqua");
+    var cl_fuchsia = new qx.renderer.color.Color("fuchsia");
+
+
+    /* ***********************************************
+
+       EXAMPLE ONE:
+       LEFT ALIGN
+
+    *********************************************** */
+
+    var hbl1 = new qx.ui.layout.HorizontalBoxLayout;
+
+    hbl1.setTop(48);
+    hbl1.setLeft(20);
+    hbl1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl1.setHeight("auto");
+    hbl1.setRight(335);
+
+    hbl1.setSpacing(4);
+    hbl1.setPadding(8);
+    
+    hbl1.setVerticalChildrenAlign("bottom");
+    
+    
+    var w1_1 = new qx.ui.layout.CanvasLayout;
+    w1_1.setWidth(25);
+    w1_1.setHeight(25);
+    w1_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_1.setBackgroundColor(cl_white);
+    // w1_1.setMaxHeight(40);
+
+    var w1_2 = new qx.ui.layout.CanvasLayout;
+    w1_2.setWidth(25);
+    w1_2.setHeight(25);
+    w1_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_2.setBackgroundColor(cl_blue);
+    w1_2.setBottom(10);
+
+    var w1_3 = new qx.ui.layout.CanvasLayout;
+    w1_3.setWidth(25);
+    w1_3.setHeight("100%");
+    w1_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_3.setBackgroundColor(cl_yellow);
+
+    var w1_4 = new qx.ui.layout.CanvasLayout;
+    w1_4.setWidth(25);
+    w1_4.setHeight(25);
+    w1_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_4.setBackgroundColor(cl_green);
+
+    var w1_5 = new qx.ui.layout.CanvasLayout;
+    w1_5.setWidth(40);
+    // w1_5.setHeight(25);
+    w1_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_5.setBackgroundColor(cl_orange);
+
+    var w1_6 = new qx.ui.layout.CanvasLayout;
+    w1_6.setWidth(25);
+    w1_6.setHeight(25);
+    w1_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_6.setBackgroundColor(cl_purple);
+    w1_6.setTop(15);
+    w1_6.setLeft(-25);
+
+    var w1_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w1_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w1_9 = new qx.ui.layout.CanvasLayout;
+    w1_9.setWidth(25);
+    w1_9.setHeight(25);
+    w1_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_9.setBackgroundColor(cl_aqua);
+
+    var w1_10 = new qx.ui.layout.CanvasLayout;
+    w1_10.setWidth(25);
+    w1_10.setHeight(25);
+    w1_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_10.setBackgroundColor(cl_fuchsia);
+
+    var hbl1_click = 0;
+    hbl1.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };
+      
+      switch(hbl1_click)
+      {
+        case 0:
+          this.setRight(null);
+          this.setWidth("auto");
+          break;
+          
+        case 1:
+          this.setHeight(30);
+          break;
+        
+        case 2:
+          this.setHeight(80);
+          break;
+          
+        case 3:
+          this.setHeight("auto");
+          break;
+          
+        case 4:
+          this.setWidth(200);
+          break;
+          
+        case 5:
+          this.setWidth(null);
+          this.setRight(335);
+          hbl1_click = 0;
+          return;        
+      };
+      
+      hbl1_click++;
+    });
+
+    w1_1.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(65);
+        this.setHeight(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w1_2.addEventListener("click", function(e) {
+      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
+    });
+
+    w1_3.addEventListener("click", function(e) {
+      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
+    });
+
+    w1_4.addEventListener("click", function(e) {
+      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
+    });
+
+    w1_5.addEventListener("click", function(e) {
+      this.getWidth() == 40 ? this.setWidth(80) : this.setWidth(40);
+    });
+    
+    w1_6.addEventListener("click", function(e) {
+      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
+    });
+
+    w1_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w1_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w1_9.addEventListener("click", function(e) 
+    {
+      if (this.getTop() == null)
+      {
+        this.setTop(20);
+        this.setLeft(-10);
+      }
+      else
+      {
+        this.setTop(null);
+        this.setLeft(null);
+      };
+    });
+    
+    w1_10.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(10);  
+        this.setHeight(10);
+        this.setLeft(-5);
+        this.setBottom(15);
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);
+        this.setLeft(null);
+        this.setBottom(null);
+      };
+    });    
+
+
+
+    hbl1.add(w1_1, w1_2, w1_3, w1_4, w1_5, w1_6, w1_7, w1_8, w1_9, w1_10);
+    d.add(hbl1);
+
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE TWO:
+       RIGHT ALIGN
+
+    *********************************************** */
+
+    var hbl2 = new qx.ui.layout.HorizontalBoxLayout;
+
+    hbl2.setTop(138);
+    hbl2.setLeft(20);
+    hbl2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl2.setHeight("auto");
+    hbl2.setRight(335);
+
+    hbl2.setSpacing(4);
+    hbl2.setPadding(8);
+
+    hbl2.setHorizontalChildrenAlign("right");
+    hbl2.setVerticalChildrenAlign("middle");
+
+
+    var w2_1 = new qx.ui.layout.CanvasLayout;
+    w2_1.setWidth(25);
+    w2_1.setHeight(25);
+    w2_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_1.setBackgroundColor(cl_white);
+    // w2_1.setMaxHeight(40);
+
+    var w2_2 = new qx.ui.layout.CanvasLayout;
+    w2_2.setWidth(25);
+    w2_2.setHeight(25);
+    w2_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_2.setBackgroundColor(cl_blue);
+    w2_2.setBottom(10);
+
+    var w2_3 = new qx.ui.layout.CanvasLayout;
+    w2_3.setWidth(25);
+    w2_3.setHeight("100%");
+    w2_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_3.setBackgroundColor(cl_yellow);
+
+    var w2_4 = new qx.ui.layout.CanvasLayout;
+    w2_4.setWidth(25);
+    w2_4.setHeight(25);
+    w2_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_4.setBackgroundColor(cl_green);
+
+    var w2_5 = new qx.ui.layout.CanvasLayout;
+    w2_5.setWidth(40);
+    // w2_5.setHeight(25);
+    w2_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_5.setBackgroundColor(cl_orange);
+
+    var w2_6 = new qx.ui.layout.CanvasLayout;
+    w2_6.setWidth(25);
+    w2_6.setHeight(25);
+    w2_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_6.setBackgroundColor(cl_purple);
+    w2_6.setTop(15);
+    w2_6.setLeft(-25);    
+
+    var w2_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w2_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w2_9 = new qx.ui.layout.CanvasLayout;
+    w2_9.setWidth(25);
+    w2_9.setHeight(25);
+    w2_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_9.setBackgroundColor(cl_aqua);
+
+    var w2_10 = new qx.ui.layout.CanvasLayout;
+    w2_10.setWidth(25);
+    w2_10.setHeight(25);
+    w2_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_10.setBackgroundColor(cl_fuchsia);
+    w2_10.foo = true;
+
+
+    var hbl2_click = 0;
+    hbl2.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl2_click)
+      {
+        case 0:
+          this.setRight(null);
+          this.setWidth("auto");
+          break;
+          
+        case 1:
+          this.setHeight(30);
+          break;
+        
+        case 2:
+          this.setHeight(80);
+          break;
+          
+        case 3:
+          this.setHeight("auto");
+          break;
+          
+        case 4:
+          this.setWidth(200);
+          break;
+          
+        case 5:
+          this.setWidth(null);
+          this.setRight(335);
+          hbl2_click = 0;
+          return;        
+      };
+      
+      hbl2_click++;
+    });
+    
+    w2_1.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(65);
+        this.setHeight(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w2_2.addEventListener("click", function(e) {
+      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
+    });
+
+    w2_3.addEventListener("click", function(e) {
+      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
+    });
+
+    w2_4.addEventListener("click", function(e) {
+      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
+    });
+
+    w2_5.addEventListener("click", function(e) {
+      this.getWidth() == 40 ? this.setWidth(80) : this.setWidth(40);
+    });
+    
+    w2_6.addEventListener("click", function(e) {
+      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
+    });
+
+    w2_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w2_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w2_9.addEventListener("click", function(e) 
+    {
+      if (this.getTop() == null)
+      {
+        this.setTop(20);
+        this.setLeft(-10);
+      }
+      else
+      {
+        this.setTop(null);
+        this.setLeft(null);
+      };
+    });
+    
+    w2_10.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(10);  
+        this.setHeight(10);
+        this.setLeft(-5);
+        this.setBottom(15);
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);
+        this.setLeft(null);
+        this.setBottom(null);
+      };
+    });
+
+
+
+    hbl2.add(w2_1, w2_2, w2_3, w2_4, w2_5, w2_6, w2_7, w2_8, w2_9, w2_10);
+    d.add(hbl2);
+
+
+    /* ***********************************************
+
+       EXAMPLE THREE:
+       CENTER ALIGN
+
+    *********************************************** */
+
+    var hbl3 = new qx.ui.layout.HorizontalBoxLayout;
+
+    hbl3.setTop(228);
+    hbl3.setLeft(20);
+    hbl3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl3.setHeight("auto");
+    hbl3.setRight(335);
+
+    hbl3.setSpacing(4);
+    hbl3.setPadding(8);
+
+    hbl3.setHorizontalChildrenAlign("center");
+
+
+
+    var w3_1 = new qx.ui.layout.CanvasLayout;
+    w3_1.setWidth(25);
+    w3_1.setHeight(25);
+    w3_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_1.setBackgroundColor(cl_white);
+    // w3_1.setMaxHeight(40);
+
+    var w3_2 = new qx.ui.layout.CanvasLayout;
+    w3_2.setWidth(25);
+    w3_2.setHeight(25);
+    w3_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_2.setBackgroundColor(cl_blue);
+    w3_2.setBottom(10);
+
+    var w3_3 = new qx.ui.layout.CanvasLayout;
+    w3_3.setWidth(25);
+    w3_3.setHeight("100%");
+    w3_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_3.setBackgroundColor(cl_yellow);
+
+    var w3_4 = new qx.ui.layout.CanvasLayout;
+    w3_4.setWidth(25);
+    w3_4.setHeight(25);
+    w3_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_4.setBackgroundColor(cl_green);
+
+    var w3_5 = new qx.ui.layout.CanvasLayout;
+    w3_5.setWidth(40);
+    // w3_5.setHeight(25);
+    w3_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_5.setBackgroundColor(cl_orange);
+
+    var w3_6 = new qx.ui.layout.CanvasLayout;
+    w3_6.setWidth(25);
+    w3_6.setHeight(25);
+    w3_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_6.setBackgroundColor(cl_purple);
+    w3_6.setTop(15);
+    w3_6.setLeft(-25);    
+
+    var w3_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w3_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w3_9 = new qx.ui.layout.CanvasLayout;
+    w3_9.setWidth(25);
+    w3_9.setHeight(25);
+    w3_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_9.setBackgroundColor(cl_aqua);
+
+    var w3_10 = new qx.ui.layout.CanvasLayout;
+    w3_10.setWidth(25);
+    w3_10.setHeight(25);
+    w3_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl3_click = 0;
+    hbl3.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl3_click)
+      {
+        case 0:
+          this.setRight(null);
+          this.setWidth("auto");
+          break;
+          
+        case 1:
+          this.setHeight(30);
+          break;
+        
+        case 2:
+          this.setHeight(80);
+          break;
+          
+        case 3:
+          this.setHeight("auto");
+          break;
+          
+        case 4:
+          this.setWidth(200);
+          break;
+          
+        case 5:
+          this.setWidth(null);
+          this.setRight(335);
+          hbl3_click = 0;
+          return;        
+      };
+      
+      hbl3_click++;
+    });
+
+    w3_1.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(65);
+        this.setHeight(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w3_2.addEventListener("click", function(e) {
+      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
+    });
+
+    w3_3.addEventListener("click", function(e) {
+      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
+    });
+
+    w3_4.addEventListener("click", function(e) {
+      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
+    });
+
+    w3_5.addEventListener("click", function(e) {
+      this.getWidth() == 40 ? this.setWidth(80) : this.setWidth(40);
+    });
+    
+    w3_6.addEventListener("click", function(e) {
+      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
+    });
+
+    w3_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w3_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w3_9.addEventListener("click", function(e) 
+    {
+      if (this.getTop() == null)
+      {
+        this.setTop(20);
+        this.setLeft(-10);
+      }
+      else
+      {
+        this.setTop(null);
+        this.setLeft(null);
+      };
+    });
+    
+    w3_10.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(10);  
+        this.setHeight(10);
+        this.setLeft(-5);
+        this.setBottom(15);
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);
+        this.setLeft(null);
+        this.setBottom(null);
+      };
+    });
+
+
+
+    hbl3.add(w3_1, w3_2, w3_3, w3_4, w3_5, w3_6, w3_7, w3_8, w3_9, w3_10);
+    d.add(hbl3);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE FOUR:
+       LEFT ALIGN, REVERTED CHILDREN ORDER
+
+    *********************************************** */
+
+    var hbl4 = new qx.ui.layout.HorizontalBoxLayout;
+
+    hbl4.setTop(318);
+    hbl4.setLeft(20);
+    hbl4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl4.setWidth(null);
+    hbl4.setRight(335);
+
+    hbl4.setSpacing(4);
+    hbl4.setPadding(8);
+    hbl4.setReverseChildrenOrder(true);
+    hbl4.setVerticalChildrenAlign("bottom");
+    
+    hbl4.setHeight(80);
+
+
+
+    var w4_1 = new qx.ui.layout.CanvasLayout;
+    w4_1.setWidth(25);
+    w4_1.setHeight(25);
+    w4_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_1.setBackgroundColor(cl_white);
+    // w4_1.setMaxHeight(40);
+
+    var w4_2 = new qx.ui.layout.CanvasLayout;
+    w4_2.setWidth(25);
+    w4_2.setHeight(25);
+    w4_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_2.setBackgroundColor(cl_blue);
+    w4_2.setBottom(10);
+
+    var w4_3 = new qx.ui.layout.CanvasLayout;
+    w4_3.setWidth(25);
+    w4_3.setHeight("100%");
+    w4_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_3.setBackgroundColor(cl_yellow);
+
+    var w4_4 = new qx.ui.layout.CanvasLayout;
+    w4_4.setWidth(25);
+    w4_4.setHeight(25);
+    w4_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_4.setBackgroundColor(cl_green);
+
+    var w4_5 = new qx.ui.layout.CanvasLayout;
+    w4_5.setWidth(40);
+    // w4_5.setHeight(25);
+    w4_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_5.setBackgroundColor(cl_orange);
+
+    var w4_6 = new qx.ui.layout.CanvasLayout;
+    w4_6.setWidth(25);
+    w4_6.setHeight(25);
+    w4_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_6.setBackgroundColor(cl_purple);
+    w4_6.setTop(15);
+    w4_6.setLeft(-25);    
+
+    var w4_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w4_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w4_9 = new qx.ui.layout.CanvasLayout;
+    w4_9.setWidth(25);
+    w4_9.setHeight(25);
+    w4_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_9.setBackgroundColor(cl_aqua);
+
+    var w4_10 = new qx.ui.layout.CanvasLayout;
+    w4_10.setWidth(25);
+    w4_10.setHeight(25);
+    w4_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl4_click = 0;
+    hbl4.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl4_click)
+      {
+        case 0:
+          this.setRight(null);
+          this.setWidth("auto");
+          break;
+          
+        case 1:
+          this.setHeight(30);
+          break;
+        
+        case 2:
+          this.setHeight("auto");
+          break;
+          
+        case 3:
+          this.setHeight(80);
+          break;
+          
+        case 4:
+          this.setWidth(200);
+          break;
+          
+        case 5:
+          this.setWidth(null);
+          this.setRight(335);
+          hbl4_click = 0;
+          return;        
+      };
+      
+      hbl4_click++;
+    });
+
+    w4_1.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(65);
+        this.setHeight(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w4_2.addEventListener("click", function(e) {
+      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
+    });
+
+    w4_3.addEventListener("click", function(e) {
+      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
+    });
+
+    w4_4.addEventListener("click", function(e) {
+      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
+    });
+
+    w4_5.addEventListener("click", function(e) {
+      this.getWidth() == 40 ? this.setWidth(80) : this.setWidth(40);
+    });
+    
+    w4_6.addEventListener("click", function(e) {
+      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
+    });
+
+    w4_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w4_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w4_9.addEventListener("click", function(e) 
+    {
+      if (this.getTop() == null)
+      {
+        this.setTop(20);
+        this.setLeft(-10);
+      }
+      else
+      {
+        this.setTop(null);
+        this.setLeft(null);
+      };
+    });
+    
+    w4_10.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(10);  
+        this.setHeight(10);
+        this.setLeft(-5);
+        this.setBottom(15);
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);
+        this.setLeft(null);
+        this.setBottom(null);
+      };
+    });
+
+
+
+    hbl4.add(w4_1, w4_2, w4_3, w4_4, w4_5, w4_6, w4_7, w4_8, w4_9, w4_10);
+    d.add(hbl4);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE FIVE:
+       RIGHT ALIGN, REVERTED CHILDREN ORDER
+
+    *********************************************** */
+
+    var hbl5 = new qx.ui.layout.HorizontalBoxLayout;
+
+    hbl5.setTop(408);
+    hbl5.setLeft(20);
+    hbl5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl5.setWidth(null);
+    hbl5.setRight(335);
+
+    hbl5.setSpacing(4);
+    hbl5.setPadding(8);
+
+    hbl5.setHorizontalChildrenAlign("right");
+    hbl5.setReverseChildrenOrder(true);
+    hbl5.setVerticalChildrenAlign("middle");
+    
+    hbl5.setHeight(80);
+
+
+    var w5_1 = new qx.ui.layout.CanvasLayout;
+    w5_1.setWidth(25);
+    w5_1.setHeight(25);
+    w5_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_1.setBackgroundColor(cl_white);
+    // w5_1.setMaxHeight(40);
+
+    var w5_2 = new qx.ui.layout.CanvasLayout;
+    w5_2.setWidth(25);
+    w5_2.setHeight(25);
+    w5_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_2.setBackgroundColor(cl_blue);
+    w5_2.setBottom(10);
+
+    var w5_3 = new qx.ui.layout.CanvasLayout;
+    w5_3.setWidth(25);
+    w5_3.setHeight("100%");
+    w5_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_3.setBackgroundColor(cl_yellow);
+
+    var w5_4 = new qx.ui.layout.CanvasLayout;
+    w5_4.setWidth(25);
+    w5_4.setHeight(25);
+    w5_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_4.setBackgroundColor(cl_green);
+
+    var w5_5 = new qx.ui.layout.CanvasLayout;
+    w5_5.setWidth(40);
+    // w5_5.setHeight(25);
+    w5_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_5.setBackgroundColor(cl_orange);
+
+    var w5_6 = new qx.ui.layout.CanvasLayout;
+    w5_6.setWidth(25);
+    w5_6.setHeight(25);
+    w5_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_6.setBackgroundColor(cl_purple);
+    w5_6.setTop(15);
+    w5_6.setLeft(-25);    
+
+    var w5_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w5_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w5_9 = new qx.ui.layout.CanvasLayout;
+    w5_9.setWidth(25);
+    w5_9.setHeight(25);
+    w5_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_9.setBackgroundColor(cl_aqua);
+
+    var w5_10 = new qx.ui.layout.CanvasLayout;
+    w5_10.setWidth(25);
+    w5_10.setHeight(25);
+    w5_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl5_click = 0;
+    hbl5.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl5_click)
+      {
+        case 0:
+          this.setRight(null);
+          this.setWidth("auto");
+          break;
+          
+        case 1:
+          this.setHeight(30);
+          break;
+        
+        case 2:
+          this.setHeight("auto");
+          break;
+          
+        case 3:
+          this.setHeight(80);
+          break;
+          
+        case 4:
+          this.setWidth(200);
+          break;
+          
+        case 5:
+          this.setWidth(null);
+          this.setRight(335);
+          hbl5_click = 0;
+          return;        
+      };
+      
+      hbl5_click++;
+    });
+
+    w5_1.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(65);
+        this.setHeight(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w5_2.addEventListener("click", function(e) {
+      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
+    });
+
+    w5_3.addEventListener("click", function(e) {
+      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
+    });
+
+    w5_4.addEventListener("click", function(e) {
+      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
+    });
+
+    w5_5.addEventListener("click", function(e) {
+      this.getWidth() == 40 ? this.setWidth(80) : this.setWidth(40);
+    });
+    
+    w5_6.addEventListener("click", function(e) {
+      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
+    });
+
+    w5_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w5_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w5_9.addEventListener("click", function(e) 
+    {
+      if (this.getTop() == null)
+      {
+        this.setTop(20);
+        this.setLeft(-10);
+      }
+      else
+      {
+        this.setTop(null);
+        this.setLeft(null);
+      };
+    });
+    
+    w5_10.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(10);  
+        this.setHeight(10);
+        this.setLeft(-5);
+        this.setBottom(15);
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);
+        this.setLeft(null);
+        this.setBottom(null);
+      };
+    });
+
+
+
+    hbl5.add(w5_1, w5_2, w5_3, w5_4, w5_5, w5_6, w5_7, w5_8, w5_9, w5_10);
+    d.add(hbl5);
+
+
+
+
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE SIX:
+       CENTER ALIGN, REVERTED CHILDREN ORDER
+
+    *********************************************** */
+
+    var hbl6 = new qx.ui.layout.HorizontalBoxLayout;
+
+    hbl6.setTop(498);
+    hbl6.setLeft(20);
+    hbl6.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl6.setWidth(null);
+    hbl6.setRight(335);
+
+    hbl6.setSpacing(4);
+    hbl6.setPadding(8);
+
+    hbl6.setHorizontalChildrenAlign("center");
+    hbl6.setReverseChildrenOrder(true);
+    hbl6.setHeight(80);
+
+
+    var w6_1 = new qx.ui.layout.CanvasLayout;
+    w6_1.setWidth(25);
+    w6_1.setHeight(25);
+    w6_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_1.setBackgroundColor(cl_white);
+    // w6_1.setMaxHeight(40);
+
+    var w6_2 = new qx.ui.layout.CanvasLayout;
+    w6_2.setWidth(25);
+    w6_2.setHeight(25);
+    w6_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_2.setBackgroundColor(cl_blue);
+    w6_2.setBottom(10);
+
+    var w6_3 = new qx.ui.layout.CanvasLayout;
+    w6_3.setWidth(25);
+    w6_3.setHeight("100%");
+    w6_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_3.setBackgroundColor(cl_yellow);
+
+    var w6_4 = new qx.ui.layout.CanvasLayout;
+    w6_4.setWidth(25);
+    w6_4.setHeight(25);
+    w6_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_4.setBackgroundColor(cl_green);
+
+    var w6_5 = new qx.ui.layout.CanvasLayout;
+    w6_5.setWidth(40);
+    // w6_5.setHeight(25);
+    w6_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_5.setBackgroundColor(cl_orange);
+
+    var w6_6 = new qx.ui.layout.CanvasLayout;
+    w6_6.setWidth(25);
+    w6_6.setHeight(25);
+    w6_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_6.setBackgroundColor(cl_purple);
+    w6_6.setTop(15);
+    w6_6.setLeft(-25);    
+
+    var w6_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w6_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w6_9 = new qx.ui.layout.CanvasLayout;
+    w6_9.setWidth(25);
+    w6_9.setHeight(25);
+    w6_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_9.setBackgroundColor(cl_aqua);
+
+    var w6_10 = new qx.ui.layout.CanvasLayout;
+    w6_10.setWidth(25);
+    w6_10.setHeight(25);
+    w6_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl6_click = 0;
+    hbl6.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };
+            
+      switch(hbl6_click)
+      {
+        case 0:
+          this.setRight(null);
+          this.setWidth("auto");
+          break;
+          
+        case 1:
+          this.setHeight(30);
+          break;
+        
+        case 2:
+          this.setHeight("auto");
+          break;
+          
+        case 3:
+          this.setHeight(80);
+          break;
+          
+        case 4:
+          this.setWidth(200);
+          break;
+          
+        case 5:
+          this.setWidth(null);
+          this.setRight(335);
+          hbl6_click = 0;
+          return;        
+      };
+      
+      hbl6_click++;
+    });
+
+    w6_1.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(65);
+        this.setHeight(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w6_2.addEventListener("click", function(e) {
+      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
+    });
+
+    w6_3.addEventListener("click", function(e) {
+      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
+    });
+
+    w6_4.addEventListener("click", function(e) {
+      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
+    });
+
+    w6_5.addEventListener("click", function(e) {
+      this.getWidth() == 40 ? this.setWidth(80) : this.setWidth(40);
+    });
+    
+    w6_6.addEventListener("click", function(e) {
+      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
+    });
+
+    w6_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w6_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w6_9.addEventListener("click", function(e) 
+    {
+      if (this.getTop() == null)
+      {
+        this.setTop(20);
+        this.setLeft(-10);
+      }
+      else
+      {
+        this.setTop(null);
+        this.setLeft(null);
+      };
+    });
+    
+    w6_10.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(10);  
+        this.setHeight(10);
+        this.setLeft(-5);
+        this.setBottom(15);
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);
+        this.setLeft(null);
+        this.setBottom(null);
+      };
+    });
+
+
+
+    hbl6.add(w6_1, w6_2, w6_3, w6_4, w6_5, w6_6, w6_7, w6_8, w6_9, w6_10);
+    d.add(hbl6);
+
+
+
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/HorizontalBoxLayout_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/HorizontalBoxLayout_2.html
new file mode 100644 (file)
index 0000000..648eeae
--- /dev/null
@@ -0,0 +1,1233 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Tests for the new implementation of the qx.ui.layout.HorizontalBoxLayout widget. 
+    This example includes a child with a width defined as percent. This makes
+    things much more complex (especially on resizing of the parent) so this also
+    dramatically reduces the speed ;)
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var cl_white = new qx.renderer.color.Color("white");
+    var cl_blue = new qx.renderer.color.Color("blue");
+    var cl_yellow = new qx.renderer.color.Color("yellow");
+    var cl_green = new qx.renderer.color.Color("green");
+    var cl_orange = new qx.renderer.color.Color("orange");
+    var cl_purple = new qx.renderer.color.Color("purple");
+    var cl_aqua = new qx.renderer.color.Color("aqua");
+    var cl_fuchsia = new qx.renderer.color.Color("fuchsia");
+
+    /* ***********************************************
+
+       EXAMPLE ONE:
+       LEFT ALIGN
+
+    *********************************************** */
+
+    var hbl1 = new qx.ui.layout.HorizontalBoxLayout;
+
+    hbl1.setTop(48);
+    hbl1.setLeft(20);
+    hbl1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl1.setHeight("auto");
+    hbl1.setRight(335);
+
+    hbl1.setSpacing(4);
+    hbl1.setPadding(8);
+
+    hbl1.setVerticalChildrenAlign("bottom");
+    
+    
+    var w1_1 = new qx.ui.layout.CanvasLayout;
+    w1_1.setWidth(25);
+    w1_1.setHeight(25);
+    w1_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_1.setBackgroundColor(cl_white);
+    // w1_1.setMaxHeight(40);
+
+    var w1_2 = new qx.ui.layout.CanvasLayout;
+    w1_2.setWidth(25);
+    w1_2.setHeight(25);
+    w1_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_2.setBackgroundColor(cl_blue);
+    w1_2.setBottom(10);
+
+    var w1_3 = new qx.ui.layout.CanvasLayout;
+    w1_3.setWidth(25);
+    w1_3.setHeight("100%");
+    w1_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_3.setBackgroundColor(cl_yellow);
+
+    var w1_4 = new qx.ui.layout.CanvasLayout;
+    w1_4.setWidth(25);
+    w1_4.setHeight(25);
+    w1_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_4.setBackgroundColor(cl_green);
+
+    var w1_5 = new qx.ui.layout.CanvasLayout;
+    w1_5.setWidth("15%");
+    // w1_5.setHeight(25);
+    w1_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_5.setBackgroundColor(cl_orange);
+
+    var w1_6 = new qx.ui.layout.CanvasLayout;
+    w1_6.setWidth(25);
+    w1_6.setHeight(25);
+    w1_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_6.setBackgroundColor(cl_purple);
+    w1_6.setTop(15);
+    w1_6.setLeft(-25);
+
+    var w1_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w1_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w1_9 = new qx.ui.layout.CanvasLayout;
+    w1_9.setWidth(25);
+    w1_9.setHeight(25);
+    w1_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_9.setBackgroundColor(cl_aqua);
+
+    var w1_10 = new qx.ui.layout.CanvasLayout;
+    w1_10.setWidth(25);
+    w1_10.setHeight(25);
+    w1_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_10.setBackgroundColor(cl_fuchsia);
+
+    var hbl1_click = 0;
+    hbl1.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };
+      
+      switch(hbl1_click)
+      {
+        case 0:
+          this.setHeight(30);
+          break;
+        
+        case 1:
+          this.setHeight(80);
+          break;
+          
+        case 2:
+          this.setHeight("auto");
+          break;
+          
+        case 3:
+          this.setWidth(200);
+          break;
+          
+        case 4:
+          this.setWidth(null);
+          this.setRight(335);
+          hbl1_click = 0;
+          return;        
+      };
+      
+      hbl1_click++;
+    });
+
+    w1_1.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(65);
+        this.setHeight(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w1_2.addEventListener("click", function(e) {
+      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
+    });
+
+    w1_3.addEventListener("click", function(e) {
+      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
+    });
+
+    w1_4.addEventListener("click", function(e) {
+      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
+    });
+
+    w1_5.addEventListener("click", function(e) {
+      this.getWidth() == "15%" ? this.setWidth("30%") : this.setWidth("15%");
+    });
+    
+    w1_6.addEventListener("click", function(e) {
+      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
+    });
+
+    w1_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w1_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w1_9.addEventListener("click", function(e) 
+    {
+      if (this.getTop() == null)
+      {
+        this.setTop(20);
+        this.setLeft(-10);
+      }
+      else
+      {
+        this.setTop(null);
+        this.setLeft(null);
+      };
+    });
+    
+    w1_10.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(10);  
+        this.setHeight(10);
+        this.setLeft(-5);
+        this.setBottom(15);
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);
+        this.setLeft(null);
+        this.setBottom(null);
+      };
+    });    
+
+
+
+    hbl1.add(w1_1, w1_2, w1_3, w1_4, w1_5, w1_6, w1_7, w1_8, w1_9, w1_10);
+    d.add(hbl1);
+
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE TWO:
+       RIGHT ALIGN
+
+    *********************************************** */
+
+    var hbl2 = new qx.ui.layout.HorizontalBoxLayout;
+
+    hbl2.setTop(138);
+    hbl2.setLeft(20);
+    hbl2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl2.setHeight("auto");
+    hbl2.setRight(335);
+
+    hbl2.setSpacing(4);
+    hbl2.setPadding(8);
+
+    hbl2.setHorizontalChildrenAlign("right");
+    hbl2.setVerticalChildrenAlign("middle");
+
+
+    var w2_1 = new qx.ui.layout.CanvasLayout;
+    w2_1.setWidth(25);
+    w2_1.setHeight(25);
+    w2_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_1.setBackgroundColor(cl_white);
+    // w2_1.setMaxHeight(40);
+
+    var w2_2 = new qx.ui.layout.CanvasLayout;
+    w2_2.setWidth(25);
+    w2_2.setHeight(25);
+    w2_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_2.setBackgroundColor(cl_blue);
+    w2_2.setBottom(10);
+
+    var w2_3 = new qx.ui.layout.CanvasLayout;
+    w2_3.setWidth(25);
+    w2_3.setHeight("100%");
+    w2_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_3.setBackgroundColor(cl_yellow);
+
+    var w2_4 = new qx.ui.layout.CanvasLayout;
+    w2_4.setWidth(25);
+    w2_4.setHeight(25);
+    w2_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_4.setBackgroundColor(cl_green);
+
+    var w2_5 = new qx.ui.layout.CanvasLayout;
+    w2_5.setWidth("15%");
+    // w2_5.setHeight(25);
+    w2_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_5.setBackgroundColor(cl_orange);
+
+    var w2_6 = new qx.ui.layout.CanvasLayout;
+    w2_6.setWidth(25);
+    w2_6.setHeight(25);
+    w2_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_6.setBackgroundColor(cl_purple);
+    w2_6.setTop(15);
+    w2_6.setLeft(-25);    
+
+    var w2_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w2_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w2_9 = new qx.ui.layout.CanvasLayout;
+    w2_9.setWidth(25);
+    w2_9.setHeight(25);
+    w2_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_9.setBackgroundColor(cl_aqua);
+
+    var w2_10 = new qx.ui.layout.CanvasLayout;
+    w2_10.setWidth(25);
+    w2_10.setHeight(25);
+    w2_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_10.setBackgroundColor(cl_fuchsia);
+    w2_10.foo = true;
+
+
+    var hbl2_click = 0;
+    hbl2.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl2_click)
+      {
+        case 0:
+          this.setHeight(30);
+          break;
+        
+        case 1:
+          this.setHeight(80);
+          break;
+          
+        case 2:
+          this.setHeight("auto");
+          break;
+          
+        case 3:
+          this.setWidth(200);
+          break;
+          
+        case 4:
+          this.setWidth(null);
+          this.setRight(335);
+          hbl2_click = 0;
+          return;        
+      };
+      
+      hbl2_click++;
+    });
+    
+    w2_1.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(65);
+        this.setHeight(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w2_2.addEventListener("click", function(e) {
+      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
+    });
+
+    w2_3.addEventListener("click", function(e) {
+      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
+    });
+
+    w2_4.addEventListener("click", function(e) {
+      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
+    });
+
+    w2_5.addEventListener("click", function(e) {
+      this.getWidth() == "15%" ? this.setWidth("30%") : this.setWidth("15%");
+    });
+    
+    w2_6.addEventListener("click", function(e) {
+      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
+    });
+
+    w2_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w2_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w2_9.addEventListener("click", function(e) 
+    {
+      if (this.getTop() == null)
+      {
+        this.setTop(20);
+        this.setLeft(-10);
+      }
+      else
+      {
+        this.setTop(null);
+        this.setLeft(null);
+      };
+    });
+    
+    w2_10.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(10);  
+        this.setHeight(10);
+        this.setLeft(-5);
+        this.setBottom(15);
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);
+        this.setLeft(null);
+        this.setBottom(null);
+      };
+    });
+
+
+
+    hbl2.add(w2_1, w2_2, w2_3, w2_4, w2_5, w2_6, w2_7, w2_8, w2_9, w2_10);
+    d.add(hbl2);
+
+
+    /* ***********************************************
+
+       EXAMPLE THREE:
+       CENTER ALIGN
+
+    *********************************************** */
+
+    var hbl3 = new qx.ui.layout.HorizontalBoxLayout;
+
+    hbl3.setTop(228);
+    hbl3.setLeft(20);
+    hbl3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl3.setHeight("auto");
+    hbl3.setRight(335);
+
+    hbl3.setSpacing(4);
+    hbl3.setPadding(8);
+
+    hbl3.setHorizontalChildrenAlign("center");
+
+
+
+    var w3_1 = new qx.ui.layout.CanvasLayout;
+    w3_1.setWidth(25);
+    w3_1.setHeight(25);
+    w3_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_1.setBackgroundColor(cl_white);
+    // w3_1.setMaxHeight(40);
+
+    var w3_2 = new qx.ui.layout.CanvasLayout;
+    w3_2.setWidth(25);
+    w3_2.setHeight(25);
+    w3_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_2.setBackgroundColor(cl_blue);
+    w3_2.setBottom(10);
+
+    var w3_3 = new qx.ui.layout.CanvasLayout;
+    w3_3.setWidth(25);
+    w3_3.setHeight("100%");
+    w3_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_3.setBackgroundColor(cl_yellow);
+
+    var w3_4 = new qx.ui.layout.CanvasLayout;
+    w3_4.setWidth(25);
+    w3_4.setHeight(25);
+    w3_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_4.setBackgroundColor(cl_green);
+
+    var w3_5 = new qx.ui.layout.CanvasLayout;
+    w3_5.setWidth("15%");
+    // w3_5.setHeight(25);
+    w3_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_5.setBackgroundColor(cl_orange);
+
+    var w3_6 = new qx.ui.layout.CanvasLayout;
+    w3_6.setWidth(25);
+    w3_6.setHeight(25);
+    w3_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_6.setBackgroundColor(cl_purple);
+    w3_6.setTop(15);
+    w3_6.setLeft(-25);    
+
+    var w3_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w3_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w3_9 = new qx.ui.layout.CanvasLayout;
+    w3_9.setWidth(25);
+    w3_9.setHeight(25);
+    w3_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_9.setBackgroundColor(cl_aqua);
+
+    var w3_10 = new qx.ui.layout.CanvasLayout;
+    w3_10.setWidth(25);
+    w3_10.setHeight(25);
+    w3_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl3_click = 0;
+    hbl3.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl3_click)
+      {
+        case 0:
+          this.setHeight(30);
+          break;
+        
+        case 1:
+          this.setHeight(80);
+          break;
+          
+        case 2:
+          this.setHeight("auto");
+          break;
+          
+        case 3:
+          this.setWidth(200);
+          break;
+          
+        case 4:
+          this.setWidth(null);
+          this.setRight(335);
+          hbl3_click = 0;
+          return;        
+      };
+      
+      hbl3_click++;
+    });
+
+    w3_1.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(65);
+        this.setHeight(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w3_2.addEventListener("click", function(e) {
+      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
+    });
+
+    w3_3.addEventListener("click", function(e) {
+      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
+    });
+
+    w3_4.addEventListener("click", function(e) {
+      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
+    });
+
+    w3_5.addEventListener("click", function(e) {
+      this.getWidth() == "15%" ? this.setWidth("30%") : this.setWidth("15%");
+    });
+    
+    w3_6.addEventListener("click", function(e) {
+      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
+    });
+
+    w3_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w3_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w3_9.addEventListener("click", function(e) 
+    {
+      if (this.getTop() == null)
+      {
+        this.setTop(20);
+        this.setLeft(-10);
+      }
+      else
+      {
+        this.setTop(null);
+        this.setLeft(null);
+      };
+    });
+    
+    w3_10.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(10);  
+        this.setHeight(10);
+        this.setLeft(-5);
+        this.setBottom(15);
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);
+        this.setLeft(null);
+        this.setBottom(null);
+      };
+    });
+
+
+
+    hbl3.add(w3_1, w3_2, w3_3, w3_4, w3_5, w3_6, w3_7, w3_8, w3_9, w3_10);
+    d.add(hbl3);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE FOUR:
+       LEFT ALIGN, REVERTED CHILDREN ORDER
+
+    *********************************************** */
+
+    var hbl4 = new qx.ui.layout.HorizontalBoxLayout;
+
+    hbl4.setTop(318);
+    hbl4.setLeft(20);
+    hbl4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl4.setWidth(null);
+    hbl4.setRight(335);
+
+    hbl4.setSpacing(4);
+    hbl4.setPadding(8);
+    hbl4.setReverseChildrenOrder(true);
+    hbl4.setVerticalChildrenAlign("bottom");
+    
+    hbl4.setHeight(80);
+
+
+
+    var w4_1 = new qx.ui.layout.CanvasLayout;
+    w4_1.setWidth(25);
+    w4_1.setHeight(25);
+    w4_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_1.setBackgroundColor(cl_white);
+    // w4_1.setMaxHeight(40);
+
+    var w4_2 = new qx.ui.layout.CanvasLayout;
+    w4_2.setWidth(25);
+    w4_2.setHeight(25);
+    w4_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_2.setBackgroundColor(cl_blue);
+    w4_2.setBottom(10);
+
+    var w4_3 = new qx.ui.layout.CanvasLayout;
+    w4_3.setWidth(25);
+    w4_3.setHeight("100%");
+    w4_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_3.setBackgroundColor(cl_yellow);
+
+    var w4_4 = new qx.ui.layout.CanvasLayout;
+    w4_4.setWidth(25);
+    w4_4.setHeight(25);
+    w4_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_4.setBackgroundColor(cl_green);
+
+    var w4_5 = new qx.ui.layout.CanvasLayout;
+    w4_5.setWidth("15%");
+    // w4_5.setHeight(25);
+    w4_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_5.setBackgroundColor(cl_orange);
+
+    var w4_6 = new qx.ui.layout.CanvasLayout;
+    w4_6.setWidth(25);
+    w4_6.setHeight(25);
+    w4_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_6.setBackgroundColor(cl_purple);
+    w4_6.setTop(15);
+    w4_6.setLeft(-25);    
+
+    var w4_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w4_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w4_9 = new qx.ui.layout.CanvasLayout;
+    w4_9.setWidth(25);
+    w4_9.setHeight(25);
+    w4_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_9.setBackgroundColor(cl_aqua);
+
+    var w4_10 = new qx.ui.layout.CanvasLayout;
+    w4_10.setWidth(25);
+    w4_10.setHeight(25);
+    w4_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl4_click = 0;
+    hbl4.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl4_click)
+      {
+        case 0:
+          this.setHeight(30);
+          break;
+        
+        case 1:
+          this.setHeight("auto");
+          break;
+          
+        case 2:
+          this.setHeight(80);
+          break;
+          
+        case 3:
+          this.setWidth(200);
+          break;
+          
+        case 4:
+          this.setWidth(null);
+          this.setRight(335);
+          hbl4_click = 0;
+          return;        
+      };
+      
+      hbl4_click++;
+    });
+
+    w4_1.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(65);
+        this.setHeight(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w4_2.addEventListener("click", function(e) {
+      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
+    });
+
+    w4_3.addEventListener("click", function(e) {
+      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
+    });
+
+    w4_4.addEventListener("click", function(e) {
+      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
+    });
+
+    w4_5.addEventListener("click", function(e) {
+      this.getWidth() == "15%" ? this.setWidth("30%") : this.setWidth("15%");
+    });
+    
+    w4_6.addEventListener("click", function(e) {
+      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
+    });
+
+    w4_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w4_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w4_9.addEventListener("click", function(e) 
+    {
+      if (this.getTop() == null)
+      {
+        this.setTop(20);
+        this.setLeft(-10);
+      }
+      else
+      {
+        this.setTop(null);
+        this.setLeft(null);
+      };
+    });
+    
+    w4_10.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(10);  
+        this.setHeight(10);
+        this.setLeft(-5);
+        this.setBottom(15);
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);
+        this.setLeft(null);
+        this.setBottom(null);
+      };
+    });
+
+
+
+    hbl4.add(w4_1, w4_2, w4_3, w4_4, w4_5, w4_6, w4_7, w4_8, w4_9, w4_10);
+    d.add(hbl4);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE FIVE:
+       RIGHT ALIGN, REVERTED CHILDREN ORDER
+
+    *********************************************** */
+
+    var hbl5 = new qx.ui.layout.HorizontalBoxLayout;
+
+    hbl5.setTop(408);
+    hbl5.setLeft(20);
+    hbl5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl5.setWidth(null);
+    hbl5.setRight(335);
+
+    hbl5.setSpacing(4);
+    hbl5.setPadding(8);
+
+    hbl5.setHorizontalChildrenAlign("right");
+    hbl5.setReverseChildrenOrder(true);
+    hbl5.setVerticalChildrenAlign("middle");
+    
+    hbl5.setHeight(80);
+
+
+    var w5_1 = new qx.ui.layout.CanvasLayout;
+    w5_1.setWidth(25);
+    w5_1.setHeight(25);
+    w5_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_1.setBackgroundColor(cl_white);
+    // w5_1.setMaxHeight(40);
+
+    var w5_2 = new qx.ui.layout.CanvasLayout;
+    w5_2.setWidth(25);
+    w5_2.setHeight(25);
+    w5_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_2.setBackgroundColor(cl_blue);
+    w5_2.setBottom(10);
+
+    var w5_3 = new qx.ui.layout.CanvasLayout;
+    w5_3.setWidth(25);
+    w5_3.setHeight("100%");
+    w5_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_3.setBackgroundColor(cl_yellow);
+
+    var w5_4 = new qx.ui.layout.CanvasLayout;
+    w5_4.setWidth(25);
+    w5_4.setHeight(25);
+    w5_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_4.setBackgroundColor(cl_green);
+
+    var w5_5 = new qx.ui.layout.CanvasLayout;
+    w5_5.setWidth("15%");
+    // w5_5.setHeight(25);
+    w5_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_5.setBackgroundColor(cl_orange);
+
+    var w5_6 = new qx.ui.layout.CanvasLayout;
+    w5_6.setWidth(25);
+    w5_6.setHeight(25);
+    w5_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_6.setBackgroundColor(cl_purple);
+    w5_6.setTop(15);
+    w5_6.setLeft(-25);    
+
+    var w5_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w5_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w5_9 = new qx.ui.layout.CanvasLayout;
+    w5_9.setWidth(25);
+    w5_9.setHeight(25);
+    w5_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_9.setBackgroundColor(cl_aqua);
+
+    var w5_10 = new qx.ui.layout.CanvasLayout;
+    w5_10.setWidth(25);
+    w5_10.setHeight(25);
+    w5_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl5_click = 0;
+    hbl5.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl5_click)
+      {
+        case 0:
+          this.setHeight(30);
+          break;
+        
+        case 1:
+          this.setHeight("auto");
+          break;
+          
+        case 2:
+          this.setHeight(80);
+          break;
+          
+        case 3:
+          this.setWidth(200);
+          break;
+          
+        case 4:
+          this.setWidth(null);
+          this.setRight(335);
+          hbl5_click = 0;
+          return;        
+      };
+      
+      hbl5_click++;
+    });
+
+    w5_1.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(65);
+        this.setHeight(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w5_2.addEventListener("click", function(e) {
+      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
+    });
+
+    w5_3.addEventListener("click", function(e) {
+      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
+    });
+
+    w5_4.addEventListener("click", function(e) {
+      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
+    });
+
+    w5_5.addEventListener("click", function(e) {
+      this.getWidth() == "15%" ? this.setWidth("30%") : this.setWidth("15%");
+    });
+    
+    w5_6.addEventListener("click", function(e) {
+      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
+    });
+
+    w5_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w5_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w5_9.addEventListener("click", function(e) 
+    {
+      if (this.getTop() == null)
+      {
+        this.setTop(20);
+        this.setLeft(-10);
+      }
+      else
+      {
+        this.setTop(null);
+        this.setLeft(null);
+      };
+    });
+    
+    w5_10.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(10);  
+        this.setHeight(10);
+        this.setLeft(-5);
+        this.setBottom(15);
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);
+        this.setLeft(null);
+        this.setBottom(null);
+      };
+    });
+
+
+
+    hbl5.add(w5_1, w5_2, w5_3, w5_4, w5_5, w5_6, w5_7, w5_8, w5_9, w5_10);
+    d.add(hbl5);
+
+
+
+
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE SIX:
+       CENTER ALIGN, REVERTED CHILDREN ORDER
+
+    *********************************************** */
+
+    var hbl6 = new qx.ui.layout.HorizontalBoxLayout;
+
+    hbl6.setTop(498);
+    hbl6.setLeft(20);
+    hbl6.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl6.setWidth(null);
+    hbl6.setRight(335);
+
+    hbl6.setSpacing(4);
+    hbl6.setPadding(8);
+
+    hbl6.setHorizontalChildrenAlign("center");
+    hbl6.setReverseChildrenOrder(true);
+    hbl6.setHeight(80);
+
+
+    var w6_1 = new qx.ui.layout.CanvasLayout;
+    w6_1.setWidth(25);
+    w6_1.setHeight(25);
+    w6_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_1.setBackgroundColor(cl_white);
+    // w6_1.setMaxHeight(40);
+
+    var w6_2 = new qx.ui.layout.CanvasLayout;
+    w6_2.setWidth(25);
+    w6_2.setHeight(25);
+    w6_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_2.setBackgroundColor(cl_blue);
+    w6_2.setBottom(10);
+
+    var w6_3 = new qx.ui.layout.CanvasLayout;
+    w6_3.setWidth(25);
+    w6_3.setHeight("100%");
+    w6_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_3.setBackgroundColor(cl_yellow);
+
+    var w6_4 = new qx.ui.layout.CanvasLayout;
+    w6_4.setWidth(25);
+    w6_4.setHeight(25);
+    w6_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_4.setBackgroundColor(cl_green);
+
+    var w6_5 = new qx.ui.layout.CanvasLayout;
+    w6_5.setWidth("15%");
+    // w6_5.setHeight(25);
+    w6_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_5.setBackgroundColor(cl_orange);
+
+    var w6_6 = new qx.ui.layout.CanvasLayout;
+    w6_6.setWidth(25);
+    w6_6.setHeight(25);
+    w6_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_6.setBackgroundColor(cl_purple);
+    w6_6.setTop(15);
+    w6_6.setLeft(-25);    
+
+    var w6_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w6_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w6_9 = new qx.ui.layout.CanvasLayout;
+    w6_9.setWidth(25);
+    w6_9.setHeight(25);
+    w6_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_9.setBackgroundColor(cl_aqua);
+
+    var w6_10 = new qx.ui.layout.CanvasLayout;
+    w6_10.setWidth(25);
+    w6_10.setHeight(25);
+    w6_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl6_click = 0;
+    hbl6.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };
+            
+      switch(hbl6_click)
+      {
+        case 0:
+          this.setHeight(30);
+          break;
+        
+        case 1:
+          this.setHeight("auto");
+          break;
+          
+        case 2:
+          this.setHeight(80);
+          break;
+          
+        case 3:
+          this.setWidth(200);
+          break;
+          
+        case 4:
+          this.setWidth(null);
+          this.setRight(335);
+          hbl6_click = 0;
+          return;        
+      };
+      
+      hbl6_click++;
+    });
+
+    w6_1.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(65);
+        this.setHeight(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w6_2.addEventListener("click", function(e) {
+      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
+    });
+
+    w6_3.addEventListener("click", function(e) {
+      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
+    });
+
+    w6_4.addEventListener("click", function(e) {
+      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
+    });
+
+    w6_5.addEventListener("click", function(e) {
+      this.getWidth() == "15%" ? this.setWidth("30%") : this.setWidth("15%");
+    });
+    
+    w6_6.addEventListener("click", function(e) {
+      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
+    });
+
+    w6_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w6_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w6_9.addEventListener("click", function(e) 
+    {
+      if (this.getTop() == null)
+      {
+        this.setTop(20);
+        this.setLeft(-10);
+      }
+      else
+      {
+        this.setTop(null);
+        this.setLeft(null);
+      };
+    });
+    
+    w6_10.addEventListener("click", function(e) 
+    {
+      if (this.getWidth() == 25)
+      {
+        this.setWidth(10);  
+        this.setHeight(10);
+        this.setLeft(-5);
+        this.setBottom(15);
+      }
+      else
+      {
+        this.setWidth(25);
+        this.setHeight(25);
+        this.setLeft(null);
+        this.setBottom(null);
+      };
+    });
+
+
+
+    hbl6.add(w6_1, w6_2, w6_3, w6_4, w6_5, w6_6, w6_7, w6_8, w6_9, w6_10);
+    d.add(hbl6);
+
+
+
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/HorizontalBoxLayout_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/HorizontalBoxLayout_3.html
new file mode 100644 (file)
index 0000000..6777c53
--- /dev/null
@@ -0,0 +1,594 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Tests for the new implementation of the qx.ui.layout.HorizontalBoxLayout widget.<br/>
+    <br/>
+    1. Simple testing, one static and one flex child<br/>
+    2. Two flex children with the same priority<br/>
+    3. The same as #2, but the second has the doubled priority compared to the first<br/>
+    <br/>
+
+    4. The same as #3, but now the second child has a max-width of 50px<br/>
+    5. The same as #4, but now with enabled "advancedFlexAllocation"<br/>
+    <br/>
+
+    6. The same as #3, but now the second has a min width of 500px<br/>
+    7. The same as #6, but now with enabled "advancedFlexAllocation"<br/>
+    <br/>
+
+    8. Three children with the priorities: 1, 2 and 3. The second has a maxWidth of 50px<br/>
+    9. The same as #8, but now with enabled "advancedFlexAllocation"<br/>
+    <br/>
+
+    10. Three children with the priorities: 1, 2 and 3. Added a few mouse actions.<br/>
+    11. Three children with the priorities: 1, a static width of 80px and 3.<br/>
+    12. The same as #11, but configured as 'auto' width.<br/>
+    <br/>
+
+    13. Test for more complex child widgets. Seems to work without problems.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+
+    /* ***********************************************
+
+       EXAMPLE 1:
+
+    *********************************************** */
+
+    var te1 = new qx.ui.basic.Label("#1");
+    te1.setLocation(20, 48);
+    d.add(te1);
+
+    var hbl1 = new qx.ui.layout.HorizontalBoxLayout;
+    hbl1.setLeft(50);
+    hbl1.setTop(48);
+    hbl1.setRight(335);
+    hbl1.setWidth(null);
+    hbl1.setHeight("auto");
+    hbl1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl1.setSpacing(4);
+    hbl1.setPadding(2);
+    d.add(hbl1);
+
+    var t1_1 = new qx.ui.basic.Terminator;
+    t1_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t1_1.setWidth(20);
+    t1_1.setHeight(10);
+    t1_1.setBackgroundColor("green");
+    hbl1.add(t1_1);
+
+    t1_1.addEventListener("click", function() {
+      this.setWidth(this.getWidth() == 20 ? 100 : 20);
+    });
+
+    var t1_2 = new qx.ui.basic.Terminator;
+    t1_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t1_2.setWidth("1*");
+    t1_2.setHeight(10);
+    t1_2.setBackgroundColor("blue");
+    hbl1.add(t1_2);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 2:
+
+    *********************************************** */
+
+    var te2 = new qx.ui.basic.Label("#2");
+    te2.setLocation(20, 68);
+    d.add(te2);
+
+    var hbl2 = new qx.ui.layout.HorizontalBoxLayout;
+    hbl2.setLeft(50);
+    hbl2.setTop(68);
+    hbl2.setRight(335);
+    hbl2.setWidth(null);
+    hbl2.setHeight("auto");
+    hbl2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl2.setSpacing(4);
+    hbl2.setPadding(2);
+    d.add(hbl2);
+
+    var t2_1 = new qx.ui.basic.Terminator;
+    t2_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t2_1.setWidth("1*");
+    t2_1.setHeight(10);
+    t2_1.setBackgroundColor("green");
+    hbl2.add(t2_1);
+
+    var t2_2 = new qx.ui.basic.Terminator;
+    t2_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t2_2.setWidth("1*");
+    t2_2.setHeight(10);
+    t2_2.setBackgroundColor("blue");
+    hbl2.add(t2_2);
+
+
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 3:
+
+    *********************************************** */
+
+    var te3 = new qx.ui.basic.Label("#3");
+    te3.setLocation(20, 88);
+    d.add(te3);
+
+    var hbl3 = new qx.ui.layout.HorizontalBoxLayout;
+    hbl3.setLeft(50);
+    hbl3.setTop(88);
+    hbl3.setRight(335);
+    hbl3.setWidth(null);
+    hbl3.setHeight("auto");
+    hbl3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl3.setSpacing(4);
+    hbl3.setPadding(2);
+    d.add(hbl3);
+
+    var t3_1 = new qx.ui.basic.Terminator;
+    t3_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t3_1.setWidth("1*");
+    t3_1.setHeight(10);
+    t3_1.setBackgroundColor("green");
+    hbl3.add(t3_1);
+
+    var t3_2 = new qx.ui.basic.Terminator;
+    t3_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t3_2.setWidth("2*");
+    t3_2.setHeight(10);
+    t3_2.setBackgroundColor("blue");
+    hbl3.add(t3_2);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 4:
+
+    *********************************************** */
+
+    var te4 = new qx.ui.basic.Label("#4");
+    te4.setLocation(20, 128);
+    d.add(te4);
+
+    var hbl4 = new qx.ui.layout.HorizontalBoxLayout;
+    hbl4.setLeft(50);
+    hbl4.setTop(128);
+    hbl4.setRight(335);
+    hbl4.setWidth(null);
+    hbl4.setHeight("auto");
+    hbl4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl4.setSpacing(4);
+    hbl4.setPadding(2);
+    d.add(hbl4);
+
+    var t4_1 = new qx.ui.basic.Terminator;
+    t4_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t4_1.setWidth("1*");
+    t4_1.setHeight(10);
+    t4_1.setBackgroundColor("green");
+    hbl4.add(t4_1);
+
+    var t4_2 = new qx.ui.basic.Terminator;
+    t4_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t4_2.setWidth("2*");
+    t4_2.setHeight(10);
+    t4_2.setMaxWidth(50);
+    t4_2.setBackgroundColor("blue");
+    hbl4.add(t4_2);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 5:
+
+    *********************************************** */
+
+    var te5 = new qx.ui.basic.Label("#5");
+    te5.setLocation(20, 148);
+    d.add(te5);
+
+    var hbl5 = new qx.ui.layout.HorizontalBoxLayout;
+    hbl5.setLeft(50);
+    hbl5.setTop(148);
+    hbl5.setRight(335);
+    hbl5.setWidth(null);
+    hbl5.setHeight("auto");
+    hbl5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl5.setSpacing(4);
+    hbl5.setPadding(2);
+    hbl5.setUseAdvancedFlexAllocation(true);
+    d.add(hbl5);
+
+    var t5_1 = new qx.ui.basic.Terminator;
+    t5_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t5_1.setWidth("1*");
+    t5_1.setHeight(10);
+    t5_1.setBackgroundColor("green");
+    hbl5.add(t5_1);
+
+    var t5_2 = new qx.ui.basic.Terminator;
+    t5_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t5_2.setWidth("2*");
+    t5_2.setHeight(10);
+    t5_2.setMaxWidth(50);
+    t5_2.setBackgroundColor("blue");
+    hbl5.add(t5_2);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 6:
+
+    *********************************************** */
+
+    var te6 = new qx.ui.basic.Label("#6");
+    te6.setLocation(20, 188);
+    d.add(te6);
+
+    var hbl6 = new qx.ui.layout.HorizontalBoxLayout;
+    hbl6.setLeft(50);
+    hbl6.setTop(188);
+    hbl6.setRight(335);
+    hbl6.setWidth(null);
+    hbl6.setHeight("auto");
+    hbl6.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl6.setSpacing(4);
+    hbl6.setPadding(2);
+    d.add(hbl6);
+
+    var t6_1 = new qx.ui.basic.Terminator;
+    t6_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t6_1.setWidth("1*");
+    t6_1.setHeight(10);
+    t6_1.setBackgroundColor("green");
+    hbl6.add(t6_1);
+
+    var t6_2 = new qx.ui.basic.Terminator;
+    t6_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t6_2.setWidth("2*");
+    t6_2.setHeight(10);
+    t6_2.setMinWidth(500);
+    t6_2.setBackgroundColor("blue");
+    hbl6.add(t6_2);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 7:
+
+    *********************************************** */
+
+    var te7 = new qx.ui.basic.Label("#7");
+    te7.setLocation(20, 208);
+    d.add(te7);
+
+    var hbl7 = new qx.ui.layout.HorizontalBoxLayout;
+    hbl7.setLeft(50);
+    hbl7.setTop(208);
+    hbl7.setRight(335);
+    hbl7.setWidth(null);
+    hbl7.setHeight("auto");
+    hbl7.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl7.setSpacing(4);
+    hbl7.setPadding(2);
+    hbl7.setUseAdvancedFlexAllocation(true);
+    d.add(hbl7);
+
+    var t7_1 = new qx.ui.basic.Terminator;
+    t7_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t7_1.setWidth("1*");
+    t7_1.setHeight(10);
+    t7_1.setBackgroundColor("green");
+    hbl7.add(t7_1);
+
+    var t7_2 = new qx.ui.basic.Terminator;
+    t7_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t7_2.setWidth("2*");
+    t7_2.setHeight(10);
+    t7_2.setMinWidth(500);
+    t7_2.setBackgroundColor("blue");
+    hbl7.add(t7_2);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 8:
+
+    *********************************************** */
+
+    var te8 = new qx.ui.basic.Label("#8");
+    te8.setLocation(20, 248);
+    d.add(te8);
+
+    var hbl8 = new qx.ui.layout.HorizontalBoxLayout;
+    hbl8.setLeft(50);
+    hbl8.setTop(248);
+    hbl8.setRight(335);
+    hbl8.setWidth(null);
+    hbl8.setHeight("auto");
+    hbl8.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl8.setSpacing(4);
+    hbl8.setPadding(2);
+    d.add(hbl8);
+
+    var t8_1 = new qx.ui.basic.Terminator;
+    t8_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t8_1.setWidth("1*");
+    t8_1.setHeight(10);
+    t8_1.setBackgroundColor("green");
+    hbl8.add(t8_1);
+
+    var t8_2 = new qx.ui.basic.Terminator;
+    t8_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t8_2.setWidth("2*");
+    t8_2.setHeight(10);
+    t8_2.setBackgroundColor("blue");
+    t8_2.setMaxWidth(50);
+    hbl8.add(t8_2);
+
+    var t8_3 = new qx.ui.basic.Terminator;
+    t8_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t8_3.setWidth("3*");
+    t8_3.setHeight(10);
+    t8_3.setBackgroundColor("red");
+    hbl8.add(t8_3);
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 9:
+
+    *********************************************** */
+
+    var te9 = new qx.ui.basic.Label("#9");
+    te9.setLocation(20, 268);
+    d.add(te9);
+
+    var hbl9 = new qx.ui.layout.HorizontalBoxLayout;
+    hbl9.setLeft(50);
+    hbl9.setTop(268);
+    hbl9.setRight(335);
+    hbl9.setWidth(null);
+    hbl9.setHeight("auto");
+    hbl9.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl9.setSpacing(4);
+    hbl9.setPadding(2);
+    hbl9.setUseAdvancedFlexAllocation(true);
+    d.add(hbl9);
+
+    var t9_1 = new qx.ui.basic.Terminator;
+    t9_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t9_1.setWidth("1*");
+    t9_1.setHeight(10);
+    t9_1.setBackgroundColor("green");
+    hbl9.add(t9_1);
+
+    var t9_2 = new qx.ui.basic.Terminator;
+    t9_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t9_2.setWidth("2*");
+    t9_2.setHeight(10);
+    t9_2.setBackgroundColor("blue");
+    t9_2.setMaxWidth(50);
+    hbl9.add(t9_2);
+
+    var t9_3 = new qx.ui.basic.Terminator;
+    t9_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t9_3.setWidth("3*");
+    t9_3.setHeight(10);
+    t9_3.setBackgroundColor("red");
+    hbl9.add(t9_3);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 10:
+
+    *********************************************** */
+
+    var te10 = new qx.ui.basic.Label("#10");
+    te10.setLocation(20, 308);
+    d.add(te10);
+
+    var hbl10 = new qx.ui.layout.HorizontalBoxLayout;
+    hbl10.setLeft(50);
+    hbl10.setTop(308);
+    hbl10.setRight(335);
+    hbl10.setWidth(null);
+    hbl10.setHeight("auto");
+    hbl10.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl10.setSpacing(4);
+    hbl10.setPadding(2);
+    hbl10.setUseAdvancedFlexAllocation(true);
+    d.add(hbl10);
+
+    var t10_1 = new qx.ui.basic.Terminator;
+    t10_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t10_1.setWidth("1*");
+    t10_1.setHeight(10);
+    t10_1.setBackgroundColor("green");
+    t10_1.addEventListener("click", function(e) { this.setWidth(this.getWidth() == "1*" ? "4*" : "1*"); });
+    hbl10.add(t10_1);
+
+    var t10_2 = new qx.ui.basic.Terminator;
+    t10_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t10_2.setWidth("2*");
+    t10_2.setHeight(10);
+    t10_2.setBackgroundColor("blue");
+    t10_2.addEventListener("click", function(e) { this.setWidth(this.getWidth() == "2*" ? "1*" : "2*"); });
+    hbl10.add(t10_2);
+
+    var t10_3 = new qx.ui.basic.Terminator;
+    t10_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t10_3.setWidth("3*");
+    t10_3.setHeight(10);
+    t10_3.setBackgroundColor("red");
+    t10_3.addEventListener("click", function(e) { this.setWidth(this.getWidth() == "3*" ? "6*" : "3*"); });
+    hbl10.add(t10_3);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 11:
+
+    *********************************************** */
+
+    var te11 = new qx.ui.basic.Label("#11");
+    te11.setLocation(20, 328);
+    d.add(te11);
+
+    var hbl11 = new qx.ui.layout.HorizontalBoxLayout;
+    hbl11.setLeft(50);
+    hbl11.setTop(328);
+    hbl11.setRight(335);
+    hbl11.setWidth(null);
+    hbl11.setHeight("auto");
+    hbl11.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl11.setSpacing(4);
+    hbl11.setPadding(2);
+    d.add(hbl11);
+
+    var t11_1 = new qx.ui.basic.Terminator;
+    t11_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t11_1.setWidth("1*");
+    t11_1.setHeight(10);
+    t11_1.setBackgroundColor("green");
+    hbl11.add(t11_1);
+
+    var t11_2 = new qx.ui.basic.Terminator;
+    t11_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t11_2.setWidth(80);
+    t11_2.setHeight(10);
+    t11_2.setBackgroundColor("blue");
+    hbl11.add(t11_2);
+
+    var t11_3 = new qx.ui.basic.Terminator;
+    t11_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t11_3.setWidth("3*");
+    t11_3.setHeight(10);
+    t11_3.setBackgroundColor("red");
+    hbl11.add(t11_3);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 12:
+
+    *********************************************** */
+
+    var te12 = new qx.ui.basic.Label("#12");
+    te12.setLocation(20, 348);
+    d.add(te12);
+
+    var hbl12 = new qx.ui.layout.HorizontalBoxLayout;
+    hbl12.setLeft(50);
+    hbl12.setTop(348);
+    hbl12.setHeight("auto");
+    hbl12.setWidth("auto");
+    hbl12.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl12.setSpacing(4);
+    hbl12.setPadding(2);
+    d.add(hbl12);
+
+    var t12_1 = new qx.ui.basic.Terminator;
+    t12_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t12_1.setWidth("1*");
+    t12_1.setHeight(10);
+    t12_1.setBackgroundColor("green");
+    hbl12.add(t12_1);
+
+    var t12_2 = new qx.ui.basic.Terminator;
+    t12_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t12_2.setWidth(80);
+    t12_2.setHeight(10);
+    t12_2.setBackgroundColor("blue");
+    hbl12.add(t12_2);
+
+    var t12_3 = new qx.ui.basic.Terminator;
+    t12_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t12_3.setWidth("3*");
+    t12_3.setHeight(10);
+    t12_3.setBackgroundColor("red");
+    hbl12.add(t12_3);
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 13:
+
+    *********************************************** */
+
+    var te13 = new qx.ui.basic.Label("#13");
+    te13.setLocation(20, 388);
+    d.add(te13);
+
+    var hbl13 = new qx.ui.layout.HorizontalBoxLayout;
+    hbl13.setLeft(50);
+    hbl13.setTop(388);
+    hbl13.setRight(335);
+    hbl13.setWidth(null);
+    hbl13.setHeight("auto");
+    hbl13.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl13.setSpacing(4);
+    hbl13.setPadding(2);
+    d.add(hbl13);
+
+    var t13_1 = new qx.ui.basic.Terminator;
+    t13_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t13_1.setWidth(200);
+    t13_1.setHeight(10);
+    t13_1.setBackgroundColor("green");
+    hbl13.add(t13_1);
+
+    var t13_2 = new qx.ui.form.TextField("http://qooxdoo.org");
+    t13_2.setWidth("1*");
+    t13_2.setStyleProperty("fontSize", "16px");
+    hbl13.add(t13_2);
+
+    var t13_3 = new qx.ui.form.Button(null, "icon/16/apply.png");
+    hbl13.add(t13_3);
+
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/HtmlTable_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/HtmlTable_1.html
new file mode 100644 (file)
index 0000000..11c2a5c
--- /dev/null
@@ -0,0 +1,142 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <style type="text/css">*{ font-size: 10px; font-family: Verdana }</style>
+
+  <div id="demoDescription">
+    <p>Test table.</p>
+  </div>
+
+  <textarea id="info" style="position:absolute; top:48px; left:20px; width:600px;height:50px;border:1px solid black"></textarea>
+  <div id="view" style="position:absolute;top:148px;left:20px;width:400px;height:500px;border:1px solid black"></div>
+  <div id="scroller" style="position: absolute; top:148px; left:420px;height:500px;width:24px;border:1px solid black;overflow:scroll"><div id="scrollerContent" style="width:1px;height:5000px"></div></div>
+
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var updateCount = 0;
+
+    var tableHeight = 512;
+
+    var entryCount = 1000;
+
+    var rowHeight = 16;
+    var rowCount = Math.floor(tableHeight / rowHeight);
+
+    var view = document.getElementById("view");
+    var info = document.getElementById("info");
+    var scroller = document.getElementById("scroller");
+    var scrollerContent = document.getElementById("scrollerContent");
+
+
+
+    view.style.height = scroller.style.height = tableHeight + "px";
+    scrollerContent.style.height = Math.round(entryCount / rowCount * tableHeight) + "px";
+
+
+
+
+    var data = [];
+
+    for (var i=0; i<1000; i++) {
+      data.push({ col1 : "hello" + i, col2 : "world" + i, col3 : "foo" + i, col4 : "bar" + i, col5 : "baz" + i });
+    };
+
+    var cache = [];
+
+    var undef = "undefined";
+
+    var HTML =
+    {
+      table_start : "<table><tbody>",
+      table_end : "</tbody></table>",
+
+      tr_start : "<tr>",
+      tr_start_open : "<tr ",
+      tr_start_close : ">",
+      tr_end : "<tr>",
+
+      td_start : "<td>",
+      td_end : "</td>"
+    };
+
+    function arrayAppend(arr, a) {
+      Array.prototype.push.apply(arr, a);
+    };
+
+    function getCellHtml(cdata)
+    {
+      var html = [ HTML.td_start, cdata, HTML.td_end ];
+
+      return html;
+    };
+
+    function getRowHtml(rdata, nr)
+    {
+      if (typeof cache[nr] != undef) {
+        return cache[nr];
+      };
+
+      var html = [];
+      html.push(HTML.tr_start_open);
+
+      if (nr % 2 == 0)
+      {
+        html.push("style='background-color:#fff'");
+      };
+
+      html.push(HTML.tr_start_close);
+
+      for (var row in rdata) {
+        arrayAppend(html, getCellHtml(rdata[row]));
+      };
+
+      html.push(HTML.tr_stop);
+
+      cache[nr] = html;
+
+      return html;
+    };
+
+    function buildTableHtml(start, len)
+    {
+      var ttstart = (new Date).valueOf();
+
+      var html = [];
+
+      html.push(HTML.table_start);
+
+      for (var i=start, s=start+len; i<s; i++) {
+        arrayAppend(html, getRowHtml(data[i], i));
+      };
+
+      html.push(HTML.table_end);
+      view.innerHTML = html.join("");
+
+      updateCount++;
+
+      var ttend = (new Date).valueOf();
+      info.value = "Update: " + updateCount + "\nRows: " + start + " - " + (start+len) + "\n" + (ttend-ttstart) + "ms\n";
+    };
+
+    function doscroll() {
+      buildTableHtml(Math.floor(scroller.scrollTop/rowHeight), rowCount);
+    };
+
+    qx.dom.EventRegistration.addEventListener(scroller, "scroll", doscroll);
+    doscroll();
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/HtmlTable_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/HtmlTable_2.html
new file mode 100644 (file)
index 0000000..f1dcc94
--- /dev/null
@@ -0,0 +1,140 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test table with fixed column widths: 100, 50, 10, 30 and 20 pixel.</p>
+  </div>
+
+  <textarea id="info" style="position:absolute; top:48px; left:20px; width:600px;height:50px;border:1px solid black"></textarea>
+  <div id="view" style="position:absolute;top:148px;left:20px;width:400px;height:500px;border:1px solid black"></div>
+  <div id="scroller" style="position: absolute; top:148px; left:420px;height:500px;width:24px;border:1px solid black;overflow:scroll"><div id="scrollerContent" style="width:1px;height:5000px"></div></div>
+
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var updateCount = 0;
+
+    var tableHeight = 512;
+
+    var entryCount = 1000;
+
+    var rowHeight = 16;
+    var rowCount = Math.floor(tableHeight / rowHeight);
+
+    var view = document.getElementById("view");
+    var info = document.getElementById("info");
+    var scroller = document.getElementById("scroller");
+    var scrollerContent = document.getElementById("scrollerContent");
+
+
+
+    view.style.height = scroller.style.height = tableHeight + "px";
+    scrollerContent.style.height = Math.round(entryCount / rowCount * tableHeight) + "px";
+
+
+
+
+    var data = [];
+
+    for (var i=0; i<1000; i++) {
+      data.push({ col1 : "hello" + i, col2 : "world" + i, col3 : "foo" + i, col4 : "bar" + i, col5 : "baz" + i });
+    };
+
+    var cache = [];
+
+    var undef = "undefined";
+
+    var HTML =
+    {
+      table_start : '<table cellspacing="0" cellpadding="0" style="table-layout:fixed;width:210px"><colgroup><col width="100"/><col width="50"/><col width="10"/><col width="30"/><col width="20"/></colgroup><tbody>',
+      table_end : "</tbody></table>",
+
+      tr_start : "<tr>",
+      tr_start_open : "<tr ",
+      tr_start_close : ">",
+      tr_end : "<tr>",
+
+      td_start : '<td style="overflow:hidden;height:15px;border-right:1px solid red;border-bottom:1px solid red;padding-left:2px;padding-right:2px">',
+      td_end : "</td>"
+    };
+
+    function arrayAppend(arr, a) {
+      Array.prototype.push.apply(arr, a);
+    };
+
+    function getCellHtml(cdata)
+    {
+      var html = [ HTML.td_start, cdata, HTML.td_end ];
+
+      return html;
+    };
+
+    function getRowHtml(rdata, nr)
+    {
+      if (typeof cache[nr] != undef) {
+        return cache[nr];
+      };
+
+      var html = [];
+      html.push(HTML.tr_start_open);
+
+      if (nr % 2 == 0)
+      {
+        html.push("style='background-color:#fff'");
+      };
+
+      html.push(HTML.tr_start_close);
+
+      for (var row in rdata) {
+        arrayAppend(html, getCellHtml(rdata[row]));
+      };
+
+      html.push(HTML.tr_stop);
+
+      cache[nr] = html;
+
+      return html;
+    };
+
+    function buildTableHtml(start, len)
+    {
+      var ttstart = (new Date).valueOf();
+
+      var html = [];
+
+      html.push(HTML.table_start);
+
+      for (var i=start, s=start+len; i<s; i++) {
+        arrayAppend(html, getRowHtml(data[i], i));
+      };
+
+      html.push(HTML.table_end);
+      view.innerHTML = html.join("");
+
+      updateCount++;
+
+      var ttend = (new Date).valueOf();
+      info.value = "Update: " + updateCount + "\nRows: " + start + " - " + (start+len) + "\n" + (ttend-ttstart) + "ms\n";
+    };
+
+    function doscroll() {
+      buildTableHtml(Math.floor(scroller.scrollTop/rowHeight), rowCount);
+    };
+
+    qx.dom.EventRegistration.addEventListener(scroller, "scroll", doscroll);
+    doscroll();
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/IconHtml_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/IconHtml_1.html
new file mode 100644 (file)
index 0000000..be65866
--- /dev/null
@@ -0,0 +1,29 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.embed.IconHtmlEmbed.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var l1 = new qx.ui.embed.IconHtmlEmbed("Hello World", "icon/32/organizer.png", 32, 32);
+
+    l1.setLocation(20, 48);
+
+    qx.ui.core.ClientDocument.getInstance().add(l1);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Image_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Image_1.html
new file mode 100644 (file)
index 0000000..482135d
--- /dev/null
@@ -0,0 +1,114 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>This is a test for the qx.ui.basic.Image constructor. It supports automatic preloading through qx.io.image.Preloader, with error and load
+    QxEvents which will be fired, and cross-browser PNG with extended alpha channels.</p>
+
+    <p>PNG file in HTML (in Internet Explorer this should not be transparent):</p>
+    <img src="../../../../framework/source/resource/icon/crystalsvg/48/hardware-info.png" width="48" height="48"/>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var i1 = new qx.ui.basic.Image("icon/48/favourite.png", 48, 48);
+    with(i1)
+    {
+      setTop(48);
+      setLeft(20);
+    };
+
+    d.add(i1);
+
+
+
+    var i2 = new qx.ui.basic.Image("icon/48/favourite.png", 48, 48);
+    with(i2)
+    {
+      setTop(48);
+      setLeft(100);
+    };
+
+    d.add(i2);
+
+
+
+
+    var i3 = new qx.ui.basic.Image("icon/48/favourite.png", 96, 96);
+    with(i3)
+    {
+      setTop(120);
+      setLeft(60);
+      setResizeToInner(true);
+    };
+
+    /*
+    i3.addEventListener("load", function() {
+      new QxDebug("Bigger Symbol", "Preferred (Original) Size: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
+    });
+    */
+
+    d.add(i3);
+
+
+
+
+    var i4 = new qx.ui.basic.Image("icon/48/favourite.png", 24, 24);
+    with(i4)
+    {
+      setTop(120);
+      setLeft(20);
+      setResizeToInner(true);
+    };
+
+    /*
+    i4.addEventListener("load", function() {
+      new QxDebug("Smaller Symbol", "Preferred (Original) Size: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
+    });
+    */
+
+    d.add(i4);
+
+
+
+
+    var i5 = new qx.ui.basic.Image("http://www.google.com/images/google_sm.gif");
+    with(i5)
+    {
+      setTop(300);
+      setLeft(20);
+    };
+
+    /*
+    i5.addEventListener("load", function() {
+      new QxDebug("Google Image", "Preferred (Original) Size: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
+    });
+    */
+
+    d.add(i5);
+
+
+
+
+
+    // Icon Themes
+    qx.manager.object.ImageManager.getInstance().createThemeList(d, 300, 48);
+
+
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Image_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Image_2.html
new file mode 100644 (file)
index 0000000..989adbd
--- /dev/null
@@ -0,0 +1,150 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Some advanced tests for qx.ui.basic.Image. Click on the fourth and fivth image to test the reflow possibilities.
+    The debug log gives you information of the preferred dimensions.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var i1 = new qx.ui.basic.Image("icon/64/folder.png");
+    
+    i1.setLeft(20);
+    i1.setTop(48);
+    
+    i1.addEventListener("load", function() {
+      this.debug("Image 1: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
+    });
+    
+
+
+    var i2 = new qx.ui.basic.Image("icon/64/folder.png");
+    
+    i2.setLeft(120);
+    i2.setTop(48);
+    i2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    i2.setPadding(2, 4);    
+    
+    i2.addEventListener("load", function() {
+      this.debug("Image 2: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
+    });
+
+
+    
+    var i3 = new qx.ui.basic.Image("icon/64/folder.png");
+    
+    i3.setLeft(220);
+    i3.setTop(48);
+    i3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    i3.setPadding(8);    
+    i3.setOpacity(0.5);
+    
+    i3.addEventListener("load", function() {
+      this.debug("Image 3: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
+    });
+
+
+    
+    var i4 = new qx.ui.basic.Image("icon/64/folder.png");
+    
+    i4.setLeft(320);
+    i4.setTop(48);
+    i4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    i4.setPadding(2, 4);     
+    
+    i4.addEventListener("load", function() {
+      this.debug("Image 4: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
+    });    
+
+    i4.addEventListener("click", function() {
+      this.setSource(this.getSource() == "icon/64/folder.png" ? "icon/32/run.png" : "icon/64/folder.png");
+    });    
+    
+
+    
+     
+    
+    var i5w1 = new qx.ui.layout.CanvasLayout;
+    i5w1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    i5w1.setPadding(8);
+    i5w1.setLeft(420);
+    i5w1.setTop(48);
+    i5w1.setWidth("auto");
+    i5w1.setHeight("auto");
+        
+    var i5w2 = new qx.ui.layout.CanvasLayout;
+    i5w2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    i5w2.setPadding(8);
+    i5w2.setLeft(0);
+    i5w2.setTop(0);
+    i5w2.setWidth("auto");
+    i5w2.setHeight("auto");
+
+    var i5w3 = new qx.ui.layout.CanvasLayout;
+    i5w3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    i5w3.setPadding(8);
+    i5w3.setLeft(0);
+    i5w3.setTop(0);
+    i5w3.setWidth("auto");
+    i5w3.setHeight("auto");
+    
+    var i5 = new qx.ui.basic.Image("icon/64/folder.png");
+    
+    i5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    i5.setPadding(2, 4);     
+    
+    i5.addEventListener("load", function() {
+      this.debug("Image 4: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
+    });    
+
+    i5.addEventListener("click", function() {
+      this.setSource(this.getSource() == "icon/64/folder.png" ? "icon/32/run.png" : "icon/64/folder.png");
+    });    
+
+    i5w1.add(i5w2);
+    i5w2.add(i5w3);
+    i5w3.add(i5);
+    d.add(i5w1);
+    
+
+    
+    var i6 = new qx.ui.basic.Image("icon/128/paint.png");
+    i6.setLeft(20);
+    i6.setRight(400);
+    i6.setTop(200);
+    i6.setHeight(150);
+    i6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    i6.setWidth(null);
+
+    var i7 = new qx.ui.basic.Image("icon/128/paint.png");
+    i7.setLeft(20);
+    i7.setRight(400);
+    i7.setTop(400);
+    i7.setHeight(150);
+    i7.setBorder(qx.renderer.border.BorderPresets.getInstance().black);    
+    i7.setResizeToInner(true);
+    i7.setWidth(null);
+    
+
+
+    d.add(i1, i2, i3, i4, i6, i7); 
+
+
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Image_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Image_3.html
new file mode 100644 (file)
index 0000000..97b63d1
--- /dev/null
@@ -0,0 +1,124 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Some advanced tests for qx.ui.basic.Image. Click on the fourth and fifth image to test the reflow possibilities.
+    The debug log gives you information of the preferred dimensions.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var frame = new qx.ui.layout.CanvasLayout;
+    
+    frame.setBorder(qx.renderer.border.BorderPresets.getInstance().ridge);
+    frame.setWidth("auto");
+    frame.setHeight("auto");
+    frame.setPadding(8);
+
+    frame.setLeft(20);
+    frame.setTop(48);
+    
+    d.add(frame);
+
+
+    var out = new qx.ui.layout.CanvasLayout;
+    
+    out.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+    out.setWidth("auto");
+    out.setHeight("auto");
+    out.setPadding(8);
+    
+    frame.add(out);
+
+
+
+    var bar = new qx.ui.layout.CanvasLayout;
+    
+    bar.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    bar.setWidth("auto");
+    bar.setHeight("auto");
+    bar.setPadding(4);    
+    bar.setBackgroundColor(new qx.renderer.color.Color("white"));
+    
+    
+    out.add(bar);    
+    
+    
+    
+    
+    var part, icon;
+    var icons = [ "reload", "bookmark", "run" ];
+    
+    
+    for (var j=0; j<5; j++)
+    {    
+      part = new qx.ui.layout.CanvasLayout;
+    
+      part.setWidth("auto");
+      part.setHeight("auto");
+      part.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+      part.setLeft(j*90);
+      part.setTop(0);
+      part.setBackgroundColor(new qx.renderer.color.ColorObject("Threedface"));
+      part.setPadding(4);
+
+      for (var i=0; i<icons.length; i++)
+      {
+        icon = new qx.ui.basic.Image("icon/22/" + icons[i] + ".png");
+        
+        icon.setTop(0);
+        icon.setLeft(26 * i); 
+        icon.setPadding(2);
+               
+        part.add(icon);              
+      };
+      
+      bar.add(part);
+    };
+
+
+    
+    
+    
+    
+    
+    bar.addEventListener("click", function(e)
+    {
+      var parts = bar.getChildren();
+      var icons;
+      var m;
+      var s = (new Date).valueOf();
+      
+      for (var j=0; j<parts.length; j++)
+      {
+        icons = parts[j].getChildren();
+        
+        for (var i=0; i<icons.length; i++)
+        {
+          m = icons[i].getSource().indexOf("/22/") != -1;
+          icons[i].setSource(m ? icons[i].getSource().replace("/22/", "/32/") : icons[i].getSource().replace("/32/", "/22/"));
+          icons[i].setLeft(m ? 36 * i : 26 * i);
+        };
+        
+        parts[j].setLeft(m ? j * 120 : j * 90);
+      };
+      
+      // this.debug("Change Duration: " + ((new Date).valueOf() - s));
+    });
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Image_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Image_4.html
new file mode 100644 (file)
index 0000000..af7c64b
--- /dev/null
@@ -0,0 +1,39 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    qx.ui.basic.Image Stress Test
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+    var w;
+
+    for (var i=1; i<=10; i++)
+    {
+      for (var j=1; j<=10; j++)
+      {
+        var w = new qx.ui.basic.Image("icon/16/clock.png");
+
+        w.setLeft(20+(16*i));
+        w.setTop(48+(16*j));
+
+        d.add(w);
+      };
+    };
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Keyhandler_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Keyhandler_1.html
new file mode 100644 (file)
index 0000000..bfd2ec6
--- /dev/null
@@ -0,0 +1,117 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+
+       <style type="text/css">
+       #keylogger {
+               position: absolute;
+               width: 500px;
+               height: 500px;
+               left: 30px;
+               top: 40px;
+               color: black;
+               background-color: #EEE;
+               padding: 5px;
+               border: 1px inset;
+               overflow: scroll;
+               /* display:none; */
+       }
+       
+       table {
+               width: 100%;
+       }
+       
+       td {
+               text-align: center;
+       }
+       </style>
+       
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Keyhandler Test</p>
+               <p>Displays qoooxdoo's normalized key events.</p>
+  </div>
+
+  
+       <div id="keylogger">
+       </div>
+       
+       <script type="text/javascript">
+
+       qx.core.Init.getInstance().defineMain(function()
+       {
+               var tableHead = "<table><tr><th>Event</th><th>key identifier</th><th>key code</th><th>char code</th><th>Shift</th><th>Ctrl</th><th>Alt</th></tr>";
+               var keyEvents = [];
+               var maxLogSize = 50;
+               var logDiv = document.getElementById("keylogger");
+               
+               function initializeLogger() {
+                       logDiv.innerHTML = tableHead + "</table>";
+                       keyEvents = [];
+               }
+               
+               function logKeyEvent(keyEvent) {
+                       var eventCopy = {
+                               type: keyEvent.getType(),
+                               iden: keyEvent.getKeyIdentifier(),
+                               keyCode: keyEvent.getKeyCode(),
+                               charCode: keyEvent.getCharCode(),
+                               shift: keyEvent.getDomEvent().shiftKey,
+                               alt: keyEvent.getDomEvent().altKey,
+                               ctrl: keyEvent.getDomEvent().ctrlKey                            
+                       }
+                       keyEvents.unshift(eventCopy);
+                       keyEvents = keyEvents.slice(0, maxLogSize);
+                       str = [tableHead];
+                       for (var i=0; i<keyEvents.length; i++) {
+                               var e = keyEvents[i];
+                               str.push("<tr><td>");
+                               str.push(e.type);
+                               str.push("</td><td>");
+                               str.push(e.iden);
+                               str.push("</td><td>");
+                               str.push(e.keyCode);
+                               str.push("</td><td>");
+                               str.push(e.charCode);
+                               str.push("</td><td>");
+                               str.push(e.shift);
+                               str.push("</td><td>");
+                               str.push(e.ctrl);
+                               str.push("</td><td>");
+                               str.push(e.alt);
+                               str.push("</td></tr>");
+                       }
+                       str.push("</table>");
+                       logDiv.innerHTML = str.join("");
+                       logDiv.scrollTop = 0;
+               }
+               
+               initializeLogger();
+               
+               var d = qx.ui.core.ClientDocument.getInstance();
+               d.addEventListener("keydown", logKeyEvent);
+               d.addEventListener("keypress", logKeyEvent);
+               d.addEventListener("keyinput", logKeyEvent);
+               d.addEventListener("keyup", logKeyEvent);
+               
+               var button = new qx.ui.form.Button("clear");
+               button.set({
+                       left: 550,
+                       top: 40
+               });
+               button.addEventListener("execute", initializeLogger);
+               button.addToDocument();
+                
+  });
+               </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Label_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Label_1.html
new file mode 100644 (file)
index 0000000..9707541
--- /dev/null
@@ -0,0 +1,172 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Some tests for qx.ui.basic.Label. Click on the third and fifth button like widget to test the reflow possibilities.
+    The debug log gives you information of the preferred dimensions.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var c1 = new qx.ui.basic.Label("Hello qooxdoo!");
+
+    c1.setLeft(20);
+    c1.setTop(48);
+    c1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    c1.setPadding(2, 4);
+
+
+
+
+    var c2 = new qx.ui.basic.Label("<h1>Welcome to the qooxdoo universe</h1><p>Enjoy the new era of web interface development.</p>");
+
+    c2.setLeft(20);
+    c2.setTop(100);
+    c2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    c2.setPadding(8);
+
+
+
+
+    var c3 = new qx.ui.basic.Label("Delete temporary data", null, null, false);
+
+    c3.setLeft(20);
+    c3.setTop(200);
+    c3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    c3.setPadding(4, 6);
+    c3.setBackgroundColor(new qx.renderer.color.Color("white"));
+
+    c3.addEventListener("click", function() {
+      this.getHtml() == "Delete temporary data" ? this.setHtml("Thank you") : this.setHtml("Delete temporary data");
+    });
+
+
+
+
+    var c4 = new qx.ui.basic.Label("Hello qooxdoo!");
+
+    c4.setLeft(20);
+    c4.setTop(250);
+    c4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    c4.setPadding(2, 4);
+    c4.setStyleProperty("fontSize", "16px");
+    c4.setStyleProperty("fontWeight", "bold");
+    c4.setStyleProperty("fontStyle", "italic");
+    c4.setStyleProperty("textDecoration", "underline");
+    c4.setStyleProperty("textTransform", "uppercase");
+    c4.setFontPropertiesProfile("extended");
+
+
+
+
+
+    var c5 = new qx.ui.basic.Label("Delete temporary data", null, null, false);
+
+    c5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    c5.setPadding(4, 6);
+    c5.setBackgroundColor(new qx.renderer.color.Color("white"));
+
+    c5.addEventListener("click", function() {
+      this.getHtml() == "Delete temporary data" ? this.setHtml("Thank you<br/>All your personal data was just deleted.<br/>Have Fun!") : this.setHtml("Delete temporary data");
+    });
+
+
+    var c5w = new qx.ui.layout.CanvasLayout;
+    c5w.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    c5w.setPadding(8);
+    c5w.setLeft(20);
+    c5w.setTop(350);
+    c5w.setWidth("auto");
+    c5w.setHeight("auto");
+
+    c5w.add(c5);
+    d.add(c5w);
+
+
+
+
+    var c6 = new qx.ui.basic.Label("This is a long label", 50);
+
+    c6.setTop(450);
+    c6.setLeft(20);
+    c6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+
+
+    var c7 = new qx.ui.basic.Label("This is a long label with long-words and more text", 100, null, false);
+
+    c7.setTop(490);
+    c7.setLeft(20);
+    c7.setPadding(4);
+    c7.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    c7.setBackgroundColor("white");
+
+    c7.addEventListener("click", function(e)
+    {
+      switch(this.getWidth())
+      {
+        case 50:
+          this.setWidth(100);
+          break;
+
+        case 100:
+          this.setWidth(150);
+          break;
+
+        case 150:
+          this.setWidth(200);
+          break;
+
+        case 200:
+          this.setWidth("auto");
+          break;
+
+        case "auto":
+          this.setWidth(50);
+          break;
+      };
+    });
+
+
+    var parent8 = new qx.ui.layout.VerticalBoxLayout();
+    parent8.set({ top:48, left:500, width:150, height:150, spacing:5,
+        border:qx.renderer.border.BorderPresets.getInstance().thinInset });
+    parent8.setPadding(5);
+    parent8.addEventListener("click", function() {
+      this.setWidth((this.getWidth() == 150) ? 200 : 150);
+    });
+
+    var clickHint = new qx.ui.basic.Label("Click me");
+    clickHint.set({ width:"100%", height:"auto", wrap:true,
+        border:qx.renderer.border.BorderPresets.getInstance().thinOutset });
+    parent8.add(clickHint);
+
+    var wrapLabel1 = new qx.ui.basic.Label("This is a label having a auto-height that needs wrapping");
+    wrapLabel1.set({ width:"100%", height:"auto", wrap:true,
+        border:qx.renderer.border.BorderPresets.getInstance().thinOutset });
+    parent8.add(wrapLabel1);
+
+    var wrapLabel2 = new qx.ui.basic.Label("This is a label having a auto-height that needs wrapping");
+    wrapLabel2.set({ width:"100%", height:"auto", wrap:true,
+        border:qx.renderer.border.BorderPresets.getInstance().thinOutset });
+    parent8.add(wrapLabel2);
+
+
+    d.add(c1, c2, c3, c4, c5w, c6, c7, parent8);
+
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Label_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Label_2.html
new file mode 100644 (file)
index 0000000..3b56603
--- /dev/null
@@ -0,0 +1,40 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    qx.ui.basic.Label Stress Test
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+    
+    var c;
+    
+    for (var i=0; i<10; i++)
+    {
+      for (var j=0; j<20; j++)
+      {
+        c = new qx.ui.basic.Label("Test " + i + "|" + j);
+        
+        c.setLeft(20+(i*60));
+        c.setTop(48+(j*30));
+        
+        d.add(c);       
+      };   
+    }; 
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Label_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Label_3.html
new file mode 100644 (file)
index 0000000..14ae31e
--- /dev/null
@@ -0,0 +1,177 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Some tests for qx.ui.basic.Label. Click on the third and fifth button like widget to test the reflow possibilities.
+    The debug log gives you information of the preferred dimensions.</p>
+    <p>Tests for qx.renderer.font.Font added</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var c1 = new qx.ui.basic.Label("Hello qooxdoo!");
+
+    c1.setLeft(20);
+    c1.setTop(48);
+    c1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    c1.setPadding(2, 4);
+
+    c1.addEventListener("mouseover", function(e) {
+      this.setFont("20px bold");
+    });
+
+    c1.addEventListener("mouseout", function(e) {
+      this.setFont(null);
+    });
+
+
+
+    var c2 = new qx.ui.basic.Label("<h1>Welcome to the qooxdoo universe</h1><p>Enjoy the new era of web interface development.</p>");
+
+    c2.setLeft(20);
+    c2.setTop(100);
+    c2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    c2.setPadding(8);
+
+
+
+
+    var c3 = new qx.ui.basic.Label("Delete temporary data", null, null, false);
+
+    c3.setLeft(20);
+    c3.setTop(200);
+    c3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    c3.setPadding(4, 6);
+    c3.setBackgroundColor(new qx.renderer.color.Color("white"));
+
+    c3.addEventListener("click", function()
+    {
+      if (this.getHtml() == "Delete temporary data")
+      {
+        this.setHtml("Thank you");
+        this.setColor("red");
+        this.setFont("bold");
+      }
+      else
+      {
+        this.setHtml("Delete temporary data");
+        this.setColor(null);
+        this.setFont(null);
+      };
+    });
+
+
+
+
+    /*
+    var c4f = new qx.renderer.font.Font(16, "Times New Roman");
+    c4f.setBold(true);
+    c4f.setItalic(true);
+    c4f.setUnderline(true);
+    */
+
+    var c4 = new qx.ui.basic.Label("Hello qooxdoo!");
+
+    c4.setLeft(20);
+    c4.setTop(250);
+    c4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    c4.setPadding(2, 4);
+    // c4.setFont(c4f);
+
+    // implicit usage of qx.renderer.font.FontCache
+    c4.setFont("16px Times New Roman bold italic underline");
+
+
+
+
+
+    var c5 = new qx.ui.basic.Label("Delete temporary data", null, null, false);
+
+    c5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    c5.setPadding(4, 6);
+    c5.setBackgroundColor(new qx.renderer.color.Color("white"));
+
+    // re-use instance from above
+    // c5.setFont("16px Times New Roman bold italic underline");
+
+    // this is also possible and will be automatically converted to a single space seperated string
+    c5.setFont(["16px", "Times New Roman", "bold", "italic", "underline"]);
+
+    c5.addEventListener("click", function() {
+      this.getHtml() == "Delete temporary data" ? this.setHtml("Thank you<br/>All your personal data was just deleted.<br/>Have Fun!") : this.setHtml("Delete temporary data");
+    });
+
+
+    var c5w = new qx.ui.layout.CanvasLayout;
+    c5w.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    c5w.setPadding(8);
+    c5w.setLeft(20);
+    c5w.setTop(350);
+    c5w.setWidth("auto");
+    c5w.setHeight("auto");
+
+    c5w.add(c5);
+    d.add(c5w);
+
+
+
+
+    var c6 = new qx.ui.basic.Label("This is a long label", 50);
+
+    c6.setTop(450);
+    c6.setLeft(20);
+    c6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+
+
+    var c7 = new qx.ui.basic.Label("This is a long label with long-words and more text", 100, null, false);
+
+    c7.setTop(490);
+    c7.setLeft(20);
+    c7.setPadding(4);
+    c7.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    c7.setBackgroundColor("white");
+
+    c7.addEventListener("click", function(e)
+    {
+      switch(this.getWidth())
+      {
+        case 50:
+          this.setWidth(100);
+          break;
+
+        case 100:
+          this.setWidth(150);
+          break;
+
+        case 150:
+          this.setWidth(200);
+          break;
+
+        case 200:
+          this.setWidth("auto");
+          break;
+
+        case "auto":
+          this.setWidth(50);
+          break;
+      };
+    });
+
+    d.add(c1, c2, c3, c4, c5w, c6, c7);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Label_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Label_4.html
new file mode 100644 (file)
index 0000000..efbb76d
--- /dev/null
@@ -0,0 +1,101 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing mnemonic support.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var c1 = new qx.ui.basic.Label("Hello qooxdoo!");
+
+    c1.setLeft(20);
+    c1.setTop(48);
+    c1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    c1.setPadding(2, 4);
+    c1.setMnemonic("q");
+
+    d.add(c1);
+
+
+
+    var c2 = new qx.ui.basic.Label("A qx.ui.basic.Label with some more text", "T");
+
+    c2.setLeft(20);
+    c2.setTop(98);
+    c2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    c2.setPadding(2, 4);
+
+    d.add(c2);
+
+
+
+
+    var c3 = new qx.ui.basic.Label("A qx.ui.basic.Label with some more text", "C");
+
+    c3.setLeft(20);
+    c3.setTop(148);
+    c3.setWidth(80);
+    c3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    c3.setPadding(2, 4);
+
+    d.add(c3);
+
+
+
+    var c4 = new qx.ui.basic.Label("Well done guy", "Q");
+
+    c4.setLeft(20);
+    c4.setTop(198);
+    c4.setWidth(70);
+    c4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    c4.setPadding(2, 4);
+
+    d.add(c4);
+
+
+
+    var c5 = new qx.ui.basic.Label("Well done guy", "Q");
+
+    c5.setLeft(20);
+    c5.setTop(248);
+    c5.setWidth("10%");
+    c5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    c5.setPadding(2, 4);
+
+    d.add(c5);
+
+
+
+
+
+    var a1 = new qx.ui.basic.Atom("Hello World", "icon/48/penguin.png")
+
+    a1.setLocation(250, 48);
+    a1.setWidth(100);
+    a1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    a1.setHorizontalChildrenAlign("left");
+
+    a1.getLabelObject().setMnemonic("H");
+    a1.getLabelObject().setWidth(50);
+
+    d.add(a1);
+
+
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Leak_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Leak_1.html
new file mode 100644 (file)
index 0000000..86612dc
--- /dev/null
@@ -0,0 +1,71 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Leak-Test</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    // Does not leak
+    // *****
+
+    // var i1 = new qx.io.image.Preloader(qx.manager.object.ImageManager.buildUri("icon/48/hardwareinfo.png"));
+
+
+    // Leaks: +2MB
+    // *****
+
+    var w1 = new qx.ui.basic.Terminator;
+    qx.ui.core.ClientDocument.getInstance().add(w1);
+
+
+
+
+
+    // Does not leak
+    // *****
+    /*
+    var w1 = new qx.ui.basic.Terminator;
+    w1.setTop(48);
+    w1.setLeft(20);
+    qx.ui.core.ClientDocument.getInstance().add(w1);
+    */
+
+
+    // Leaks +2MB
+    // *****
+    /*
+    var i1 = new qx.ui.basic.Image("icon/48/hardwareinfo.png");
+    with(i1)
+    {
+      setTop(48);
+      setLeft(20);
+    };
+
+    qx.ui.core.ClientDocument.getInstance().add(i1);
+    */
+
+
+
+
+
+
+    //var t1 = new QxTarget;
+
+
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Link_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Link_1.html
new file mode 100644 (file)
index 0000000..bb10f53
--- /dev/null
@@ -0,0 +1,29 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing link widget.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var l1 = new qx.ui.embed.LinkEmbed("Open Google", "http://www.google.com");
+    
+    l1.setLocation(20, 48);
+    
+    qx.ui.core.ClientDocument.getInstance().add(l1);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_1.html
new file mode 100644 (file)
index 0000000..7353456
--- /dev/null
@@ -0,0 +1,57 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.listview.ListView with text cells.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var ld = [];
+      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+
+      for (var i=0, t; i<1000; i++)
+      {
+        t=Math.round(Math.random()*4);
+        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
+      };
+
+      var lc =
+      {
+        name : { label : "Name", width : 100, type : "text" },
+        size: { label : "Size", width : 50, type : "text", align : "right" },
+        type : { label : "Type", width : 80, type : "text" },
+        modified : { label : "Last Modified", width : 150, type : "text" },
+        rights : { label : "Rights", width: 80, type : "text" }
+      };
+
+      var lv = new qx.ui.listview.ListView(ld, lc);
+
+      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+      lv.setBackgroundColor("white");
+      lv.setWidth(600);
+      lv.setHeight(350);
+      lv.setLocation(20, 48);
+
+      qx.ui.core.ClientDocument.getInstance().add(lv);
+
+
+
+
+      // Color Themes
+      qx.manager.object.ColorManager.getInstance().createThemeList(qx.ui.core.ClientDocument.getInstance(), 20, 448);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_10.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_10.html
new file mode 100644 (file)
index 0000000..65b73f7
--- /dev/null
@@ -0,0 +1,86 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.listview.ListView in a qx.ui.window.Window.</p>
+    <p>I am sorry, but this seems not to be fixable with the current layouter stuff in qooxdoo.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var w = new qx.ui.window.Window("ListView");
+      
+      w.setWidth(400);
+      w.setHeight(250);
+      w.setLocation(50, 50);
+      
+      qx.ui.core.ClientDocument.getInstance().add(w);
+      
+      
+      /*
+      var cont = new qx.ui.layout.CanvasLayout;
+      
+      cont.setEdge(0);
+      cont.setBackgroundColor("white");
+      
+      w.add(cont);
+      */
+      
+      
+      
+      
+      
+      
+      var ld = [];
+      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+      
+      for (var i=0, t; i<1000; i++) 
+      {
+        t=Math.round(Math.random()*4);
+        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
+      };
+      
+      var lc = 
+      {
+        name : { label : "Name", width : 100, type : "text" },
+        size: { label : "Size", width : 50, type : "text" },
+        type : { label : "Type", width : 80, type : "text" },
+        modified : { label : "Last Modified", width : 150, type : "text" },
+        rights : { label : "Rights", width: 80, type : "text" }
+      };
+      
+      var lv = new qx.ui.listview.ListView(ld, lc);
+
+      lv.setBackgroundColor("white");
+      lv.setEdge(0);
+      lv.setWidth(null);
+      lv.setHeight(null);
+      
+      w.add(lv);
+      //cont.add(lv);
+      
+      
+     
+   
+      w.open();
+      
+      
+      
+      
+      // Color Themes
+      qx.manager.object.ColorManager.getInstance().createThemeList(qx.ui.core.ClientDocument.getInstance(), 20, 448);      
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_2.html
new file mode 100644 (file)
index 0000000..61b7ca8
--- /dev/null
@@ -0,0 +1,52 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.listview.ListView with text cells with an additional link.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var ld = [];
+      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+
+      for (var i=0, t; i<1000; i++)
+      {
+        t=Math.round(Math.random()*4);
+        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }, open : { uri : "http://www.google.com/search?q=" + i, html : "Open " + i }});
+      };
+
+      var lc =
+      {
+        name : { label : "Name", width : 100, type : "text" },
+        size: { label : "Size", width : 50, type : "text", align : "right" },
+        type : { label : "Type", width : 80, type : "text" },
+        modified : { label : "Last Modified", width : 150, type : "text" },
+        rights : { label : "Rights", width: 80, type : "text" },
+        open : { label : "", width : 100, type : "link" }
+      };
+
+      var lv = new qx.ui.listview.ListView(ld, lc);
+
+      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+      lv.setBackgroundColor("white");
+      lv.setWidth(600);
+      lv.setHeight(350);
+      lv.setLocation(20, 48);
+
+      qx.ui.core.ClientDocument.getInstance().add(lv);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_3.html
new file mode 100644 (file)
index 0000000..82db648
--- /dev/null
@@ -0,0 +1,52 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.listview.ListView with text cells.</p>
+    <p>Now with icons inside the header cells.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var ld = [];
+      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+
+      for (var i=0, t; i<1000; i++)
+      {
+        t=Math.round(Math.random()*4);
+        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
+      };
+
+      var lc =
+      {
+        name : { label : "Name", icon : "icon/16/contents.png", width : 100, type : "text" },
+        size: { label : "Size", icon : "icon/16/floppy.png", width : 50, type : "text", align : "right" },
+        type : { label : "Type", icon : "icon/16/notes.png", width : 80, type : "text" },
+        modified : { label : "Last Modified", icon : "icon/16/configure.png", width : 150, type : "text" },
+        rights : { label : "Rights", icon : "icon/16/group-event.png", width: 80, type : "text" }
+      };
+
+      var lv = new qx.ui.listview.ListView(ld, lc);
+
+      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+      lv.setBackgroundColor("white");
+      lv.setWidth(600);
+      lv.setHeight(350);
+      lv.setLocation(20, 48);
+
+      qx.ui.core.ClientDocument.getInstance().add(lv);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_4.html
new file mode 100644 (file)
index 0000000..7c884f9
--- /dev/null
@@ -0,0 +1,52 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.listview.ListView with text cells.</p>
+    <p>This qx.ui.listview.ListView will be resized with the window.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var ld = [];
+      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+
+      for (var i=0, t; i<1000; i++)
+      {
+        t=Math.round(Math.random()*4);
+        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
+      };
+
+      var lc =
+      {
+        name : { label : "Name", width : 100, type : "text" },
+        size: { label : "Size", width : 50, type : "text", align : "right" },
+        type : { label : "Type", width : 80, type : "text" },
+        modified : { label : "Last Modified", width : 150, type : "text" },
+        rights : { label : "Rights", width: 80, type : "text" }
+      };
+
+      var lv = new qx.ui.listview.ListView(ld, lc);
+
+      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+      lv.setBackgroundColor("white");
+      lv.setLocation(20, 48);
+      lv.setRight(335);
+      lv.setBottom(48);
+
+      qx.ui.core.ClientDocument.getInstance().add(lv);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_5.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_5.html
new file mode 100644 (file)
index 0000000..4823e13
--- /dev/null
@@ -0,0 +1,53 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.listview.ListView with text cells.</p>
+    <p>This qx.ui.listview.ListView will be resized with the window.</p>
+    <p>Using percents for columns.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var ld = [];
+      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+
+      for (var i=0, t; i<1000; i++)
+      {
+        t=Math.round(Math.random()*4);
+        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
+      };
+
+      var lc =
+      {
+        name : { label : "Name", width : "30%", type : "text" },
+        size: { label : "Size", width : "10%", type : "text", align : "right" },
+        type : { label : "Type", width : "15%", type : "text" },
+        modified : { label : "Last Modified", width : "20%", type : "text" },
+        rights : { label : "Rights", width: "15%", type : "text" }
+      };
+
+      var lv = new qx.ui.listview.ListView(ld, lc);
+
+      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+      lv.setBackgroundColor("white");
+      lv.setLocation(20, 48);
+      lv.setRight(335);
+      lv.setBottom(48);
+
+      qx.ui.core.ClientDocument.getInstance().add(lv);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_6.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_6.html
new file mode 100644 (file)
index 0000000..81654bb
--- /dev/null
@@ -0,0 +1,53 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.listview.ListView with text cells.</p>
+    <p>Supports minimum and maximum width of columns.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var ld = [];
+      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+
+      for (var i=0, t; i<1000; i++)
+      {
+        t=Math.round(Math.random()*4);
+        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
+      };
+
+      var lc =
+      {
+        name : { label : "Name", width : 100, minWidth : "auto", type : "text" },
+        size: { label : "Size", width : 50, minWidth : 50, type : "text" },
+        type : { label : "Type", width : 80, minWidth : 80, type : "text" },
+        modified : { label : "Last Modified", width : 100, minWidth : 100, maxWidth : 100, type : "text" },
+        rights : { label : "Rights", width: 80, minWidth : 50, type : "text" }
+      };
+
+      var lv = new qx.ui.listview.ListView(ld, lc);
+
+      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+      lv.setBackgroundColor("white");
+      lv.setWidth(600);
+      lv.setHeight(350);
+      lv.setLocation(20, 48);
+
+      qx.ui.core.ClientDocument.getInstance().add(lv);
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_7.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_7.html
new file mode 100644 (file)
index 0000000..44babe9
--- /dev/null
@@ -0,0 +1,114 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.listview.ListView with text cells.</p>
+    <p>Added some buttons to fill/clear the list dynamically.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var ld = [];
+      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+
+      var lc =
+      {
+        name : { label : "Name", width : 100, type : "text", sortable : true, sortProp : "text" },
+        size: { label : "Size", width : 50, type : "text", sortable : true, sortProp : "text", sortMethod : qx.util.Compare.byIntegerString },
+        type : { label : "Type", width : 80, type : "text", sortable : true, sortProp : "text" },
+        modified : { label : "Last Modified", width : 150, type : "text" },
+        rights : { label : "Rights", width: 80, type : "text" }
+      };
+
+      var lv = new qx.ui.listview.ListView(ld, lc);
+
+      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+      lv.setBackgroundColor("white");
+      lv.setWidth(500);
+      lv.setHeight(350);
+      lv.setLocation(20, 48);
+
+      qx.ui.core.ClientDocument.getInstance().add(lv);
+
+      function add(nu)
+      {
+        nu = nu||10;
+
+        for (var i=0, t; i<nu; i++)
+        {
+          t=Math.round(Math.random()*4);
+          ld.push({ name : { text : "File " + ld.length }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
+        };
+
+        lv.updateSort();
+        lv.update();
+      };
+
+      function remove(nu)
+      {
+        nu = Math.min(ld.length, nu || 10);
+
+        ld.splice(ld.length-nu, nu);
+
+        lv.updateSort();
+        lv.update();
+      };
+
+      function clear()
+      {
+        ld.removeAll();
+        lv.update();
+      };
+
+      var btnAdd10 = new qx.ui.form.Button("Add 10", "icon/16/insert-table-row.png");
+      var btnAdd50 = new qx.ui.form.Button("Add 50", "icon/16/insert-table-row.png");
+      var btnAdd100 = new qx.ui.form.Button("Add 100", "icon/16/insert-table-row.png");
+      var btnAdd1000 = new qx.ui.form.Button("Add 1000", "icon/16/insert-table-row.png");
+
+      var btnRemove10 = new qx.ui.form.Button("Remove 10", "icon/16/delete-table-row.png");
+      var btnRemove50 = new qx.ui.form.Button("Remove 50", "icon/16/delete-table-row.png");
+      var btnRemove100 = new qx.ui.form.Button("Remove 100", "icon/16/delete-table-row.png");
+      var btnRemove1000 = new qx.ui.form.Button("Remove 1000", "icon/16/delete-table-row.png");
+
+      var btnClear = new qx.ui.form.Button("Clear", "icon/16/delete-table.png");
+
+      btnAdd10.setLocation(550, 48);
+      btnAdd50.setLocation(550, 78);
+      btnAdd100.setLocation(550, 108);
+      btnAdd1000.setLocation(550, 138);
+
+      btnRemove10.setLocation(550, 188);
+      btnRemove50.setLocation(550, 218);
+      btnRemove100.setLocation(550, 248);
+      btnRemove1000.setLocation(550, 278);
+
+      btnClear.setLocation(550, 328);
+
+      btnAdd10.addEventListener("execute", function(e) { add(10); });
+      btnAdd50.addEventListener("execute", function(e) { add(50); });
+      btnAdd100.addEventListener("execute", function(e) { add(100); });
+      btnAdd1000.addEventListener("execute", function(e) { add(1000); });
+
+      btnRemove10.addEventListener("execute", function(e) { remove(10); });
+      btnRemove50.addEventListener("execute", function(e) { remove(50); });
+      btnRemove100.addEventListener("execute", function(e) { remove(100); });
+      btnRemove1000.addEventListener("execute", function(e) { remove(1000); });
+
+      btnClear.addEventListener("execute", function(e) { clear(); });
+
+      qx.ui.core.ClientDocument.getInstance().add(btnAdd10, btnAdd50, btnAdd100, btnAdd1000, btnRemove10, btnRemove50, btnRemove100, btnRemove1000, btnClear);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_8.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_8.html
new file mode 100644 (file)
index 0000000..91df8ce
--- /dev/null
@@ -0,0 +1,121 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.listview.ListView with text cells.</p>
+    <p>And with drag and drop between the two qx.ui.listview.ListViews.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var ld = [];
+      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+      
+      for (var i=0, t; i<1000; i++) 
+      {
+        t=Math.round(Math.random()*4);
+        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
+      };
+      
+      var lc1 = 
+      {
+        name : { label : "Name", width : 100, type : "text", sortable : true, sortProp : "text" },
+        size: { label : "Size", width : 50, type : "text", sortable : true, sortProp : "text", sortMethod : qx.util.Compare.byIntegerString },
+        type : { label : "Type", width : 80, type : "text", sortable : true, sortProp : "text" },
+        modified : { label : "Last Modified", width : 150, type : "text" },
+        rights : { label : "Rights", width: 80, type : "text" }
+      };
+      
+      var lc2 = 
+      {
+        name : { label : "Name", width : 100, type : "text", sortable : true, sortProp : "text" },
+        size: { label : "Size", width : 50, type : "text", sortable : true, sortProp : "text", sortMethod : qx.util.Compare.byIntegerString },
+        type : { label : "Type", width : 80, type : "text", sortable : true, sortProp : "text" },
+        modified : { label : "Last Modified", width : 150, type : "text" },
+        rights : { label : "Rights", width: 80, type : "text" }
+      };      
+      
+      
+      function handleDrag(e) 
+      {
+        e.addData("qx.ui.listview.ListViewEntries", qx.lang.Array.copy(e.getCurrentTarget().getManager().getSelectedItems()));
+        e.addAction("move");
+        e.startDrag();
+      };
+
+      function handleDrop(e) 
+      {
+        var type = e.getDropDataTypes()[0];
+        var data = e.getData(type);
+        
+        switch(e.getAction())
+        {
+          case "move":
+            sourceView.getPane().getManager().setSelectedItems([]);
+            sourceView.getPane().getManager().setAnchorItem(null);
+            sourceView.getPane().getManager().setLeadItem(null);          
+          
+            for (var i=0, l=data.length; i<l; i++) 
+            {
+              qx.lang.Array.remove(sourceView.getData(), data[i]);
+              destView.getData().push(data[i]);
+            };
+            
+            destView.getPane().getManager().setSelectedItems(data);
+            
+            sourceView.updateSort();
+            destView.updateSort();
+            
+            sourceView.update();
+            destView.update();
+        };        
+      };      
+      
+      
+      
+      
+      
+      var sourceView = new qx.ui.listview.ListView(ld, lc1);
+
+      sourceView.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+      sourceView.setBackgroundColor("white");
+      sourceView.setWidth(600);
+      sourceView.setHeight(250);
+      sourceView.setLocation(20, 48);
+      
+      sourceView.getPane().getManager().setDragSelection(false);
+      sourceView.getPane().addEventListener("dragstart", handleDrag);
+      
+      qx.ui.core.ClientDocument.getInstance().add(sourceView);
+      
+      
+      
+      
+      var destView = new qx.ui.listview.ListView([], lc2);
+
+      destView.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+      destView.setBackgroundColor("white");
+      destView.setWidth(600);
+      destView.setHeight(250);
+      destView.setLocation(20, 318);
+      
+      destView.getPane().getManager().setDragSelection(false);
+      destView.getPane().setDropDataTypes(["qx.ui.listview.ListViewEntries"]);
+      destView.getPane().addEventListener("dragdrop", handleDrop);          
+      
+      qx.ui.core.ClientDocument.getInstance().add(destView);      
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_9.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ListView_9.html
new file mode 100644 (file)
index 0000000..990e591
--- /dev/null
@@ -0,0 +1,119 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing qx.ui.listview.ListView with text cells.</p>
+    <p>And with drag and drop between the two qx.ui.listview.ListViews.</p>
+    <p>Reduced columns for second listview.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var ld = [];
+      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
+
+      for (var i=0, t; i<1000; i++)
+      {
+        t=Math.round(Math.random()*4);
+        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
+      };
+
+      var lc1 =
+      {
+        name : { label : "Name", width : 100, type : "text", sortable : true, sortProp : "text" },
+        size: { label : "Size", width : 50, type : "text", sortable : true, sortProp : "text", sortMethod : qx.util.Compare.byIntegerString },
+        type : { label : "Type", width : 80, type : "text", sortable : true, sortProp : "text" },
+        modified : { label : "Last Modified", width : 150, type : "text" },
+        rights : { label : "Rights", width: 80, type : "text" }
+      };
+
+      var lc2 =
+      {
+        name : { label : "Name", width : 200, type : "text", sortable : true, sortProp : "text" },
+        type : { label : "Type", width : 80, type : "text", sortable : true, sortProp : "text" }
+      };
+
+
+      function handleDrag(e)
+      {
+        e.addData("qx.ui.listview.ListViewEntries", qx.lang.Array.copy(e.getCurrentTarget().getManager().getSelectedItems()));
+        e.addAction("move");
+        e.startDrag();
+      };
+
+      function handleDrop(e)
+      {
+        var type = e.getDropDataTypes()[0];
+        var data = e.getData(type);
+
+        switch(e.getAction())
+        {
+          case "move":
+            sourceView.getPane().getManager().setSelectedItems([]);
+            sourceView.getPane().getManager().setAnchorItem(null);
+            sourceView.getPane().getManager().setLeadItem(null);
+
+            for (var i=0, l=data.length; i<l; i++)
+            {
+              qx.lang.Array.remove(sourceView.getData(), data[i]);
+              destView.getData().push(data[i]);
+            };
+
+            destView.getPane().getManager().setSelectedItems(data);
+
+            sourceView.updateSort();
+            destView.updateSort();
+
+            sourceView.update();
+            destView.update();
+        };
+      };
+
+
+
+
+
+      var sourceView = new qx.ui.listview.ListView(ld, lc1);
+
+      sourceView.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+      sourceView.setBackgroundColor("white");
+      sourceView.setWidth(600);
+      sourceView.setHeight(250);
+      sourceView.setLocation(20, 48);
+
+      sourceView.getPane().getManager().setDragSelection(false);
+      sourceView.getPane().addEventListener("dragstart", handleDrag);
+
+      qx.ui.core.ClientDocument.getInstance().add(sourceView);
+
+
+
+
+      var destView = new qx.ui.listview.ListView([], lc2);
+
+      destView.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
+      destView.setBackgroundColor("white");
+      destView.setWidth(600);
+      destView.setHeight(250);
+      destView.setLocation(20, 318);
+
+      destView.getPane().getManager().setDragSelection(false);
+      destView.getPane().setDropDataTypes(["qx.ui.listview.ListViewEntries"]);
+      destView.getPane().addEventListener("dragdrop", handleDrop);
+
+      qx.ui.core.ClientDocument.getInstance().add(destView);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/List_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/List_1.html
new file mode 100644 (file)
index 0000000..c610878
--- /dev/null
@@ -0,0 +1,128 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>List implementation. Now testing auto dimensions.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var l1 = new qx.ui.form.List;
+      
+      l1.set({ top : 48, left: 20, height: 200, width: "auto", overflow : "scrollY" });
+      
+      var item;
+      for( var i=1; i<=35; i++ ) 
+      {
+        // item = new qx.ui.form.ListItem("Item No " + i);
+        item = new qx.ui.form.ListItem("Item No " + i, "icon/" + ((i % 4) ? "16" : "48") + "/folder.png");
+        
+        !(i % 9) && (item.setEnabled(false));
+        
+        l1.add(item);
+      };
+      
+      d.add(l1);
+      
+      var l2 = new qx.ui.form.List;
+      
+      l2.set({ top : 48, left: 400, height: 200, width: "auto" });
+      l2.getManager().setMultiSelection(false);
+      //l2.setOverflow("scrollY");
+      l2.setHeight("auto");
+      
+      var l2l = [ "red", "violett", "rose", "blue", "green", "cyan", "magenta", "yellow", "brown", "orange", "black", "white", "grey", "gray", "brown" ];
+      
+      for (var i=0; i<l2l.length; i++) {
+        l2.add(new qx.ui.form.ListItem(l2l[i]));
+      };      
+      
+      d.add(l2);
+      
+
+      
+
+      var c1 = new qx.ui.form.CheckBox("Enable Multi-Selection");
+      var c2 = new qx.ui.form.CheckBox("Enable Drag-Selection");
+      var c3 = new qx.ui.form.CheckBox("Allow Deselection");
+      var c4 = new qx.ui.form.CheckBox("Enable Inline Find");
+
+      c1.setLocation(180, 48);
+      c2.setLocation(180, 68);
+      c3.setLocation(180, 88);
+      c4.setLocation(180, 108);
+      
+      d.add(c1, c2, c3, c4);
+      
+      c1.setChecked(true);
+      c2.setChecked(true);
+      c3.setChecked(true);
+      c4.setChecked(true);
+      
+      c1.addEventListener("changeChecked", function(e) {
+        l1.getManager().setMultiSelection(e.getData());
+      });
+      
+      c2.addEventListener("changeChecked", function(e) {
+        l1.getManager().setDragSelection(e.getData());
+      });
+
+      c3.addEventListener("changeChecked", function(e) {
+        l1.getManager().setCanDeselect(e.getData());
+      });
+      
+      c4.addEventListener("changeChecked", function(e) {
+        l1.setEnableInlineFind(e.getData());
+      });
+      
+      
+      
+      
+
+      var rd1 = new qx.ui.form.RadioButton("Show Label", "label");
+      var rd2 = new qx.ui.form.RadioButton("Show Icon", "icon");
+      var rd3 = new qx.ui.form.RadioButton("Show Both", "both");
+
+      rd1.set( { left: 180, top: 128 } );
+      rd2.set( { left: 180, top: 148 } );
+      rd3.set( { left: 180, top: 168 } );
+      
+      d.add(rd1, rd2, rd3);
+      
+      rd3.setChecked(true);
+
+      var rbm = new qx.manager.selection.RadioManager( name, [rd1, rd2, rd3]);
+
+      rbm.addEventListener("changeSelected", function(e)
+      {
+        for( var i=0; i<l1.getChildrenLength(); i++ ) {
+          l1.getChildren()[i].setShow(e.getData().getValue());
+        };
+      });
+      
+      
+
+      
+      
+      // Icon Themes
+      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 348);
+    
+      // Color Themes
+      qx.manager.object.ColorManager.getInstance().createThemeList(d, 200, 348);      
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/List_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/List_2.html
new file mode 100644 (file)
index 0000000..d7c51c2
--- /dev/null
@@ -0,0 +1,111 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>List implementation</p>
+    <p>Drag and Drop Handling added</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var doc = qx.ui.core.ClientDocument.getInstance();
+
+      // Create list to drag from
+
+
+      var sourceList = new qx.ui.form.List();
+      sourceList.setWidth(100);
+      sourceList.setHeight(250);
+      sourceList.setLeft(20);
+      sourceList.setTop(48);
+
+      // Set vertical scroll bar to always visible
+      sourceList.setOverflow("scrollY");
+      // Set selection mode to single explicitly
+      // sourceList.getManager().setMultiSelection(false);
+      // Set drag selection mode to off
+      sourceList.getManager().setDragSelection(false);
+
+      // Add items to source list
+
+      for (var i = 1; i <= 10; i++) 
+      {
+        var item = new qx.ui.form.ListItem("Item " + i);
+        item.addEventListener("dragstart", handleStartDrag);
+        sourceList.add(item);
+      };
+
+      doc.add(sourceList);
+
+
+
+      // Create list to drop to
+
+      var destList = new qx.ui.form.List();
+      destList.setWidth(100);
+      destList.setHeight(250);
+      destList.setLeft(320);
+      destList.setTop(48);
+      
+      // Set vertical scroll bar to always visible
+      destList.setOverflow("scrollY");
+      // Set selection mode to single explicitly
+      // destList.getManager().setMultiSelection(false);
+      // Set drag selection mode to off
+      destList.getManager().setDragSelection(false);
+      
+      doc.add(destList);      
+
+      // Define event handlers
+
+      function handleStartDrag(e) 
+      {
+        e.addData("ListItems", qx.lang.Array.copy(sourceList.getManager().getSelectedItems()));
+        e.addAction("move");
+        e.startDrag();
+      };
+
+      function handleListDrop(e) 
+      {
+        var type = e.getDropDataTypes()[0];
+        var data = e.getData(type);
+
+        // this.debug("Drag&Drop Action: " + e.getAction());
+        
+        switch(e.getAction())
+        {
+          case "move":
+            sourceList.getManager().setSelectedItems([]);
+            sourceList.getManager().setAnchorItem(null);
+            sourceList.getManager().setLeadItem(null);
+          
+            for (var i=0, l=data.length; i<l; i++) {
+              destList.add(data[i]);
+            };
+            
+            destList.getManager().setSelectedItems(data);
+            break;
+        };
+      };
+
+
+
+      // Set event properties for destination list
+
+      destList.setDropDataTypes(["ListItems"]);
+      destList.addEventListener("dragdrop", handleListDrop);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/List_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/List_3.html
new file mode 100644 (file)
index 0000000..0ce48f0
--- /dev/null
@@ -0,0 +1,55 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>qx.ui.form.List Item Sorting demo</p>
+  </div>
+
+  <script type="text/javascript">
+   
+    qx.core.Init.getInstance().defineMain(function() {
+        var list = new qx.ui.form.List(); list.set({top:50,left:50,height:150,width:100});
+        
+        list.add(new qx.ui.form.ListItem('Will',null,'1'));
+        list.add(new qx.ui.form.ListItem('Anna',null,'2'));
+        list.add(new qx.ui.form.ListItem('Tom',null,'3'));
+        list.add(new qx.ui.form.ListItem('Diana',null,'4'));
+        list.add(new qx.ui.form.ListItem('Pete',null,'5'));
+        list.add(new qx.ui.form.ListItem('Carol',null,'6'));
+        
+        var btn1 = new qx.ui.form.Button('Sort By Label'); btn1.set({top:50,left:200});
+        btn1.addEventListener('click',function(e){
+            list.sortItemsByString();
+        });
+
+        var btn2 = new qx.ui.form.Button('Sort By Label Reverse'); btn2.set({top:80,left:200});
+        btn2.addEventListener('click',function(e){
+            list.sortItemsByString(true);
+        });
+
+        var btn3 = new qx.ui.form.Button('Sort By Value'); btn3.set({top:140,left:200});
+        btn3.addEventListener('click',function(e){
+            list.sortItemsByValue();
+        });
+
+        var btn4 = new qx.ui.form.Button('Sort By Value Reverse'); btn4.set({top:170,left:200});
+        btn4.addEventListener('click',function(e){
+            list.sortItemsByValue(true);
+        });
+
+        qx.ui.core.ClientDocument.getInstance().add(btn1,btn2,btn3,btn4);
+        qx.ui.core.ClientDocument.getInstance().add(list);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Menu_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Menu_1.html
new file mode 100644 (file)
index 0000000..87791f9
--- /dev/null
@@ -0,0 +1,129 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>qx.ui.menu.Menu Implementation</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+
+      var m2 = new qx.ui.menu.Menu;
+
+      var mb2_01 = new qx.ui.menu.Button("New Window");
+      var mb2_02 = new qx.ui.menu.Button("Overlapping");
+      var mb2_03 = new qx.ui.menu.Button("Split Vertical");
+      var mb2_04 = new qx.ui.menu.Button("Split Horizontal");
+      var mb2_05 = new qx.ui.menu.Button("Next Window");
+      var mb2_06 = new qx.ui.menu.Button("Previous Window");
+
+      m2.add(mb2_01, mb2_02, mb2_03, mb2_04, mb2_05, mb2_06);
+
+
+
+
+      var m3 = new qx.ui.menu.Menu;
+
+      var mb3_01 = new qx.ui.menu.Button("Tahoma, 11pt");
+      var mb3_02 = new qx.ui.menu.Button("Tahoma, 12pt");
+      var mb3_03 = new qx.ui.menu.Button("Tahoma, 13pt");
+      var mb3_04 = new qx.ui.menu.Button("Tahoma, 14pt");
+      var mb3_05 = new qx.ui.menu.Button("Tahoma, 15pt");
+
+      m3.add(mb3_01, mb3_02, mb3_03, mb3_04, mb3_05);
+
+
+
+      var m1 = new qx.ui.menu.Menu;
+
+      var mb1_01 = new qx.ui.menu.Button("View/Lists");
+      var mb1_02 = new qx.ui.menu.Button("Syntax Highlighting");
+      var ms1    = new qx.ui.menu.Separator();
+      var mb1_03 = new qx.ui.menu.Button("Window Font");
+      var mb1_04 = new qx.ui.menu.Button("Printer Font", null, null, m3);
+      var ms2    = new qx.ui.menu.Separator();
+      var mb1_05 = new qx.ui.menu.Button("Undo");
+      var mb1_06 = new qx.ui.menu.Button("Redo");
+      var ms3    = new qx.ui.menu.Separator();
+      var mb1_07 = new qx.ui.menu.Button("Cut", "icon/16/edit-cut.png");
+      var mb1_08 = new qx.ui.menu.Button("Copy", "icon/16/edit-copy.png");
+      var mb1_09 = new qx.ui.menu.Button("Paste", "icon/16/edit-paste.png");
+      var mb1_10 = new qx.ui.menu.Button("Delete", "icon/16/edit-delete.png");
+      var mb1_11 = new qx.ui.menu.Button("Select All");
+      var ms4    = new qx.ui.menu.Separator();
+      var mb1_12 = new qx.ui.menu.Button("Search");
+      var mb1_13 = new qx.ui.menu.Button("Search Again");
+      var ms5    = new qx.ui.menu.Separator();
+      var mb1_14 = new qx.ui.menu.Button("View", null, null, m2);
+      var mb1_15 = new qx.ui.menu.Button("Editor Settings...");
+      var mb1_16 = new qx.ui.menu.Button("Editor Plugins");
+      var mb1_17 = new qx.ui.menu.Button("Framework Settings");
+
+      m1.add(mb1_01, mb1_02, ms1, mb1_03, mb1_04, ms2, mb1_05, mb1_06, ms3, mb1_07, mb1_08, mb1_09, mb1_10, mb1_11, ms4, mb1_12, mb1_13, ms5, mb1_14, mb1_15, mb1_16, mb1_17);
+
+
+      d.add(m1, m2, m3);
+
+
+
+
+
+      var w1 = new qx.ui.form.Button("Open");
+
+      w1.setTop(48);
+      w1.setLeft(20);
+
+      w1.addEventListener("click", function(e)
+      {
+        if (m1.isSeeable())
+        {
+          m1.hide();
+        }
+        else
+        {
+          var el = this.getElement();
+
+          m1.setLeft(qx.dom.Location.getPageBoxLeft(el));
+          m1.setTop(qx.dom.Location.getPageBoxBottom(el));
+
+          m1.show();
+        };
+
+        e.setPropagationStopped(true);
+      });
+
+      w1.addEventListener("mousedown", function(e)
+      {
+        e.setPropagationStopped(true);
+      });
+
+
+      d.add(w1);
+
+
+
+
+
+      // Icon Themes
+      qx.manager.object.ImageManager.getInstance().createThemeList(d, 180, 48);
+
+      // Color Themes
+      qx.manager.object.ColorManager.getInstance().createThemeList(d, 380, 48);
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Menu_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Menu_2.html
new file mode 100644 (file)
index 0000000..0b2d136
--- /dev/null
@@ -0,0 +1,205 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>qx.ui.menu.Menu Implementation.</p>
+    <p>Added qx.client.Command support tests.</p>
+    <p>Create the menu instances on the first opening.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var q1 = new qx.client.Command("Ctrl+Z");
+      q1.addEventListener("execute", function(e) {
+        alert("Undo");
+      });
+
+      var q2 = new qx.client.Command("Ctrl+Y");
+      q2.addEventListener("execute", function(e) {
+        alert("Redo");
+      });
+
+      var q3 = new qx.client.Command("Ctrl+X");
+      q3.addEventListener("execute", function(e) {
+        alert("Cut");
+      });
+
+      var q4 = new qx.client.Command("Ctrl+C");
+      q4.addEventListener("execute", function(e) {
+        alert("Copy");
+      });
+
+      var q5 = new qx.client.Command("Ctrl+V");
+      q5.addEventListener("execute", function(e) {
+        alert("Paste");
+      });
+
+      var q6 = new qx.client.Command("Del");
+      q6.addEventListener("execute", function(e) {
+        alert("Delete");
+      });
+
+      var q7 = new qx.client.Command("Ctrl+A");
+      q7.addEventListener("execute", function(e) {
+        alert("Select All");
+      });
+
+      var q8 = new qx.client.Command("Ctrl+F");
+      q8.addEventListener("execute", function(e) {
+        alert("Search");
+      });
+
+      var q9 = new qx.client.Command("Ctrl+G");
+      q9.addEventListener("execute", function(e) {
+        alert("Search Again");
+      });
+
+      var q10 = new qx.client.Command();
+      q10.addEventListener("execute", function(e) {
+        alert("Syntax Highlighting");
+      });
+
+      var q11 = new qx.client.Command("Esc");
+      q11.addEventListener("execute", function(e) {
+        alert("Escape");
+      });
+
+      var q12 = new qx.client.Command(null, qx.event.type.KeyEvent.keys.space);
+      q12.addEventListener("execute", function(e) {
+        alert("Space");
+      });
+
+
+      var m1, m2, m3;
+
+      function createMenus()
+      {
+        m2 = new qx.ui.menu.Menu;
+
+        var mb2_01 = new qx.ui.menu.Button("New Window");
+        var mb2_02 = new qx.ui.menu.Button("Overlapping");
+        var mb2_03 = new qx.ui.menu.Button("Split Vertical");
+        var mb2_04 = new qx.ui.menu.Button("Split Horizontal");
+        var mb2_05 = new qx.ui.menu.Button("Next Window");
+        var mb2_06 = new qx.ui.menu.Button("Previous Window");
+
+        m2.add(mb2_01, mb2_02, mb2_03, mb2_04, mb2_05, mb2_06);
+
+
+
+
+        m3 = new qx.ui.menu.Menu;
+
+        var mb3_01 = new qx.ui.menu.Button("Tahoma, 11pt");
+        var mb3_02 = new qx.ui.menu.Button("Tahoma, 12pt");
+        var mb3_03 = new qx.ui.menu.Button("Tahoma, 13pt");
+        var mb3_04 = new qx.ui.menu.Button("Tahoma, 14pt");
+        var mb3_05 = new qx.ui.menu.Button("Tahoma, 15pt");
+
+        m3.add(mb3_01, mb3_02, mb3_03, mb3_04, mb3_05);
+
+
+
+        m1 = new qx.ui.menu.Menu;
+
+        var mb1_01 = new qx.ui.menu.Button("View/Lists", null, q12);
+        var mb1_02 = new qx.ui.menu.Button("Syntax Highlighting", null, q10);
+        var ms1    = new qx.ui.menu.Separator();
+        var mb1_03 = new qx.ui.menu.Button("Window Font", null, q11);
+        var mb1_04 = new qx.ui.menu.Button("Printer Font", null, null, m3);
+        var ms2    = new qx.ui.menu.Separator();
+        var mb1_05 = new qx.ui.menu.Button("Undo", null, q1);
+        var mb1_06 = new qx.ui.menu.Button("Redo", null, q2);
+        var ms3    = new qx.ui.menu.Separator();
+        var mb1_07 = new qx.ui.menu.Button("Cut", "icon/16/edit-cut.png", q3);
+        var mb1_08 = new qx.ui.menu.Button("Copy", "icon/16/edit-copy.png", q4);
+        var mb1_09 = new qx.ui.menu.Button("Paste", "icon/16/edit-paste.png", q5);
+        var mb1_10 = new qx.ui.menu.Button("Delete", "icon/16/edit-delete.png", q6);
+        var mb1_11 = new qx.ui.menu.Button("Select All", null, q7);
+        var ms4    = new qx.ui.menu.Separator();
+        var mb1_12 = new qx.ui.menu.Button("Search", null, q8);
+        var mb1_13 = new qx.ui.menu.Button("Search Again", null, q9);
+        var ms5    = new qx.ui.menu.Separator();
+        var mb1_14 = new qx.ui.menu.Button("View", null, null, m2);
+        var mb1_15 = new qx.ui.menu.Button("Editor Settings...");
+        var mb1_16 = new qx.ui.menu.Button("Editor Plugins");
+        var mb1_17 = new qx.ui.menu.Button("Framework Settings");
+
+        m1.add(mb1_01, mb1_02, ms1, mb1_03, mb1_04, ms2, mb1_05, mb1_06, ms3, mb1_07, mb1_08, mb1_09, mb1_10, mb1_11, ms4, mb1_12, mb1_13, ms5, mb1_14, mb1_15, mb1_16, mb1_17);
+
+
+        d.add(m1, m2, m3);
+      };
+
+
+
+
+
+      var w1 = new qx.ui.form.Button("Open");
+
+      w1.setTop(48);
+      w1.setLeft(20);
+
+      w1.addEventListener("click", function(e)
+      {
+        if (!m1) {
+          createMenus();
+        };
+
+        if (m1.isSeeable())
+        {
+          m1.hide();
+        }
+        else
+        {
+          var el = this.getElement();
+
+          m1.setLeft(qx.dom.Location.getPageBoxLeft(el));
+          m1.setTop(qx.dom.Location.getPageBoxBottom(el));
+
+          m1.show();
+        };
+
+        e.setPropagationStopped(true);
+      });
+
+      w1.addEventListener("mousedown", function(e)
+      {
+        e.setPropagationStopped(true);
+      });
+
+
+      d.add(w1);
+
+
+
+
+
+
+
+
+
+      // Icon Themes
+      qx.manager.object.ImageManager.getInstance().createThemeList(d, 180, 48);
+
+      // Color Themes
+      qx.manager.object.ColorManager.getInstance().createThemeList(d, 380, 48);
+
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Node_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Node_1.html
new file mode 100644 (file)
index 0000000..8fed535
--- /dev/null
@@ -0,0 +1,39 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>qx.ui.embed.NodeEmbed makes a dom node a widget.</p>
+  </div>
+  
+  <div id="text1" style="display:none">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero et accumsan et iusto odio dignissim qui <strong>qooxdoo</strong> blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.</div>
+  
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+    
+    var n = new qx.ui.embed.NodeEmbed("text1");
+    
+    n.setLocation(20, 48);
+    n.setRight(335);
+    n.setBottom(48);
+    n.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    n.setBackgroundColor("white");
+    n.setColor("blue");
+    n.setPadding(10);
+    
+    d.add(n);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Pollution_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Pollution_1.html
new file mode 100644 (file)
index 0000000..6469906
--- /dev/null
@@ -0,0 +1,271 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test global namespace pollution through qooxdoo.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var tb = new qx.ui.toolbar.ToolBar;
+      with(tb)
+      {
+        setTop(48);
+        setLeft(20);
+        setRight(335);
+
+        // setWidth("auto");
+      };
+
+      var btns1 = [
+        { type : "button", icon : "file-new", text : "New" },
+        { type : "separator" },
+        { type : "button", icon : "edit-copy", text : "Copy" },
+        { type : "button", icon : "edit-cut", text : "Cut" },
+        { type : "button", icon : "edit-paste", text : "Paste" }
+      ];
+
+      var btns2 = [
+        { type : "button", icon : "up", text : "Upload" },
+        { type : "button", icon : "down", text : "Download" }
+      ];
+
+      var btns3 = [
+        { type : "button", icon : "help", text : "Help" }
+      ];
+
+      var bars = [ btns1, btns2, btns3 ];
+
+      function changeLayout(e) {
+        this.setShow(e.getData());
+      };
+
+      function changeSize(e) {
+        var v = e.getData();
+        var o = v == 22 ? 32 : 22;
+
+        this.setIcon(this.getIcon().replace(o, v));
+      };
+
+      function buttonExecute() { this.debug("Executed: " + this.getLabel()); };
+
+      var useParts = true;
+
+
+      for (var j=0; j<bars.length; j++)
+      {
+        var btns = bars[j];
+
+        if (useParts) {
+          var tbp = new qx.ui.toolbar.Part;
+        };
+
+        for (var i=0; i<btns.length; i++)
+        {
+          var btn = btns[i];
+
+          switch(btn.type)
+          {
+            case "separator":
+              var o = new qx.ui.toolbar.Separator;
+              break;
+
+            case "button":
+              var o = new qx.ui.toolbar.Button(btn.text, "icon/22/" + btn.icon + ".png");
+
+              // beautiful decoupling: toolbar buttons don't know about radio boxes
+
+              d.addEventListener("changeLayout", changeLayout, o);
+              d.addEventListener("changeSize", changeSize, o);
+
+              o.addEventListener("execute", buttonExecute);
+              break;
+          };
+
+          if (useParts)
+          {
+            tbp.add(o);
+          }
+          else
+          {
+            tb.add(o);
+          };
+        };
+
+        if (useParts) {
+          tb.add(tbp);
+        };
+      };
+
+      d.add(tb);
+
+
+
+
+
+
+      var rd1 = new qx.ui.form.RadioButton("Show Icons and Label", "both");
+      var rd2 = new qx.ui.form.RadioButton("Show Icons", "icon");
+      var rd3 = new qx.ui.form.RadioButton("Show Label", "label");
+
+      with(rd1)
+      {
+        setTop(140);
+        setLeft(20);
+        setChecked(true);
+      };
+
+      with(rd2)
+      {
+        setTop(160);
+        setLeft(20);
+      };
+
+      with(rd3)
+      {
+        setTop(180);
+        setLeft(20);
+      };
+
+
+      var rbm = new qx.manager.selection.RadioManager();
+
+      rbm.add(rd1);
+      rbm.add(rd2);
+      rbm.add(rd3);
+
+
+      // beautiful decoupling: radio boxes don't know about toolbar buttons
+      rbm.addEventListener("changeSelected", function(e) {
+        d.dispatchEvent( new qx.event.type.DataEvent("changeLayout", e.getData().getValue() ) );
+      });
+
+      d.add(rd1, rd2, rd3);
+
+
+
+      // Alignment
+      var ra1 = new qx.ui.form.RadioButton("Left Aligned", "left");
+      var ra2 = new qx.ui.form.RadioButton("Centered", "center");
+      var ra3 = new qx.ui.form.RadioButton("Right Aligned", "right");
+
+      with(ra1)
+      {
+        setTop(140);
+        setLeft(220);
+        setChecked(true);
+      };
+
+      with(ra2)
+      {
+        setTop(160);
+        setLeft(220);
+      };
+
+      with(ra3)
+      {
+        setTop(180);
+        setLeft(220);
+      };
+
+
+      var ram = new qx.manager.selection.RadioManager();
+
+      ram.add(ra1);
+      ram.add(ra2);
+      ram.add(ra3);
+
+      d.add(ra1, ra2, ra3);
+
+      ram.addEventListener("changeSelected", function(e) {
+        tb.setHorizontalChildrenAlign(e.getData().getValue());
+      });
+
+
+
+
+      // Icon Sizes
+      var b3 = new qx.ui.form.Button("Icons: 22 Pixel", "icon/16/colors.png");
+
+      with(b3)
+      {
+        setTop(140);
+        setLeft(420);
+        setHorizontalAlign("center");
+      };
+
+      b3.addEventListener("execute", function(e) {
+        d.dispatchEvent(new qx.event.type.DataEvent("changeSize", 22));
+      });
+
+      var b4 = new qx.ui.form.Button("Icons: 32 Pixel", "icon/16/colors.png");
+
+      with(b4)
+      {
+        setTop(170);
+        setLeft(420);
+        setHorizontalAlign("center");
+      };
+
+      b4.addEventListener("execute", function(e) {
+        d.dispatchEvent(new qx.event.type.DataEvent("changeSize", 32));
+      });
+
+      d.add(b3, b4);
+
+
+
+
+
+      var pollTxt = new qx.ui.embed.HtmlEmbed;
+      pollTxt.setLocation(20, 300);
+      pollTxt.setRight(450);
+      pollTxt.setBottom(48);
+      pollTxt.setOverflow("auto");
+      pollTxt.setBorder("1px solid black");
+      pollTxt.setBackgroundColor("white");
+      qx.ui.core.ClientDocument.getInstance().add(pollTxt);
+
+      var pollWinBtn = new qx.ui.form.Button("Print Window");
+      pollWinBtn.setTop(300);
+      pollWinBtn.setRight(335);
+      qx.ui.core.ClientDocument.getInstance().add(pollWinBtn);
+
+      var pollDocBtn = new qx.ui.form.Button("Print Document");
+      pollDocBtn.setTop(330);
+      pollDocBtn.setRight(335);
+      qx.ui.core.ClientDocument.getInstance().add(pollDocBtn);
+
+      var pollBodyBtn = new qx.ui.form.Button("Print Body");
+      pollBodyBtn.setTop(360);
+      pollBodyBtn.setRight(335);
+      qx.ui.core.ClientDocument.getInstance().add(pollBodyBtn);
+
+      pollWinBtn.addEventListener("execute", function(e) {
+        pollTxt.setHtml(qx.dev.Pollution.getHtmlTable("window"));
+      });
+
+      pollDocBtn.addEventListener("execute", function(e) {
+        pollTxt.setHtml(qx.dev.Pollution.getHtmlTable("document"));
+      });
+
+      pollBodyBtn.addEventListener("execute", function(e) {
+        pollTxt.setHtml(qx.dev.Pollution.getHtmlTable("body"));
+      });
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Popups_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Popups_1.html
new file mode 100644 (file)
index 0000000..3dc6e63
--- /dev/null
@@ -0,0 +1,106 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for the qx.ui.popup.Popup widget. qx.ui.popup.Popups are planned as the source constructor for tooltips, menus, ...</p>
+    <p>There is also a qx.manager.object.PopupManager which hides all registered qx.ui.popup.Popup instances which are configured to auto hide.
+    This is a nice method to omit to show more than one qx.ui.popup.Popup together (omit multiple QxTooltips, ...).</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+
+    var w1 = new qx.ui.form.Button("Press");
+    with(w1)
+    {
+      setTop(48);
+      setLeft(20);
+      setBackgroundColor(new qx.renderer.color.Color("#BDD2EF"));
+      setWidth(100);
+      setHeight(100);
+      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+      setHorizontalAlign("center");
+    };
+    d.add(w1);
+
+
+    var w2 = new qx.ui.form.Button("Press");
+    with(w2)
+    {
+      setTop(48);
+      setLeft(140);
+      setBackgroundColor(new qx.renderer.color.Color("#D1DFAD"));
+      setWidth(100);
+      setHeight(100);
+      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+      setHorizontalAlign("center");
+    };
+    d.add(w2);
+
+
+
+
+
+
+
+
+    var p1 = new qx.ui.popup.Popup;
+    d.add(p1);
+
+    var a1 = new qx.ui.basic.Atom("Hello World #1", "icon/16/paint.png");
+    p1.add(a1);
+
+    with(p1)
+    {
+      setBackgroundColor(new qx.renderer.color.Color("#FFFAD3"));
+      setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      setPadding(2, 4);
+    };
+
+    w1.addEventListener("click", function(e)
+    {
+      p1.setTop(e.getPageY() + 3);
+      p1.setLeft(e.getPageX() + 3);
+      p1.show();
+      p1.bringToFront();
+    });
+
+
+
+    var p2 = new qx.ui.popup.Popup;
+    d.add(p2);
+
+    var a2 = new qx.ui.basic.Atom("Hello World #2", "icon/32/clock.png");
+    p2.add(a2);
+
+    with(p2)
+    {
+      setBackgroundColor(new qx.renderer.color.Color("#DFFAD3"));
+      setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      setPadding(2, 4);
+    };
+
+    w2.addEventListener("click", function(e)
+    {
+      p2.setTop(e.getPageY() + 3);
+      p2.setLeft(e.getPageX() + 3);
+      p2.show();
+      p2.bringToFront();
+    });
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Popups_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Popups_2.html
new file mode 100644 (file)
index 0000000..f71e867
--- /dev/null
@@ -0,0 +1,102 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for the qx.ui.popup.Popup widget. qx.ui.popup.Popups are planned as the source constructor for tooltips, menus, ...</p>
+    <p>There is also a qx.manager.object.PopupManager which hides all registered qx.ui.popup.Popup instances which are configured to auto hide.
+    This is a nice method to omit to show more than one qx.ui.popup.Popup together (omit multiple QxTooltips, ...).</p>
+    <p>In this example we use a qx.ui.popup.PopupAtom. This is a popup with an automatically included qx.ui.basic.Atom, which
+    allowes you to easily use it for messages to the user or something like this.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+
+    var w1 = new qx.ui.form.Button("Press");
+    with(w1)
+    {
+      setTop(48);
+      setLeft(20);
+      setBackgroundColor(new qx.renderer.color.Color("#BDD2EF"));
+      setWidth(100);
+      setHeight(100);
+      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+      setHorizontalAlign("center");
+    };
+    d.add(w1);
+
+
+    var w2 = new qx.ui.form.Button("Press");
+    with(w2)
+    {
+      setTop(48);
+      setLeft(140);
+      setBackgroundColor(new qx.renderer.color.Color("#D1DFAD"));
+      setWidth(100);
+      setHeight(100);
+      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+      setHorizontalAlign("center");
+    };
+    d.add(w2);
+
+
+
+
+
+
+
+
+    var p1 = new qx.ui.popup.PopupAtom("Hello World #1", "icon/16/paint.png");
+    d.add(p1);
+
+    with(p1)
+    {
+      setBackgroundColor(new qx.renderer.color.Color("#FFFAD3"));
+      setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      setPadding(2, 4);
+    };
+
+    w1.addEventListener("click", function(e)
+    {
+      p1.setTop(e.getPageY() + 3);
+      p1.setLeft(e.getPageX() + 3);
+      p1.show();
+      p1.bringToFront();
+    });
+
+
+
+    var p2 = new qx.ui.popup.PopupAtom("Hello World #2", "icon/32/clock.png");
+    d.add(p2);
+
+    with(p2)
+    {
+      setBackgroundColor(new qx.renderer.color.Color("#DFFAD3"));
+      setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      setPadding(2, 4);
+    };
+
+    w2.addEventListener("click", function(e)
+    {
+      p2.setTop(e.getPageY() + 3);
+      p2.setLeft(e.getPageX() + 3);
+      p2.show();
+      p2.bringToFront();
+    });
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/RPC_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/RPC_1.html
new file mode 100644 (file)
index 0000000..2acd201
--- /dev/null
@@ -0,0 +1,116 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+  <script type="text/javascript" src=".qxrpc"></script>
+  <!-- With the above script, the service URL for a J2EE application can be
+       automatically determined, no matter on what path it's deployed. -->
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p><strong>Only works together with a RPC backend!</strong></p>
+    <p>Test for RPC functionality.</p>
+    <p>
+      This test calls a simple echo-style service on the server. The server
+      method accepts a string and sends back a string that says
+      "Client said: [input string]".
+    </p>
+  </div>
+
+  <script type="text/javascript">
+//    qx.Settings.setCustomOfClass("qx.io.remote.Exchange", "enableDebug", true);
+    qx.Settings.setCustomOfClass("qx.io.Json", "enableDebug", true);
+
+    qx.core.Init.getInstance().defineMain(function() {
+      var layout1 = new qx.ui.layout.VerticalBoxLayout();
+      layout1.setTop(40);
+      layout1.setLeft(20);
+      layout1.setSpacing(4);
+
+      var async = new qx.ui.form.CheckBox("Asynchronous (must be checked if cross-domain is selected)");
+      layout1.add(async);
+
+      var crossDomain = new qx.ui.form.CheckBox("Cross Domain");
+      layout1.add(crossDomain);
+
+      layout1.add(new qx.ui.basic.Label("URL:"));
+      var defaultURL = qx.io.remote.Rpc.makeServerURL();
+      if (defaultURL == null) {
+        defaultURL = "/services/";
+      }
+      var url = new qx.ui.form.TextField(defaultURL);
+      layout1.add(url);
+
+      layout1.add(new qx.ui.basic.Label("Service:"));
+      var service = new qx.ui.form.TextField("qooxdoo.test");
+      layout1.add(service);
+
+      layout1.add(new qx.ui.basic.Label("Method:"));
+      var method = new qx.ui.form.TextField("echo");
+      layout1.add(method);
+
+      var layout2 = new qx.ui.layout.HorizontalBoxLayout();
+      layout2.setHeight("auto");
+      layout2.setVerticalChildrenAlign("middle");
+      layout2.setSpacing(4);
+      var message = new qx.ui.form.TextField("Hello");
+      message.setWidth(200);
+      layout2.add(message);
+      var send = new qx.ui.form.Button("Send to server");
+      layout2.add(send);
+      var abort = new qx.ui.form.Button("Abort");
+      abort.setEnabled(false);
+      layout2.add(abort);
+      layout1.add(layout2);
+
+      // We'll be setting url and service upon execute; no need to do it now.
+      var rpc = new qx.io.remote.Rpc();
+      rpc.setTimeout(10000);
+      var mycall = null;
+
+      send.addEventListener("execute", function() {
+        // Allow the user to reset the URL and Service on each call
+        rpc.setUrl(url.getValue());
+        rpc.setServiceName(service.getValue());
+        rpc.setCrossDomain(crossDomain.isChecked());
+
+        if (async.isChecked()) {
+          send.setEnabled(false);
+          abort.setEnabled(true);
+          mycall = rpc.callAsync(function(result, ex, id) {
+            mycall = null;
+            if (ex == null) {
+              alert("Async(" + id + ") result: " + result);
+            } else {
+              alert("Async(" + id + ") exception: " + ex);
+            }
+            send.setEnabled(true);
+            abort.setEnabled(false);
+          }, method.getValue(), message.getValue());
+        } else {
+          try {
+            var result = rpc.callSync(method.getValue(), message.getValue());
+            alert("Sync result: " + result);
+          } catch (ex) {
+            alert("Sync exception: " + ex);
+          }
+        }
+      });
+
+      abort.addEventListener("execute", function() {
+        rpc.abort(mycall);
+      });
+
+      var d = qx.ui.core.ClientDocument.getInstance();
+      d.add(layout1);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/RPC_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/RPC_2.html
new file mode 100644 (file)
index 0000000..14778b3
--- /dev/null
@@ -0,0 +1,134 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+  <script type="text/javascript" src=".qxrpc"></script>
+  <!-- With the above script, the service URL for a J2EE application can be
+       automatically determined, no matter on what path it's deployed. -->
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p><strong>Only works together with a RPC backend!</strong></p>
+    <p>Test for RPC functionality.</p>
+    <p>
+      This tests the ability to issue multiple asynchronous RPC calls to the
+      same service/method, and determine from which request we have received a
+      response.  We issue multiple 'sleep' calls, for decreasing amounts of
+      time, and ensure that we can associate the resonses from the
+      later-issued requests to the earlier-received responses.
+    </p>
+  </div>
+
+  <script type="text/javascript">
+//    qx.Settings.setCustomOfClass("qx.io.remote.Exchange", "enableDebug", true);
+    qx.Settings.setCustomOfClass("qx.io.Json", "enableDebug", true);
+
+    qx.core.Init.getInstance().defineMain(function() {
+      var layout1 = new qx.ui.layout.VerticalBoxLayout();
+      layout1.setTop(40);
+      layout1.setLeft(20);
+      layout1.setSpacing(4);
+
+      /*
+        * Sigh.  Both IE and Firefox follow (too strictly) RFC2616 and limit
+        * the number of simultaneous asyncronous HTTP requests to 2.  We'll
+        * allow testing just 2 simultaneous requests or issuing 6 simultaneous
+        * requests.  In the former case, we'll get expected results.  In the
+        * latter, we'll see two at a time being processed.
+        *
+        * Note that this applies to both XmlHTTPTransport and IframeTransport.
+        * It is an HTTP limitation, not a limitation of a particular method of
+        * issuing a request.
+        */
+      var tooMany = new qx.ui.form.CheckBox("Issue more requests than IE's and Firefox's implementations of HTTP will process simultaneously");
+      layout1.add(tooMany);
+
+      var crossDomain = new qx.ui.form.CheckBox("Cross Domain");
+      layout1.add(crossDomain);
+
+      layout1.add(new qx.ui.basic.Label("URL:"));
+      var defaultURL = qx.io.remote.Rpc.makeServerURL();
+      if (defaultURL == null) {
+        defaultURL = "/services/";
+      }
+      var url = new qx.ui.form.TextField(defaultURL);
+      layout1.add(url);
+
+      layout1.add(new qx.ui.basic.Label("Service:"));
+      var service = new qx.ui.form.TextField("qooxdoo.test");
+      layout1.add(service);
+
+      var layout2 = new qx.ui.layout.HorizontalBoxLayout();
+      layout2.setHeight("auto");
+      layout2.setVerticalChildrenAlign("middle");
+      layout2.setSpacing(4);
+      var start = new qx.ui.form.Button("Start Test");
+      layout2.add(start);
+      var abort = new qx.ui.form.Button("Abort");
+      layout2.add(abort);
+      layout1.add(layout2);
+
+      // ensure there's room in the queue for all of our requests
+      qx.io.remote.RequestQueue.getInstance().setMaxConcurrentRequests(8);
+
+      // We'll be setting url and service upon execute; no need to do it now.
+      var rpc = new qx.io.remote.Rpc();
+      rpc.setTimeout(60000);
+      var mycall;
+      var mycalls = [];
+
+      start.addEventListener("execute", function() {
+        t0 = new Date().getTime();
+
+        rpc.setCrossDomain(crossDomain.isChecked());
+
+        rpc.setUrl(url.getValue());
+        rpc.setServiceName(service.getValue());
+
+        var seqnum;
+        for (i=(tooMany.isChecked() ? 30 : 10); i > 0; i-=5) {
+          /*
+           * Always issue an asynchronous request!  Issuing a synchronous
+           * request can lock up the entire browser until a response is
+           * received.  Bad browser developers!  Bad!
+           */
+          mycall = rpc.callAsync(function(result, ex, seqnum) {
+              mycalls[seqnum] = null;
+              t = new Date().getTime() - t0;
+              if (ex == null) {
+                layout1.warn(t + ": response " + seqnum + ": " + result);
+              } else {
+                layout1.warn(t + ": exception " + seqnum + ": " + ex);
+              }
+            }, "sleep", i.toString());  // FIXME: Why is this sent as a string?
+
+          t = new Date().getTime() - t0;
+          seqnum = mycall.getSequenceNumber();
+          mycalls[seqnum] = mycall;
+          layout1.warn(t + ": request " + seqnum + " = " + i.toString());
+        }
+      });
+
+      abort.addEventListener("execute", function() {
+        for (seqnum in mycalls) {
+          if (mycalls[seqnum] !== null) {
+            rpc.abort(mycalls[seqnum]);
+            mycalls[seqnum] = null;
+          }
+        }
+        mycalls = [];
+      });
+
+      var d = qx.ui.core.ClientDocument.getInstance();
+      d.add(layout1);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/RPC_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/RPC_3.html
new file mode 100644 (file)
index 0000000..843818d
--- /dev/null
@@ -0,0 +1,240 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+  <script type="text/javascript" src=".qxrpc"></script>
+  <!-- With the above script, the service URL for a J2EE application can be
+       automatically determined, no matter on what path it's deployed. -->
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for RPC functionality.</p>
+    <p>
+      This test calls a whole set of functions to test each of the primitive
+      data types.  The comparison results should all end with ": true", and
+      the last test generates an Application Error (#1000).  No other test
+      generates that error, so receiving it means the complete set of tests
+      was run.
+    </p>
+    <p>
+      These functions all use the synchronous interface.  You should not use
+      the synchronous interface because with some browsers, the entire browser
+      environment locks up during a synchronous call.  If the server hangs for
+      a minute or two, so will the browser!  You have been warned.
+    </p>
+  </div>
+
+  <script type="text/javascript">
+//    qx.Settings.setCustomOfClass("qx.io.remote.Exchange", "enableDebug", true);
+    qx.Settings.setCustomOfClass("qx.io.Json", "enableDebug", true);
+
+    qx.core.Init.getInstance().defineMain(function() { var layout1 = new
+    qx.ui.layout.VerticalBoxLayout(); layout1.setTop(40); layout1.setLeft(20);
+    layout1.setSpacing(4);
+
+      layout1.add(new qx.ui.basic.Label("URL:"));
+      var defaultURL = qx.io.remote.Rpc.makeServerURL();
+      if (defaultURL == null) {
+        defaultURL = "/services/";
+      }
+      var url = new qx.ui.form.TextField(defaultURL);
+      layout1.add(url);
+
+      layout1.add(new qx.ui.basic.Label("Service path:"));
+      var service = new qx.ui.form.TextField("qooxdoo.test");
+      layout1.add(service);
+
+      var start = new qx.ui.form.Button("Start test");
+      layout1.add(start);
+
+      var rpc;
+      var mycall = null;
+      var test;
+
+      start.addEventListener("execute", function() {
+        try
+        {
+          var rpc = new qx.io.remote.Rpc(url.getValue(), service.getValue());
+          rpc.setTimeout(10000);
+
+          test = "getCurrentTimestamp";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test);
+          layout1.warn("result: now=" + result.now);
+          layout1.warn("result: jsonDate=" + result.json.toString());
+
+          test = "getInteger";
+          layout1.warn("Calling '" + test + "'");
+          var result = rpc.callSync(test);
+          layout1.warn("result: {" + result + "}");
+          layout1.warn("Returns a number, got " + typeof(result) + ": " + (typeof(result) == "number" && isFinite(result) ? "true" : "false"));
+
+          test = "isInteger";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test, 1);
+          layout1.warn("result: {" + result + "}");
+          layout1.warn("Returns an integer: " + result);
+
+          test = "getString";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test);
+          layout1.warn("result: {" + result + "}");
+          layout1.warn("Returns a string: " + (typeof(result) == "string"));
+
+          test = "isString";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test, "Hello World");
+          layout1.warn("result: {" + result + "}");
+          layout1.warn("Returns a string: " + result);
+
+          test = "getNull";
+          layout1.warn("Calling '" + test + "'");
+          var result = rpc.callSync(test);
+          layout1.warn("result: {" + result + "}");
+          layout1.warn("Returns null: " + (typeof(result) == "object" && result === null ? "true" : "false"));
+
+          test = "isNull";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test, null);
+          layout1.warn("result: {" + result + "}");
+          layout1.warn("Returns null: " + result);
+
+          test = "getArrayInteger";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test);
+          layout1.warn("result: {" + result + "}");
+          layout1.warn("Returns an array: " + ((typeof(result) == "object") && (result instanceof Array)));
+
+          test = "getArrayString";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test);
+          layout1.warn("result: {" + result + "}");
+          layout1.warn("Returns an array: " + ((typeof(result) == "object") && (result instanceof Array)));
+
+          var dataArray = new Array(5);
+
+          for (i=0; i<5; i++)
+          {
+            dataArray[i] = i;
+          };
+
+          test = "isArray";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test, dataArray);
+          layout1.warn("result: {" + result + "}");
+
+          dataArray = new Array(5);
+
+          for (i=0; i<5; i++)
+          {
+            dataArray[i] = "Element " + i;
+          };
+
+          test = "isArray";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test, dataArray);
+          layout1.warn("result: {" + result + "}");
+
+          test = "getFloat";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test);
+          layout1.warn("result: {" + result + "}");
+          layout1.warn("Returns a float: " + (typeof(result) == "number"));
+
+          test = "getObject";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test);
+          layout1.warn("result: {" + result + "}");
+          layout1.warn("Returns an object: " + (typeof(result) == "object"));
+
+          test = "isObject";
+          layout1.warn("Calling '" + test + "'");
+          obj = new Object();
+          obj.s = "Hi there.";
+          obj.n = 23;
+          obj.o = new Object();
+          obj.o.s = "This is a test.";
+          result = rpc.callSync(test, obj);
+          layout1.warn("result: {" + result.toString() + "}");
+          layout1.warn("Returns an object: " + result);
+
+          test = "getTrue";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test);
+          layout1.warn("result: {" + result.toString() + "}");
+          layout1.warn("Returns a boolean = true: " + (typeof(result) == "boolean"));
+
+          test = "getFalse";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test);
+          layout1.warn("result: {" + result.toString() + "}");
+          layout1.warn("Returns a boolean = false: " + (typeof(result) == "boolean"));
+
+          test = "isBoolean";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test, true);
+          layout1.warn("result: {" + result.toString() + "}");
+          layout1.warn("Returns a boolean: " +  result);
+
+          test = "isBoolean";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test, false);
+          layout1.warn("result: {" + result.toString() + "}");
+          layout1.warn("Returns a boolean: " + result);
+
+          Date.prototype.classname = "Date";
+          var date = new Date();
+          test = "getParam";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test, date);
+          layout1.warn("result: {" + result + "}");
+          layout1.warn("Returns a date object, got " + (result.classname == date.classname));
+          layout1.warn("Returns matching time " + date.getTime() + " = " + result.getTime() + " :" + (result.getTime() == date.getTime()));
+
+          dataArray = new Array();
+          dataArray[0] = true;
+          dataArray[1] = false;
+          dataArray[2] = 1;
+          dataArray[3] = 1.1;
+          dataArray[4] = "Hello World";
+          dataArray[5] = new Array(5);
+          dataArray[6] = new Object();
+          dataArray[7] = new Date();
+
+          test = "getParams";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test, dataArray[0], dataArray[1], dataArray[2], dataArray[3], dataArray[4], dataArray[5], dataArray[6], dataArray[7]);
+          layout1.warn("result: {" + result + "}");
+
+          for (i=0; i< dataArray.length; i++)
+          {
+            layout1.warn("Returned parameter (" + i + ") value '" + result[i] + "' matches '" + dataArray[i] + "': " + (result[i].toString() == dataArray[i].toString()));
+            layout1.warn("Returned parameter (" + i + ") type '" + typeof(result[i]) + "' matches '" + typeof(dataArray[i]) + "': " + (typeof(result[i]) == typeof(dataArray[i])));
+          };
+
+          test = "getError";
+          layout1.warn("Calling '" + test + "'");
+          result = rpc.callSync(test);
+          // should never get here; we should receive an exception
+          layout1.warn("ERROR: Should have received an exception!  Got: " + result);
+
+        }
+        catch (ex)
+        {
+          alert("Exception on test " + test + ": " + ex);
+        }
+      });
+
+      var d = qx.ui.core.ClientDocument.getInstance();
+      d.add(layout1);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/RPC_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/RPC_4.html
new file mode 100644 (file)
index 0000000..6282681
--- /dev/null
@@ -0,0 +1,470 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+  <script type="text/javascript" src=".qxrpc"></script>
+  <!-- With the above script, the service URL for a J2EE application can be
+       automatically determined, no matter on what path it's deployed. -->
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p><strong>Only works together with a RPC backend!</strong></p>
+    <p>Test for RPC functionality.</p>
+    <p>
+      This test calls a whole set of functions to test each of the primitive
+      data types.  The comparison results should all end with ": true", and
+      the last test generates an Application Error (#1000).  No other test
+      generates that error, so receiving it means the complete set of tests
+      was run.
+    </p>
+    <p>
+      These functions all use the asynchronous interface.  This is the
+      interface that your applications should use.  See the warning in
+      RPC_3.html regarding use of the synchronous interface.
+    </p>
+  </div>
+
+  <script type="text/javascript">
+    qx.Settings.setCustomOfClass("qx.io.Json", "enableDebug", true);
+
+    qx.core.Init.getInstance().defineMain(function() {
+      var layout1 = new qx.ui.layout.VerticalBoxLayout();
+      layout1.setTop(40);
+      layout1.setLeft(20);
+      layout1.setSpacing(4);
+
+      var crossDomain = new qx.ui.form.CheckBox("Cross Domain");
+      layout1.add(crossDomain);
+
+      layout1.add(new qx.ui.basic.Label("URL:"));
+      var defaultURL = qx.io.remote.Rpc.makeServerURL();
+      if (defaultURL == null) {
+        defaultURL = "/services/";
+      }
+      var url = new qx.ui.form.TextField(defaultURL);
+      layout1.add(url);
+
+      layout1.add(new qx.ui.basic.Label("Service path:"));
+      var service = new qx.ui.form.TextField("qooxdoo.test");
+      layout1.add(service);
+
+      var start = new qx.ui.form.Button("Start test");
+      layout1.add(start);
+
+      var mycall = null;
+      var test;
+      var testNum;
+
+      start.addEventListener("execute", function() {
+        var obj;
+        var date;
+        var dataArray;
+
+        /*
+         * Create an array of each of the tests.  Each array element is itself
+         * an array of two function: the first to issue the test request, and
+         * the second to validate the result.
+         */
+        var tests =
+          [
+            [
+              function()
+              {
+                test = "getCurrentTimestamp";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: now=" + result.now);
+                layout1.warn("result: jsonDate=" + result.json.toString());
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "getInteger";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result + "}");
+                layout1.warn("Returns a number, got " + typeof(result) + ": " + (typeof(result) == "number" && isFinite(result) ? "true" : "false"));
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "isInteger";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test, 1);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result + "}");
+                layout1.warn("Returns an integer: " + result);
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "getString";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result + "}");
+                layout1.warn("Returns a string: " + (typeof(result) == "string"));
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "isString";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test, "Hello World");
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result + "}");
+                layout1.warn("Returns a string: " + result);
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "getNull";
+                layout1.warn("Calling '" + test + "'");
+                var mycall = rpc.callAsync(handler, test);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result + "}");
+                layout1.warn("Returns null: " + (typeof(result) == "object" && mycall === null ? "true" : "false"));
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "isNull";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test, null);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result + "}");
+                layout1.warn("Returns null: " + result);
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "getArrayInteger";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result + "}");
+                layout1.warn("Returns an array: " + ((typeof(result) == "object") && (result instanceof Array)));
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "getArrayString";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result + "}");
+                layout1.warn("Returns an array: " + ((typeof(result) == "object") && (result instanceof Array)));
+              }
+            ],
+
+            [
+              function()
+              {
+                dataArray = new Array(5);
+
+                for (i=0; i<5; i++)
+                {
+                  dataArray[i] = i;
+                };
+
+                test = "isArray";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test, dataArray);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result + "}");
+                layout1.warn("Returns an array: " + result);
+              }
+            ],
+
+            [
+              function()
+              {
+                dataArray = new Array(5);
+
+                for (i=0; i<5; i++)
+                {
+                  dataArray[i] = "Element " + i;
+                };
+
+                test = "isArray";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test, dataArray);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result + "}");
+                layout1.warn("Returns an array: " + result);
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "getFloat";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result + "}");
+                layout1.warn("Returns a float: " + (typeof(result) == "number"));
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "getObject";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result + "}");
+                layout1.warn("Returns an object: " + (typeof(result) == "object"));
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "isObject";
+                layout1.warn("Calling '" + test + "'");
+                obj = new Object();
+                obj.s = "Hi there.";
+                obj.n = 23;
+                obj.o = new Object();
+                obj.o.s = "This is a test.";
+                mycall = rpc.callAsync(handler, test, obj);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result.toString() + "}");
+                layout1.warn("Returns an object: " + result);
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "isBoolean";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test, false);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result.toString() + "}");
+                layout1.warn("Returns a boolean: " + result);
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "isBoolean";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test, true);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result.toString() + "}");
+                layout1.warn("Returns a boolean: " +  result);
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "getTrue";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result.toString() + "}");
+                layout1.warn("Returns a boolean = true: " + (typeof(result) == "boolean"));
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "getFalse";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result.toString() + "}");
+                layout1.warn("Returns a boolean = false: " + (typeof(result) == "boolean"));
+              }
+            ],
+
+            [
+              function()
+              {
+                Date.prototype.classname = "Date";
+                date = new Date();
+                test = "getParam";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test, date);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result + "}");
+                layout1.warn("Returns a date object, got " + (result.classname == date.classname));
+                layout1.warn("Returns matching time " + date.getTime() + " = " + result.getTime() + " :" + (result.getTime() == date.getTime()));
+              }
+            ],
+
+            [
+              function()
+              {
+                dataArray = new Array();
+                dataArray[0] = true;
+                dataArray[1] = false;
+                dataArray[2] = 1;
+                dataArray[3] = 1.1;
+                dataArray[4] = "Hello World";
+                dataArray[5] = new Array(5);
+                dataArray[6] = new Object();
+                dataArray[7] = new Date();
+
+                test = "getParams";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test, dataArray[0], dataArray[1], dataArray[2], dataArray[3], dataArray[4], dataArray[5], dataArray[6], dataArray[7]);
+              },
+
+              function(result)
+              {
+                layout1.warn("result: {" + result + "}");
+
+                for (i=0; i< dataArray.length; i++)
+                {
+                  layout1.warn("Returned parameter (" + i + ") value '" + result[i] + "' matches '" + dataArray[i] + "': " + (result[i].toString() == dataArray[i].toString()));
+                  layout1.warn("Returned parameter (" + i + ") type '" + typeof(result[i]) + "' matches '" + typeof(dataArray[i]) + "': " + (typeof(result[i]) == typeof(dataArray[i])));
+                };
+              }
+            ],
+
+            [
+              function()
+              {
+                test = "getError";
+                layout1.warn("Calling '" + test + "'");
+                mycall = rpc.callAsync(handler, test);
+              },
+
+              function(result)
+              {
+                // should never get here; we should receive an exception
+                layout1.warn("ERROR: Should have received an exception!  Got: " + result);
+              }
+            ]
+          ];
+
+        /*
+         * This is the generic handler, used by each of the tests.  It
+         * ascertains whether an exception occured and alert()s with the
+         * exception if so; otherwise it calls the result validation function
+         * and then starts the next test.
+         */
+        handler = function(result, ex, id) {
+          mycall = null;
+          if (ex !== null) {
+            alert("Async(" + id + ") exception: " + ex);
+          } else {
+            // display results of the completed test
+            tests[testNum][1](result);  // [][1] = validate response
+
+            // start the next test
+            ++testNum;
+
+            // Are we done?
+            if (testNum < tests.length) {
+              // Nope.  Run the next test.
+              tests[testNum][0]();
+            }
+          }
+        }
+
+        // Determine which transport to use
+        rpc = new qx.io.remote.Rpc(url.getValue(), service.getValue());
+        rpc.setTimeout(10000);
+        rpc.setCrossDomain(crossDomain.isChecked());
+
+        // start the first test
+        testNum = 0;
+        tests[testNum][0]();            // [][0] = request
+      });
+
+      var d = qx.ui.core.ClientDocument.getInstance();
+      d.add(layout1);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/RPC_5.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/RPC_5.html
new file mode 100644 (file)
index 0000000..44f9493
--- /dev/null
@@ -0,0 +1,95 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+  <script type="text/javascript" src=".qxrpc"></script>
+  <!-- With the above script, the service URL for a J2EE application can be
+       automatically determined, no matter on what path it's deployed. -->
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p><strong>Only works together with a RPC backend!</strong></p>
+    <p>Test for RPC functionality.</p>
+    <p>
+      This test calls remote function getParams(), passing a defined field in
+      an object, and an undefined field in an object.  Depending on the
+      setting of qx.core.Settings.jsonEncodeUndefined, the undefined field
+      should or should not be sent.  We also send some (ignored) server data
+      in this test, if requested.
+    </p>
+  </div>
+
+  <script type="text/javascript">
+//    qx.Settings.setCustomOfClass("qx.io.remote.Exchange", "enableDebug", true);
+    qx.Settings.setCustomOfClass("qx.io.Json", "enableDebug", true);
+
+    qx.core.Init.getInstance().defineMain(function() {
+      var layout1 = new qx.ui.layout.VerticalBoxLayout();
+      layout1.setTop(40);
+      layout1.setLeft(20);
+      layout1.setSpacing(4);
+
+      var encodeUndefined = new qx.ui.form.CheckBox("Encode 'undefined' as null");
+      layout1.add(encodeUndefined);
+
+      var sendServerData = new qx.ui.form.CheckBox("Send server data");
+      layout1.add(sendServerData);
+
+      layout1.add(new qx.ui.basic.Label("URL:"));
+      var defaultURL = qx.io.remote.Rpc.makeServerURL();
+      if (defaultURL == null) {
+        defaultURL = "/services/";
+      }
+      var url = new qx.ui.form.TextField(defaultURL);
+      layout1.add(url);
+
+      layout1.add(new qx.ui.basic.Label("Service:"));
+      var service = new qx.ui.form.TextField("qooxdoo.test");
+      layout1.add(service);
+
+      var start = new qx.ui.form.Button("Start test");
+      layout1.add(start);
+
+      // We'll be setting url and service upon execute; no need to do it now.
+      var rpc = new qx.io.remote.Rpc();
+      rpc.setTimeout(10000);
+      var mycall = null;
+
+      start.addEventListener("execute", function() {
+        // Allow the user to reset the URL and Service on each call
+        rpc.setUrl(url.getValue());
+        rpc.setServiceName(service.getValue());
+        rpc.setCrossDomain(false);
+
+        if (sendServerData.isChecked()) {
+          rpc.setServerData(new Date());
+        } else {
+          rpc.setServerData(undefined);
+        }
+
+        qx.Settings.setCustomOfClass("qx.io.Json", "encodeUndefined",
+                                     encodeUndefined.isChecked());
+
+        try {
+          obj = new Object();
+          obj.def = "defined";
+          var result = rpc.callSync("getParams", obj.undef, obj.def);
+          alert("Sync result: " + result);
+        } catch (ex) {
+          alert("Sync exception: " + ex);
+        }
+      });
+
+      var d = qx.ui.core.ClientDocument.getInstance();
+      d.add(layout1);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/SplitPane_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/SplitPane_1.html
new file mode 100644 (file)
index 0000000..aa12e85
--- /dev/null
@@ -0,0 +1,91 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test for Splitpane functionality with enabled live resize.</p>
+  </div>
+
+  <script type="text/javascript">
+
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var frame = new qx.ui.layout.CanvasLayout;
+    frame.setLocation(20, 48);
+    frame.setBottom(48);
+    frame.setRight(300);
+    frame.setBackgroundColor("#134275");
+    frame.setPadding(20);
+    frame.addToDocument();
+
+    // the splitpane itself
+    var splitpane = new qx.ui.splitpane.HorizontalSplitPane("1*", "2*");
+    splitpane.setEdge(0);
+    frame.add(splitpane);
+
+    // left Widget
+    var leftWidget = new qx.ui.form.TextArea("LeftWidget");
+    leftWidget.setWrap(true);
+    leftWidget.setBackgroundColor(new qx.renderer.color.Color("white"));
+    leftWidget.setWidth("100%");
+    leftWidget.setHeight("100%");
+
+    // rightWidget (another splitpane)
+    var rightWidget = new qx.ui.splitpane.VerticalSplitPane;
+    rightWidget.setHeight("100%");
+    rightWidget.setWidth("100%");
+
+    // add widgets to splitpane
+    splitpane.addLeft(leftWidget);
+    splitpane.addRight(rightWidget);
+
+
+
+    // right top widget
+    var topWidget = new qx.ui.form.TextArea("Right Top Widget");
+    topWidget.setBackgroundColor(new qx.renderer.color.Color("white"));
+    topWidget.setHeight("100%");
+    topWidget.setWidth("100%");
+
+    // right bottom widget
+    var bottomWidget = new qx.ui.embed.Iframe("http://www.qooxdoo.org");
+    bottomWidget.setHeight("100%");
+    bottomWidget.setWidth("100%");
+
+    // add widgets to right splitpane
+    rightWidget.addTop(topWidget);
+    rightWidget.addBottom(bottomWidget);
+
+
+
+
+    var toggleButton = new qx.ui.form.Button("Toggle Layout", "icon/16/rotate.png");
+    toggleButton.setBottom(48);
+    toggleButton.setLeft(20);
+    toggleButton.addToDocument();
+    toggleButton.addEventListener("execute", function(e)
+    {
+      if (splitpane.getOrientation() == "horizontal")
+      {
+        splitpane.setOrientation("vertical");
+        rightWidget.setOrientation("horizontal");
+      }
+      else
+      {
+        splitpane.setOrientation("horizontal");
+        rightWidget.setOrientation("vertical");
+      }
+    });
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Table_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Table_1.html
new file mode 100644 (file)
index 0000000..720f0eb
--- /dev/null
@@ -0,0 +1,50 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>The default table using divs and nodeValue.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    // table model
+    var tableModel = new qx.ui.table.SimpleTableModel();
+    tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
+    var rowData = [];
+    var now = new Date().getTime();
+    var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
+    for (var row = 0; row < 100; row++) {
+      var date = new Date(now + Math.random() * dateRange - dateRange / 2);
+      rowData.push([ row, Math.random() * 10000, date, (Math.random() > 0.5) ]);
+    }
+    tableModel.setData(rowData);
+    tableModel.setColumnEditable(1, true);
+    tableModel.setColumnEditable(2, true);
+  
+    // table
+    var table = new qx.ui.table.Table(tableModel);
+    with (table) {
+      set({ left:10, top:30, right:300, bottom:30, border:qx.renderer.border.BorderPresets.getInstance().thinInset });
+      setMetaColumnCounts([1, -1]);
+      getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
+      getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
+    };
+
+    d.add(table);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Table_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Table_2.html
new file mode 100644 (file)
index 0000000..5f44bfa
--- /dev/null
@@ -0,0 +1,52 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>a table using divs and Array.join.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    qx.ui.table.TablePane.USE_ARRAY_JOIN = true;
+
+    // table model
+    var tableModel = new qx.ui.table.SimpleTableModel();
+    tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
+    var rowData = [];
+    var now = new Date().getTime();
+    var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
+    for (var row = 0; row < 100; row++) {
+      var date = new Date(now + Math.random() * dateRange - dateRange / 2);
+      rowData.push([ row, Math.random() * 10000, date, (Math.random() > 0.5) ]);
+    }
+    tableModel.setData(rowData);
+    tableModel.setColumnEditable(1, true);
+    tableModel.setColumnEditable(2, true);
+  
+    // table
+    var table = new qx.ui.table.Table(tableModel);
+    with (table) {
+      set({ left:10, top:30, right:300, bottom:30, border:qx.renderer.border.BorderPresets.getInstance().thinInset });
+      setMetaColumnCounts([1, -1]);
+      getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
+      getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
+    };
+
+    d.add(table);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Table_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Table_3.html
new file mode 100644 (file)
index 0000000..cd0a0b2
--- /dev/null
@@ -0,0 +1,52 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>A table using table elements and nodeValue.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    qx.ui.table.TablePane.USE_TABLE = true;
+
+    // table model
+    var tableModel = new qx.ui.table.SimpleTableModel();
+    tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
+    var rowData = [];
+    var now = new Date().getTime();
+    var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
+    for (var row = 0; row < 100; row++) {
+      var date = new Date(now + Math.random() * dateRange - dateRange / 2);
+      rowData.push([ row, Math.random() * 10000, date, (Math.random() > 0.5) ]);
+    }
+    tableModel.setData(rowData);
+    tableModel.setColumnEditable(1, true);
+    tableModel.setColumnEditable(2, true);
+  
+    // table
+    var table = new qx.ui.table.Table(tableModel);
+    with (table) {
+      set({ left:10, top:30, right:300, bottom:30, border:qx.renderer.border.BorderPresets.getInstance().thinInset });
+      setMetaColumnCounts([1, -1]);
+      getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
+      getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
+    };
+
+    d.add(table);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Table_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Table_4.html
new file mode 100644 (file)
index 0000000..7ebdb5b
--- /dev/null
@@ -0,0 +1,53 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>A table using table elements and Array.join.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    qx.ui.table.TablePane.USE_TABLE = true;
+    qx.ui.table.TablePane.USE_ARRAY_JOIN = true;
+
+    // table model
+    var tableModel = new qx.ui.table.SimpleTableModel();
+    tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
+    var rowData = [];
+    var now = new Date().getTime();
+    var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
+    for (var row = 0; row < 100; row++) {
+      var date = new Date(now + Math.random() * dateRange - dateRange / 2);
+      rowData.push([ row, Math.random() * 10000, date, (Math.random() > 0.5) ]);
+    }
+    tableModel.setData(rowData);
+    tableModel.setColumnEditable(1, true);
+    tableModel.setColumnEditable(2, true);
+  
+    // table
+    var table = new qx.ui.table.Table(tableModel);
+    with (table) {
+      set({ left:10, top:30, right:300, bottom:30, border:qx.renderer.border.BorderPresets.getInstance().thinInset });
+      setMetaColumnCounts([1, -1]);
+      getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
+      getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
+    };
+
+    d.add(table);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Table_5.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Table_5.html
new file mode 100644 (file)
index 0000000..f36e96e
--- /dev/null
@@ -0,0 +1,55 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>A table having few rows.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    //qx.dev.log.Logger.ROOT_LOGGER.addAppender(new qx.dev.log.WindowAppender);
+
+    // table model
+    var tableModel = new qx.ui.table.SimpleTableModel();
+    tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
+    var rowData = [];
+    var now = new Date().getTime();
+    var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
+    for (var row = 0; row < 20; row++) {
+      var date = new Date(now + Math.random() * dateRange - dateRange / 2);
+      rowData.push([ row, Math.random() * 10000, date, (Math.random() > 0.5) ]);
+    }
+    tableModel.setData(rowData);
+    tableModel.setColumnEditable(1, true);
+    tableModel.setColumnEditable(2, true);
+
+    // table
+    var table = new qx.ui.table.Table(tableModel);
+    with (table) {
+      set({ left:10, top:30, right:300, bottom:30, border:qx.renderer.border.BorderPresets.getInstance().thinInset });
+      setMetaColumnCounts([1, -1]);
+      getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
+      getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
+      setColumnWidth(0, 80);
+      setColumnWidth(1, 200);
+      setColumnWidth(2, 150);
+    };
+
+    d.add(table);
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ToolBar_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ToolBar_1.html
new file mode 100644 (file)
index 0000000..9287087
--- /dev/null
@@ -0,0 +1,227 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Introduce qx.ui.menu.Menu which opens on qx.ui.toolbar.ToolBarMenuButtons.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var tb = new qx.ui.toolbar.ToolBar;
+      with(tb)
+      {
+        setTop(48);
+        setLeft(20);
+        setRight(335);
+      };
+
+      var m1 = new qx.ui.menu.Menu;
+
+      var mb1 = new qx.ui.menu.Button("Folder");
+      var ms1 = new qx.ui.menu.Separator;
+      var mb2 = new qx.ui.menu.Button("Word Document");
+      var mb3 = new qx.ui.menu.Button("Text File");
+      var mb4 = new qx.ui.menu.Button("Image");
+
+      m1.add(mb1, ms1, mb2, mb3, mb4);
+      d.add(m1);
+
+
+      var m2 = new qx.ui.menu.Menu;
+
+      var mb5 = new qx.ui.menu.Button("Copy", "icon/16/edit-copy.png");
+      var mb6 = new qx.ui.menu.Button("Move", "icon/16/edit-cut.png");
+      var mb7 = new qx.ui.menu.Button("Delete", "icon/16/edit-delete.png");
+
+      m2.add(mb5, mb6, mb7);
+      d.add(m2);
+
+
+
+
+      var btns1 = [
+        { type : "menu", icon : "file-new", label : "New", menu : m1 },
+        { type : "menu", icon : "edit", label : "Edit", menu : m2 }
+      ];
+
+      var btns2 = [
+        { type : "button", icon : "up", label : "Upload" },
+        { type : "button", icon : "down", label : "Download" }
+      ];
+
+      var btns3 = [
+        { type : "button", icon : "idea", label : "Tip" },
+        { type : "button", icon : "help", label : "Help" }
+      ];
+
+      var bars = [ btns1, btns2, btns3 ];
+
+      function changeLayout(e) {
+        this.setShow(e.getData());
+      };
+
+      var useParts = true;
+
+
+      for (var j=0; j<bars.length; j++)
+      {
+        var btns = bars[j];
+
+        if (useParts) {
+          var tbp = new qx.ui.toolbar.Part;
+        };
+
+        for (var i=0; i<btns.length; i++)
+        {
+          var btn = btns[i];
+
+          switch(btn.type)
+          {
+            case "separator":
+              var o = new qx.ui.toolbar.Separator;
+              break;
+
+            case "menu":
+              var o = new qx.ui.toolbar.MenuButton(btn.label, btn.menu, "icon/22/" + btn.icon + ".png", 22, 22);
+
+              // beautiful decoupling: toolbar buttons don't know about radio boxes
+
+              // uncomment this to omit changes on one button
+              // if (btn.icon != "upload")
+              d.addEventListener("changeLayout", changeLayout, o );
+              break;
+
+            case "button":
+              var o = new qx.ui.toolbar.Button(btn.label, "icon/22/" + btn.icon + ".png");
+
+              // beautiful decoupling: toolbar buttons don't know about radio boxes
+
+              // uncomment this to omit changes on one button
+              // if (btn.icon != "upload")
+              d.addEventListener("changeLayout", changeLayout, o );
+              break;
+          };
+
+          if (useParts)
+          {
+            tbp.add(o);
+          }
+          else
+          {
+            tb.add(o);
+          };
+        };
+
+        if (useParts) {
+          tb.add(tbp);
+        };
+      };
+
+      d.add(tb);
+
+
+      var rd1 = new qx.ui.form.RadioButton("Show Icons and Label", "both");
+      var rd2 = new qx.ui.form.RadioButton("Show Icons", "icon");
+      var rd3 = new qx.ui.form.RadioButton("Show Label", "label");
+
+      with(rd1)
+      {
+        setTop(140);
+        setLeft(20);
+        setChecked(true);
+      };
+
+      with(rd2)
+      {
+        setTop(160);
+        setLeft(20);
+      };
+
+      with(rd3)
+      {
+        setTop(180);
+        setLeft(20);
+      };
+
+
+      var rbm = new qx.manager.selection.RadioManager();
+
+      rbm.add(rd1);
+      rbm.add(rd2);
+      rbm.add(rd3);
+
+
+      // beautiful decoupling: radio boxes don't know about toolbar buttons
+      rbm.addEventListener("changeSelected", function(e) {
+        d.dispatchEvent( new qx.event.type.DataEvent("changeLayout", e.getData().getValue() ) );
+      });
+
+      d.add(rd1, rd2, rd3);
+
+
+
+
+
+      // Alignment
+      var ra1 = new qx.ui.form.RadioButton("Left Aligned", "left");
+      var ra2 = new qx.ui.form.RadioButton("Centered", "center");
+      var ra3 = new qx.ui.form.RadioButton("Right Aligned", "right");
+
+      with(ra1)
+      {
+        setTop(140);
+        setLeft(220);
+        setChecked(true);
+      };
+
+      with(ra2)
+      {
+        setTop(160);
+        setLeft(220);
+      };
+
+      with(ra3)
+      {
+        setTop(180);
+        setLeft(220);
+      };
+
+
+      var ram = new qx.manager.selection.RadioManager();
+
+      ram.add(ra1);
+      ram.add(ra2);
+      ram.add(ra3);
+
+      d.add(ra1, ra2, ra3);
+
+      ram.addEventListener("changeSelected", function(e) {
+        tb.setHorizontalChildrenAlign(e.getData().getValue());
+      });
+
+
+
+
+
+
+
+      // Icon & Color Themes
+      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 248);
+      qx.manager.object.ColorManager.getInstance().createThemeList(d, 220, 248);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ToolBar_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ToolBar_2.html
new file mode 100644 (file)
index 0000000..8eb9841
--- /dev/null
@@ -0,0 +1,113 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Create ten toolbars. Stress Test.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var btns1 = [
+        { type : "button", icon : "file-new", text : "New" },
+        { type : "separator" },
+        { type : "button", icon : "edit-copy", text : "Copy" },
+        { type : "button", icon : "edit-cut", text : "Cut" },
+        { type : "button", icon : "edit-paste", text : "Paste" }
+      ];
+
+      var btns2 = [
+        { type : "button", icon : "up", text : "Upload" },
+        { type : "button", icon : "down", text : "Download" }
+      ];
+
+      var btns3 = [
+        { type : "button", icon : "help", text : "Hilfe" }
+      ];
+
+      var bars = [ btns1, btns2, btns3 ];
+
+      function changeLayout(e) {
+        this.setShow(e.getData());
+      };
+      
+      function changeSize(e) {
+        var v = e.getData();
+        var o = v == 22 ? 32 : 22;
+        
+        this.setIcon(this.getIcon().replace(o, v));
+      };      
+
+      var useParts = true;
+
+      for (var k=0; k<10; k++)
+      {
+        var tb = new qx.ui.toolbar.ToolBar;
+        with(tb)
+        {
+          setTop(48+(k*50));
+          setLeft(20);
+          setRight(335);
+        };        
+        
+        for (var j=0; j<bars.length; j++)
+        {
+          var btns = bars[j];
+  
+          if (useParts) {
+            var tbp = new qx.ui.toolbar.Part;
+          };
+  
+          for (var i=0; i<btns.length; i++)
+          {
+            var btn = btns[i];
+  
+            switch(btn.type)
+            {
+              case "separator":
+                var o = new qx.ui.toolbar.Separator;
+                break;
+  
+              case "button":
+                var o = new qx.ui.toolbar.Button(btn.text, "icon/22/" + btn.icon + ".png");
+  
+                // beautiful decoupling: toolbar buttons don't know about radio boxes
+  
+                d.addEventListener("changeLayout", changeLayout, o);
+                d.addEventListener("changeSize", changeSize, o);
+                break;
+            };
+  
+            if (useParts)
+            {
+              tbp.add(o);
+            }
+            else
+            {
+              tb.add(o);
+            };
+          };
+  
+          if (useParts) {
+            tb.add(tbp);
+          };
+        };
+  
+        d.add(tb);
+      };
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ToolBar_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ToolBar_3.html
new file mode 100644 (file)
index 0000000..0dc31bf
--- /dev/null
@@ -0,0 +1,39 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing the new flash support for qx.ui.toolbar.ToolBarButtons (inherited from qx.ui.basic.Atom).</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+      
+      var tb = new qx.ui.toolbar.ToolBar;
+      
+      tb.setTop(48);
+      tb.setLeft(20);
+      tb.setRight(335);
+      
+      d.add(tb);
+      
+      for (var i=1; i<8; i++)
+      {
+        var tbb = new qx.ui.toolbar.Button("Flash #" + i, "icon/22/reload.png", 22, 22, "./image/flash/color/file" + i + ".swf");        
+        tb.add(tbb);
+      };    
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ToolBar_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/ToolBar_4.html
new file mode 100644 (file)
index 0000000..4f5743f
--- /dev/null
@@ -0,0 +1,193 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Again a nice example which shows how to use qx.ui.toolbar.ToolBar as a menubar system.</p>
+    <p>Added some parts and a new flex zone which aligns the help button to the right edge</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var d = qx.ui.core.ClientDocument.getInstance();
+
+      var c1 = new qx.client.Command();
+      c1.addEventListener("execute", function(e) {
+        this.debug("Execute: " + e.getData().getLabel());
+      });
+
+
+
+
+      var m1 = new qx.ui.menu.Menu;
+
+      var mb1_01 = new qx.ui.menu.Button("New", null, c1);
+      var mb1_02 = new qx.ui.menu.Button("Open", null, c1);
+      var mb1_03 = new qx.ui.menu.Button("Save", null, c1);
+      var mb1_04 = new qx.ui.menu.Button("Save as", null, c1);
+      var mb1_05 = new qx.ui.menu.Button("Close", null, c1);
+      var mb1_06 = new qx.ui.menu.Button("Restore last saved", null, c1);
+
+      m1.add(mb1_01, mb1_02, mb1_03, mb1_04, mb1_05, mb1_06);
+
+
+      var m2 = new qx.ui.menu.Menu;
+
+      var mb2_01 = new qx.ui.menu.Button("Undo", null, c1);
+      var mb2_02 = new qx.ui.menu.Button("Redo", null, c1);
+      var mb2_b1 = new qx.ui.menu.Separator();
+      var mb2_03 = new qx.ui.menu.Button("Cut", "icon/16/edit-cut.png", c1);
+      var mb2_04 = new qx.ui.menu.Button("Copy", "icon/16/edit-copy.png", c1);
+      var mb2_05 = new qx.ui.menu.Button("Paste", "icon/16/edit-paste.png", c1);
+      var mb2_06 = new qx.ui.menu.Button("Delete", "icon/16/edit-delete.png", c1);
+      var mb2_b2 = new qx.ui.menu.Separator();
+      var mb2_07 = new qx.ui.menu.Button("Select All", null, c1);
+      var mb2_08 = new qx.ui.menu.Button("Find", null, c1);
+      var mb2_09 = new qx.ui.menu.Button("Find Again", null, c1);
+
+
+
+
+      mb2_05.setEnabled(false);
+      mb2_06.setEnabled(false);
+      mb2_09.setEnabled(false);
+
+      m2.add(mb2_01, mb2_02, mb2_b1, mb2_03, mb2_04, mb2_05, mb2_06, mb2_b2, mb2_07, mb2_08, mb2_09);
+
+
+      var m3 = new qx.ui.menu.Menu;
+      var m3_suba = new qx.ui.menu.Menu;
+      var m3_subb = new qx.ui.menu.Menu;
+      var m3_subc = new qx.ui.menu.Menu;
+      var m3_subd = new qx.ui.menu.Menu;
+
+      var mb3_01 = new qx.ui.menu.CheckBox("File List", c1, false);
+      var mb3_02 = new qx.ui.menu.CheckBox("Syntax Highlighting", c1, true);
+      var mb3_03 = new qx.ui.menu.CheckBox("Statusbar", c1, true);
+      var mb3_b1 = new qx.ui.menu.Separator();
+      var mb3_04 = new qx.ui.menu.Button("Printer Font", null, null, m3_suba);
+      var mb3_05 = new qx.ui.menu.Button("Editor Font", null, null, m3_subb);
+      var mb3_06 = new qx.ui.menu.Button("Export Font", null, null, m3_subc);
+      var mb3_b2 = new qx.ui.menu.Separator();
+      var mb3_07 = new qx.ui.menu.Button("Advanced", null, null, m3_subd);
+
+      m3.add(mb3_01, mb3_02, mb3_03, mb3_b1, mb3_04, mb3_05, mb3_06, mb3_b2, mb3_07);
+
+      var mb3_suba_01 = new qx.ui.menu.Button("Tahoma, 11pt", null, c1);
+      var mb3_suba_02 = new qx.ui.menu.Button("Tahoma, 12pt", null, c1);
+      var mb3_suba_03 = new qx.ui.menu.Button("Tahoma, 13pt", null, c1);
+      var mb3_suba_04 = new qx.ui.menu.Button("Tahoma, 14pt", null, c1);
+      var mb3_suba_05 = new qx.ui.menu.Button("Tahoma, 15pt", null, c1);
+
+      m3_suba.add(mb3_suba_01, mb3_suba_02, mb3_suba_03, mb3_suba_04, mb3_suba_05);
+
+      var mb3_subb_01 = new qx.ui.menu.Button("Verdana, 11pt", null, c1);
+      var mb3_subb_02 = new qx.ui.menu.Button("Verdana, 12pt", null, c1);
+      var mb3_subb_03 = new qx.ui.menu.Button("Verdana, 13pt", null, c1);
+      var mb3_subb_04 = new qx.ui.menu.Button("Verdana, 14pt", null, c1);
+      var mb3_subb_05 = new qx.ui.menu.Button("Verdana, 15pt", null, c1);
+
+      m3_subb.add(mb3_subb_01, mb3_subb_02, mb3_subb_03, mb3_subb_04, mb3_subb_05);
+
+      var mb3_subc_01 = new qx.ui.menu.Button("Courier, 11pt", null, c1);
+      var mb3_subc_02 = new qx.ui.menu.Button("Courier, 12pt", null, c1);
+      var mb3_subc_03 = new qx.ui.menu.Button("Courier, 13pt", null, c1);
+      var mb3_subc_04 = new qx.ui.menu.Button("Courier, 14pt", null, c1);
+      var mb3_subc_05 = new qx.ui.menu.Button("Courier, 15pt", null, c1);
+
+      m3_subc.add(mb3_subc_01, mb3_subc_02, mb3_subc_03, mb3_subc_04, mb3_subc_05);
+
+      var mb3_subd_02_suba = new qx.ui.menu.Menu();
+
+      var mb3_subd_02_suba_01 = new qx.ui.menu.Button("First", null, c1);
+      var mb3_subd_02_suba_02 = new qx.ui.menu.Button("Second", null, c1);
+      var mb3_subd_02_suba_03 = new qx.ui.menu.Button("Third", null, c1);
+
+      mb3_subd_02_suba.add(mb3_subd_02_suba_01, mb3_subd_02_suba_02, mb3_subd_02_suba_03);
+
+      var mb3_subd_01 = new qx.ui.menu.Button("First", null, c1);
+      var mb3_subd_02 = new qx.ui.menu.Button("Second", null, c1, mb3_subd_02_suba);
+      var mb3_subd_03 = new qx.ui.menu.Button("Third", null, c1);
+
+      m3_subd.add(mb3_subd_01, mb3_subd_02, mb3_subd_03);
+
+      var m4 = new qx.ui.menu.Menu;
+
+      var m4_suba = new qx.ui.menu.Menu;
+
+      var mb4_01 = new qx.ui.menu.Button("View", null, c1, m4_suba);
+      var mb4_b1 = new qx.ui.menu.Separator();
+      var mb4_02 = new qx.ui.menu.Button("Editor Preferences...", null, c1);
+      var mb4_03 = new qx.ui.menu.Button("Editor Extensions", null, c1);
+      var mb4_04 = new qx.ui.menu.Button("Framework Preferences", null, c1);
+
+      m4.add(mb4_01, mb4_b1, mb4_02, mb4_03, mb4_04);
+
+      var mb4_suba_01 = new qx.ui.menu.Button("New Window", null, c1);
+      var mb4_suba_b1 = new qx.ui.menu.Separator();
+      var mb4_suba_02 = new qx.ui.menu.RadioButton("Overlapping", c1, true);
+      var mb4_suba_03 = new qx.ui.menu.RadioButton("Split Horizontally", c1);
+      var mb4_suba_04 = new qx.ui.menu.RadioButton("Split Vertically", c1);
+      var mb4_suba_b2 = new qx.ui.menu.Separator();
+      var mb4_suba_05 = new qx.ui.menu.Button("Next Window", null, c1);
+      var mb4_suba_06 = new qx.ui.menu.Button("Previous Window", null, c1);
+
+      m4_suba.add(mb4_suba_01, mb4_suba_b1, mb4_suba_02, mb4_suba_03, mb4_suba_04, mb4_suba_b2, mb4_suba_05, mb4_suba_06);
+
+      var mb4_manager = new qx.manager.selection.RadioManager("windowMode", [ mb4_suba_02, mb4_suba_03, mb4_suba_04 ]);
+
+
+      var m5 = new qx.ui.menu.Menu;
+
+      var mb5_01 = new qx.ui.menu.Button("Help", null, c1);
+      var mb5_02 = new qx.ui.menu.Button("About", null, c1);
+
+      m5.add(mb5_01, mb5_02);
+
+      d.add(m1, m2, m3, m3_suba, m3_subb, m3_subc, m3_subd, mb3_subd_02_suba, m4, m4_suba, m5);
+
+
+      var mb1 = new qx.ui.toolbar.ToolBar;
+
+      mb1.setTop(48);
+      mb1.setRight(335);
+      mb1.setLeft(20);
+
+      var mp1 = new qx.ui.toolbar.Part;
+      var mp2 = new qx.ui.toolbar.Part;
+      var mp3 = new qx.ui.toolbar.Part;
+
+      mb1.add(mp1, mp2, new qx.ui.basic.HorizontalSpacer, mp3);
+
+      var mbb1 = new qx.ui.toolbar.MenuButton("File", m1);
+      var mbb2 = new qx.ui.toolbar.MenuButton("Edit", m2);
+      var mbb3 = new qx.ui.toolbar.MenuButton("View", m3);
+      var mbb4 = new qx.ui.toolbar.MenuButton("Options", m4);
+      var mbb5 = new qx.ui.toolbar.MenuButton("Help", m5);
+
+      mp1.add(mbb1, mbb2);
+      mp2.add(mbb3, mbb4);
+      mp3.add(mbb5);
+
+      d.add(mb1);
+
+
+
+
+      // Icon & Color Themes
+      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 348);
+      qx.manager.object.ColorManager.getInstance().createThemeList(d, 220, 348);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_1.html
new file mode 100644 (file)
index 0000000..ee93447
--- /dev/null
@@ -0,0 +1,196 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Simple test for qooxdoo's transport implementation using some data for an addressbook.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var lay = new qx.ui.layout.VerticalBoxLayout;
+    lay.setLocation(20, 48);
+    lay.setRight(335);
+    lay.setBottom(48);
+    qx.ui.core.ClientDocument.getInstance().add(lay);
+
+
+
+    var fsq = new qx.ui.groupbox.GroupBox("Request");
+    fsq.setHeight("auto");
+    lay.add(fsq);
+
+
+    var hlay = new qx.ui.layout.HorizontalBoxLayout;
+    hlay.setVerticalChildrenAlign("middle");
+    hlay.setSpacing(4);
+    hlay.auto();
+    fsq.add(hlay);
+
+
+    var cm1 = new qx.ui.form.ComboBox();
+    cm1.add(new qx.ui.form.ListItem("data/persons/anita.xml"));
+    cm1.add(new qx.ui.form.ListItem("data/persons/harald.xml"));
+    cm1.add(new qx.ui.form.ListItem("data/persons/lisbeth.xml"));
+    cm1.add(new qx.ui.form.ListItem("data/persons/paul.xml"));
+    cm1.setSelected(cm1.getList().getFirstChild());
+    cm1.setWidth(200);
+    cm1.addEventListener("changeSelected", upd);
+
+    hlay.add(cm1);
+
+
+
+    var async = new qx.ui.form.CheckBox("Async");
+    async.setChecked(true);
+    hlay.add(async);
+
+
+    var spin = new qx.ui.form.Spinner(1);
+    hlay.add(spin);
+
+
+
+    var btn = new qx.ui.form.Button("Send", "icon/16/apply.png");
+    btn.addEventListener("execute", upd);
+    hlay.add(btn);
+
+
+    var inf = new qx.ui.form.TextField("State");
+    inf.setWidth(80);
+    inf.setReadOnly(true);
+    hlay.add(inf);
+
+
+    var code = new qx.ui.form.TextField("Code");
+    code.setWidth(30);
+    code.setReadOnly(true);
+    hlay.add(code);
+
+
+    var typ = new qx.ui.form.TextField("Type");
+    typ.setWidth(80);
+    typ.setReadOnly(true);
+    hlay.add(typ);
+
+
+    var len = new qx.ui.form.TextField("Length");
+    len.setWidth(50);
+    len.setReadOnly(true);
+    hlay.add(len);
+
+
+    var checken = new qx.ui.form.CheckBox("enabled");
+    checken.setChecked(true);
+    hlay.add(checken);
+
+    checken.addEventListener("changeChecked", function(e) {
+      qx.io.remote.RequestQueue.getInstance().setEnabled(e.getData());
+    });
+
+
+
+
+
+    var fsr = new qx.ui.groupbox.GroupBox("Result");
+    fsr.setHeight("1*");
+    lay.add(fsr);
+
+    var area = new qx.ui.form.TextArea;
+    area.setDimension("100%", "100%");
+    fsr.add(area);
+
+
+
+
+
+
+
+
+
+
+    function upd(e)
+    {
+      var val = cm1.getSelected();
+
+      if (!val) {
+        return;
+      };
+
+      var req;
+      for( var i=0, max=parseInt(spin.getValue()); i<max; i++ )
+      {
+        req = new qx.io.remote.Request(val.getLabel(), "GET", "text/plain");
+
+        req.setAsynchronous(async.getChecked());
+        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+
+        req.setParameter("test1", "value1");
+        req.setParameter("test2", "value2");
+        req.setParameter("test3", "value3");
+
+        req.setCrossDomain(false);
+
+        req.addEventListener("sending", function(e) {
+          inf.setValue("Sending");
+        });
+
+        req.addEventListener("receiving", function(e) {
+          inf.setValue("Receiving");
+        });
+
+        req.addEventListener("completed", function(e)
+        {
+          inf.setValue("Completed");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+          area.setValue(e.getData().getContent());
+        });
+
+        req.addEventListener("failed", function(e)
+        {
+          inf.setValue("Failed");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+          area.setValue(e.getData().getContent());
+        });
+
+        req.addEventListener("timeout", function(e)
+        {
+          inf.setValue("Timeout");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+          area.setValue(e.getData().getContent());
+        });
+
+        req.addEventListener("aborted", function(e)
+        {
+          inf.setValue("Aborted");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+          area.setValue(e.getData().getContent());
+        });
+
+        req.send();
+      };
+    };
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_2.html
new file mode 100644 (file)
index 0000000..854bd1f
--- /dev/null
@@ -0,0 +1,190 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing different file sizes with timeouts and other built-in transport features.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var lay = new qx.ui.layout.VerticalBoxLayout;
+    lay.setLocation(20, 48);
+    lay.setRight(335);
+    lay.setBottom(48);
+    qx.ui.core.ClientDocument.getInstance().add(lay);
+
+
+
+    var fsq = new qx.ui.groupbox.GroupBox("Request");
+    fsq.setHeight("auto");
+    lay.add(fsq);
+
+
+    var hlay = new qx.ui.layout.HorizontalBoxLayout;
+    hlay.setVerticalChildrenAlign("middle");
+    hlay.setSpacing(4);
+    hlay.auto();
+    fsq.add(hlay);
+
+
+    var cm1 = new qx.ui.form.ComboBox();
+    cm1.add(new qx.ui.form.ListItem("data/filesize/40kb.xml"));
+    cm1.add(new qx.ui.form.ListItem("data/filesize/400kb.xml"));
+    cm1.add(new qx.ui.form.ListItem("data/filesize/4000kb.xml"));
+    cm1.setSelected(cm1.getList().getFirstChild());
+    cm1.setWidth(200);
+    cm1.addEventListener("changeSelected", upd);
+
+    hlay.add(cm1);
+
+
+
+    var async = new qx.ui.form.CheckBox("Async");
+    async.setChecked(true);
+    hlay.add(async);
+
+
+    var spin = new qx.ui.form.Spinner(1);
+    hlay.add(spin);
+
+
+
+    var btn = new qx.ui.form.Button("Send", "icon/16/apply.png");
+    btn.addEventListener("execute", upd);
+    hlay.add(btn);
+
+
+    var inf = new qx.ui.form.TextField("State");
+    inf.setWidth(80);
+    hlay.add(inf);
+
+
+    var code = new qx.ui.form.TextField("Code");
+    code.setWidth(30);
+    hlay.add(code);
+
+
+    var typ = new qx.ui.form.TextField("Type");
+    typ.setWidth(80);
+    typ.setReadOnly(true);
+    hlay.add(typ);
+
+
+    var len = new qx.ui.form.TextField("Length");
+    len.setWidth(50);
+    len.setReadOnly(true);
+    hlay.add(len);
+
+
+
+
+    var checken = new qx.ui.form.CheckBox("enabled");
+    checken.setChecked(true);
+    hlay.add(checken);
+
+    checken.addEventListener("changeChecked", function(e) {
+      qx.io.remote.RequestQueue.getInstance().setEnabled(e.getData());
+    });
+
+
+
+
+
+    var fsr = new qx.ui.groupbox.GroupBox("Result");
+    fsr.setHeight("1*");
+    lay.add(fsr);
+
+    var area = new qx.ui.basic.Label("Disabled because of large filesize");
+    fsr.add(area);
+
+
+
+
+
+
+
+
+
+    function upd(e)
+    {
+      var val = cm1.getSelected();
+
+      if (!val) {
+        return;
+      };
+
+      var req;
+      for( var i=0, max=parseInt(spin.getValue()); i<max; i++ )
+      {
+        req = new qx.io.remote.Request(val.getLabel(), "GET", "text/plain");
+
+        req.setAsynchronous(async.getChecked());
+        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+
+        req.setParameter("test1", "value1");
+        req.setParameter("test2", "value2");
+        req.setParameter("test3", "value3");
+
+        // Force to testing iframe implementation
+        // req.setCrossDomain(true);
+
+        req.addEventListener("sending", function(e) {
+          inf.setValue("Sending");
+        });
+
+        req.addEventListener("receiving", function(e) {
+          inf.setValue("Receiving");
+        });
+
+        req.addEventListener("completed", function(e)
+        {
+          inf.setValue("Completed");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+        });
+
+        req.addEventListener("failed", function(e)
+        {
+          inf.setValue("Failed");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+        });
+
+        req.addEventListener("timeout", function(e)
+        {
+          inf.setValue("Timeout");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+        });
+
+        req.addEventListener("aborted", function(e)
+        {
+          inf.setValue("Aborted");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+        });
+
+        req.send();
+      };
+    };
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_3.html
new file mode 100644 (file)
index 0000000..7246f52
--- /dev/null
@@ -0,0 +1,126 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing multiple parallel requests of files with different sizes.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var lab1 = new qx.ui.basic.Label("40KB");
+    var lab2 = new qx.ui.basic.Label("400KB");
+    var lab3 = new qx.ui.basic.Label("4000KB");
+
+    var spin1 = new qx.ui.form.Spinner(0, 3, 50);
+    var spin2 = new qx.ui.form.Spinner(0, 3, 20);
+    var spin3 = new qx.ui.form.Spinner(0, 3, 10);
+
+
+
+
+    var grid = new qx.ui.layout.GridLayout;
+
+    grid.setLocation(20, 48);
+    grid.setDimension("auto", "auto");
+    grid.setHorizontalSpacing(10);
+    grid.setVerticalSpacing(4);
+    grid.setBorder(qx.renderer.border.BorderPresets.getInstance().thinOutset);
+    grid.setBackgroundColor("white");
+    grid.setPadding(10);
+
+    grid.setColumnCount(3);
+    grid.setRowCount(2);
+
+    grid.setColumnWidth(0, 50);
+    grid.setColumnWidth(1, 50);
+    grid.setColumnWidth(2, 50);
+
+    grid.setRowHeight(0, 18);
+    grid.setRowHeight(1, 22);
+
+    qx.ui.core.ClientDocument.getInstance().add(grid);
+
+    grid.add(lab1, 0, 0);
+    grid.add(lab2, 1, 0);
+    grid.add(lab3, 2, 0);
+
+    grid.add(spin1, 0, 1);
+    grid.add(spin2, 1, 1);
+    grid.add(spin3, 2, 1);
+
+
+
+    var btn = new qx.ui.form.Button("Send", "icon/16/button-ok.png");
+    btn.setLocation(20, 120);
+    qx.ui.core.ClientDocument.getInstance().add(btn);
+
+
+
+    var area = new qx.ui.form.TextArea("");
+    area.setLocation(20, 154);
+    area.setDimension(192, 400);
+    qx.ui.core.ClientDocument.getInstance().add(area);
+
+
+
+    btn.addEventListener("execute", function(e)
+    {
+      var s1 = parseInt(spin1.getValue());
+      var s2 = parseInt(spin2.getValue());
+      var s3 = parseInt(spin3.getValue());
+
+      while ((s1+s2+s3) > 0)
+      {
+        if (s1 > 0)
+        {
+          makeRequest(40);
+          s1--;
+        };
+
+        if (s2 > 0)
+        {
+          makeRequest(400);
+          s2--;
+        };
+
+        if (s3 > 0)
+        {
+          makeRequest(4000);
+          s3--;
+        };
+      };
+    });
+
+    function makeRequest(size)
+    {
+      var req = new qx.io.remote.Request("data/filesize/" + size + "kb.xml", "GET", "application/xml");
+
+      req.addEventListener("completed", function(e) {
+        area.setValue(area.getValue() + "Request " + size + "kb: completed\n");
+      });
+
+      req.addEventListener("failed", function(e) {
+        area.setValue(area.getValue() + "Request " + size + "kb: failed\n");
+      });
+
+      req.addEventListener("timeout", function(e) {
+        area.setValue(area.getValue() + "Request " + size + "kb: timeout\n");
+      });
+
+      req.send();
+    };
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_4.html
new file mode 100644 (file)
index 0000000..9219c77
--- /dev/null
@@ -0,0 +1,198 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Simple test for qooxdoo's transport implementation using some data for an addressbook.</p>
+    <p>Using text content in this case.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var lay = new qx.ui.layout.VerticalBoxLayout;
+    lay.setLocation(20, 48);
+    lay.setRight(335);
+    lay.setBottom(48);
+    qx.ui.core.ClientDocument.getInstance().add(lay);
+
+
+
+    var fsq = new qx.ui.groupbox.GroupBox("Request");
+    fsq.setHeight("auto");
+    lay.add(fsq);
+
+
+    var hlay = new qx.ui.layout.HorizontalBoxLayout;
+    hlay.setVerticalChildrenAlign("middle");
+    hlay.setSpacing(4);
+    hlay.auto();
+    fsq.add(hlay);
+
+
+    var cm1 = new qx.ui.form.ComboBox();
+    cm1.add(new qx.ui.form.ListItem("data/persons/anita.txt"));
+    cm1.add(new qx.ui.form.ListItem("data/persons/harald.txt"));
+    cm1.add(new qx.ui.form.ListItem("data/persons/lisbeth.txt"));
+    cm1.add(new qx.ui.form.ListItem("data/persons/paul.txt"));
+    cm1.setSelected(cm1.getList().getFirstChild());
+    cm1.setWidth(200);
+    cm1.addEventListener("changeSelected", upd);
+
+    hlay.add(cm1);
+
+
+
+    var async = new qx.ui.form.CheckBox("Async");
+    async.setChecked(true);
+    hlay.add(async);
+
+
+    var spin = new qx.ui.form.Spinner(1);
+    hlay.add(spin);
+
+
+
+    var btn = new qx.ui.form.Button("Send", "icon/16/apply.png");
+    btn.addEventListener("execute", upd);
+    hlay.add(btn);
+
+
+    var inf = new qx.ui.form.TextField("State");
+    inf.setWidth(80);
+    inf.setReadOnly(true);
+    hlay.add(inf);
+
+
+    var code = new qx.ui.form.TextField("Code");
+    code.setWidth(30);
+    code.setReadOnly(true);
+    hlay.add(code);
+
+
+    var typ = new qx.ui.form.TextField("Type");
+    typ.setWidth(80);
+    typ.setReadOnly(true);
+    hlay.add(typ);
+
+
+    var len = new qx.ui.form.TextField("Length");
+    len.setWidth(50);
+    len.setReadOnly(true);
+    hlay.add(len);
+
+
+    var checken = new qx.ui.form.CheckBox("enabled");
+    checken.setChecked(true);
+    hlay.add(checken);
+
+    checken.addEventListener("changeChecked", function(e) {
+      qx.io.remote.RequestQueue.getInstance().setEnabled(e.getData());
+    });
+
+
+
+
+
+    var fsr = new qx.ui.groupbox.GroupBox("Result");
+    fsr.setHeight("1*");
+    lay.add(fsr);
+
+    var area = new qx.ui.form.TextArea;
+    area.setDimension("100%", "100%");
+    fsr.add(area);
+
+
+
+
+
+
+
+
+
+
+    function upd(e)
+    {
+      var val = cm1.getSelected();
+
+      if (!val) {
+        return;
+      };
+
+      var req;
+      for( var i=0, max=parseInt(spin.getValue()); i<max; i++ )
+      {
+        req = new qx.io.remote.Request(val.getLabel(), "GET", "text/plain");
+
+        req.setAsynchronous(async.getChecked());
+        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+
+        req.setParameter("test1", "value1");
+        req.setParameter("test2", "value2");
+        req.setParameter("test3", "value3");
+
+        // Force to testing iframe implementation
+        // req.setCrossDomain(true);
+
+        req.addEventListener("sending", function(e) {
+          inf.setValue("Sending");
+        });
+
+        req.addEventListener("receiving", function(e) {
+          inf.setValue("Receiving");
+        });
+
+        req.addEventListener("completed", function(e)
+        {
+          inf.setValue("Completed");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+          area.setValue(e.getData().getContent());
+        });
+
+        req.addEventListener("failed", function(e)
+        {
+          inf.setValue("Failed");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+          area.setValue(e.getData().getContent());
+        });
+
+        req.addEventListener("timeout", function(e)
+        {
+          inf.setValue("Timeout");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+          area.setValue(e.getData().getContent());
+        });
+
+        req.addEventListener("aborted", function(e)
+        {
+          inf.setValue("Aborted");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+          area.setValue(e.getData().getContent());
+        });
+
+        req.send();
+      };
+    };
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_5.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_5.html
new file mode 100644 (file)
index 0000000..4fa0734
--- /dev/null
@@ -0,0 +1,198 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Simple test for qooxdoo's transport implementation using some data for an addressbook.</p>
+    <p>Using html content in this case.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var lay = new qx.ui.layout.VerticalBoxLayout;
+    lay.setLocation(20, 48);
+    lay.setRight(335);
+    lay.setBottom(48);
+    qx.ui.core.ClientDocument.getInstance().add(lay);
+
+
+
+    var fsq = new qx.ui.groupbox.GroupBox("Request");
+    fsq.setHeight("auto");
+    lay.add(fsq);
+
+
+    var hlay = new qx.ui.layout.HorizontalBoxLayout;
+    hlay.setVerticalChildrenAlign("middle");
+    hlay.setSpacing(4);
+    hlay.auto();
+    fsq.add(hlay);
+
+
+    var cm1 = new qx.ui.form.ComboBox();
+    cm1.add(new qx.ui.form.ListItem("data/persons/anita.html"));
+    cm1.add(new qx.ui.form.ListItem("data/persons/harald.html"));
+    cm1.add(new qx.ui.form.ListItem("data/persons/lisbeth.html"));
+    cm1.add(new qx.ui.form.ListItem("data/persons/paul.html"));
+    cm1.setSelected(cm1.getList().getFirstChild());
+    cm1.setWidth(200);
+    cm1.addEventListener("changeSelected", upd);
+
+    hlay.add(cm1);
+
+
+
+    var async = new qx.ui.form.CheckBox("Async");
+    async.setChecked(true);
+    hlay.add(async);
+
+
+    var spin = new qx.ui.form.Spinner(1);
+    hlay.add(spin);
+
+
+
+    var btn = new qx.ui.form.Button("Send", "icon/16/apply.png");
+    btn.addEventListener("execute", upd);
+    hlay.add(btn);
+
+
+    var inf = new qx.ui.form.TextField("State");
+    inf.setWidth(80);
+    inf.setReadOnly(true);
+    hlay.add(inf);
+
+
+    var code = new qx.ui.form.TextField("Code");
+    code.setWidth(30);
+    code.setReadOnly(true);
+    hlay.add(code);
+
+
+    var typ = new qx.ui.form.TextField("Type");
+    typ.setWidth(80);
+    typ.setReadOnly(true);
+    hlay.add(typ);
+
+
+    var len = new qx.ui.form.TextField("Length");
+    len.setWidth(50);
+    len.setReadOnly(true);
+    hlay.add(len);
+
+
+    var checken = new qx.ui.form.CheckBox("enabled");
+    checken.setChecked(true);
+    hlay.add(checken);
+
+    checken.addEventListener("changeChecked", function(e) {
+      qx.io.remote.RequestQueue.getInstance().setEnabled(e.getData());
+    });
+
+
+
+
+
+    var fsr = new qx.ui.groupbox.GroupBox("Result");
+    fsr.setHeight("1*");
+    lay.add(fsr);
+
+    var area = new qx.ui.embed.HtmlEmbed("&#160;");
+    area.setDimension("100%", "100%");
+    fsr.add(area);
+
+
+
+
+
+
+
+
+
+
+    function upd(e)
+    {
+      var val = cm1.getSelected();
+
+      if (!val) {
+        return;
+      };
+
+      var req;
+      for( var i=0, max=parseInt(spin.getValue()); i<max; i++ )
+      {
+        req = new qx.io.remote.Request(val.getLabel(), "GET", "text/html");
+
+        req.setAsynchronous(async.getChecked());
+        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+
+        req.setParameter("test1", "value1");
+        req.setParameter("test2", "value2");
+        req.setParameter("test3", "value3");
+
+        // Force to testing iframe implementation
+        // req.setCrossDomain(true);
+
+        req.addEventListener("sending", function(e) {
+          inf.setValue("Sending");
+        });
+
+        req.addEventListener("receiving", function(e) {
+          inf.setValue("Receiving");
+        });
+
+        req.addEventListener("completed", function(e)
+        {
+          inf.setValue("Completed");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+          area.setHtml(e.getData().getContent());
+        });
+
+        req.addEventListener("failed", function(e)
+        {
+          inf.setValue("Failed");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+          area.setHtml(e.getData().getContent());
+        });
+
+        req.addEventListener("timeout", function(e)
+        {
+          inf.setValue("Timeout");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+          area.setHtml(e.getData().getContent());
+        });
+
+        req.addEventListener("aborted", function(e)
+        {
+          inf.setValue("Aborted");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+          area.setHtml(e.getData().getContent());
+        });
+
+        req.send();
+      };
+    };
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_6.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Transport_6.html
new file mode 100644 (file)
index 0000000..083444d
--- /dev/null
@@ -0,0 +1,222 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Simple test for qooxdoo's transport implementation using some data for an addressbook.</p>
+    <p>Using javascript/json content in this case.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var lay = new qx.ui.layout.VerticalBoxLayout;
+    lay.setLocation(20, 48);
+    lay.setRight(335);
+    lay.setBottom(48);
+    qx.ui.core.ClientDocument.getInstance().add(lay);
+
+
+
+    var fsq = new qx.ui.groupbox.GroupBox("Request");
+    fsq.setHeight("auto");
+    lay.add(fsq);
+
+
+    var hlay = new qx.ui.layout.HorizontalBoxLayout;
+    hlay.setVerticalChildrenAlign("middle");
+    hlay.setSpacing(4);
+    hlay.auto();
+    fsq.add(hlay);
+
+
+    var cm1 = new qx.ui.form.ComboBox();
+    cm1.add(new qx.ui.form.ListItem("data/persons/anita.js"));
+    cm1.add(new qx.ui.form.ListItem("data/persons/harald.js"));
+    cm1.add(new qx.ui.form.ListItem("data/persons/lisbeth.js"));
+    cm1.add(new qx.ui.form.ListItem("data/persons/paul.js"));
+    cm1.setSelected(cm1.getList().getFirstChild());
+    cm1.setWidth(200);
+    cm1.addEventListener("changeSelected", upd);
+
+    hlay.add(cm1);
+
+
+
+    var async = new qx.ui.form.CheckBox("Async");
+    async.setChecked(true);
+    hlay.add(async);
+
+
+    var spin = new qx.ui.form.Spinner(1);
+    hlay.add(spin);
+
+
+
+    var btn = new qx.ui.form.Button("Send", "icon/16/apply.png");
+    btn.addEventListener("execute", upd);
+    hlay.add(btn);
+
+
+    var inf = new qx.ui.form.TextField("State");
+    inf.setWidth(80);
+    inf.setReadOnly(true);
+    hlay.add(inf);
+
+
+    var code = new qx.ui.form.TextField("Code");
+    code.setWidth(30);
+    code.setReadOnly(true);
+    hlay.add(code);
+
+
+    var typ = new qx.ui.form.TextField("Type");
+    typ.setWidth(80);
+    typ.setReadOnly(true);
+    hlay.add(typ);
+
+
+    var len = new qx.ui.form.TextField("Length");
+    len.setWidth(50);
+    len.setReadOnly(true);
+    hlay.add(len);
+
+
+    var checken = new qx.ui.form.CheckBox("enabled");
+    checken.setChecked(true);
+    hlay.add(checken);
+
+    checken.addEventListener("changeChecked", function(e) {
+      qx.io.remote.RequestQueue.getInstance().setEnabled(e.getData());
+    });
+
+
+
+
+
+    var fsr = new qx.ui.groupbox.GroupBox("Result");
+    fsr.setHeight("1*");
+    lay.add(fsr);
+
+    var area = new qx.ui.layout.VerticalBoxLayout;
+    area.setSpacing(6);
+    area.setDimension("100%", "100%");
+    fsr.add(area);
+
+
+
+    var fgivenname = new qx.ui.basic.Label("Given Name");
+    var fname = new qx.ui.basic.Label("Name");
+    var fage = new qx.ui.basic.Label("Age");
+    var fstreet = new qx.ui.basic.Label("Street");
+    var fplz = new qx.ui.basic.Label("PLZ");
+    var fcity = new qx.ui.basic.Label("City");
+    var fcountry = new qx.ui.basic.Label("Country");
+    var fphone = new qx.ui.basic.Label("Phone");
+
+    area.add(fgivenname, fname, fage, fstreet, fplz, fcity, fcountry, fphone);
+
+
+
+
+
+
+
+    function upd(e)
+    {
+      var val = cm1.getSelected();
+
+      if (!val) {
+        return;
+      };
+
+      var req;
+      for( var i=0, max=parseInt(spin.getValue()); i<max; i++ )
+      {
+        req = new qx.io.remote.Request(val.getLabel(), "GET", "text/json");
+
+        req.setAsynchronous(async.getChecked());
+        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+
+        req.setParameter("test1", "value1");
+        req.setParameter("test2", "value2");
+        req.setParameter("test3", "value3");
+
+        // Force to testing iframe implementation
+        // req.setCrossDomain(true);
+
+        // This combination couldn't be handled currently
+        // req.setCrossDomain(true);
+        // req.setAsynchronous(false);
+
+        req.addEventListener("sending", function(e) {
+          inf.setValue("Sending");
+        });
+
+        req.addEventListener("receiving", function(e) {
+          inf.setValue("Receiving");
+        });
+
+        req.addEventListener("completed", function(e)
+        {
+          inf.setValue("Completed");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+
+          var vContent = e.getData().getContent();
+
+          fgivenname.setHtml(vContent.givenName.toString());
+          fname.setHtml(vContent.name.toString());
+          fage.setHtml(vContent.age.toString());
+          fstreet.setHtml(vContent.street.toString());
+          fplz.setHtml(vContent.plz.toString());
+          fcity.setHtml(vContent.city.toString());
+          fcountry.setHtml(vContent.country.toString());
+          fphone.setHtml(vContent.phone.toString());
+
+          qx.ui.core.Widget.flushGlobalQueues();
+        });
+
+        req.addEventListener("failed", function(e)
+        {
+          inf.setValue("Failed");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+        });
+
+        req.addEventListener("timeout", function(e)
+        {
+          inf.setValue("Timeout");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+        });
+
+        req.addEventListener("aborted", function(e)
+        {
+          inf.setValue("Aborted");
+          typ.setValue(e.getData().getResponseHeader("Content-Type"));
+          len.setValue(e.getData().getResponseHeader("Content-Length"));
+          code.setValue(e.getData().getStatusCode().toString());
+        });
+
+        req.send();
+      };
+    };
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_1.html
new file mode 100644 (file)
index 0000000..730de4a
--- /dev/null
@@ -0,0 +1,171 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Introducing qx.ui.tree.Tree. A first small example.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var t = new qx.ui.tree.Tree("Root");
+
+      with(t)
+      {
+        setBackgroundColor(255);
+        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+        setOverflow("scrollY");
+
+        setHeight(null);
+        setTop(48);
+        setLeft(20);
+        setWidth(200);
+        setBottom(48);
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(t);
+      
+
+      var te1 = new qx.ui.tree.TreeFolder("Desktop");
+      t.add(te1);
+
+      desktop = te1;
+
+      var te1_1 = new qx.ui.tree.TreeFolder("Files");
+      var te1_2 = new qx.ui.tree.TreeFolder("Workspace");
+      var te1_3 = new qx.ui.tree.TreeFolder("Network");
+      var te1_4 = new qx.ui.tree.TreeFolder("Trash");
+
+      te1.add(te1_1, te1_2, te1_3, te1_4);
+
+
+      var te1_2_1 = new qx.ui.tree.TreeFile("Windows (C:)");
+      var te1_2_2 = new qx.ui.tree.TreeFile("Documents (D:)");
+
+      te1_2.add(te1_2_1, te1_2_2);
+
+      arbeitsplatz = te1_2;
+
+
+      var te2 = new qx.ui.tree.TreeFolder("Inbox");
+      posteingang = te2;
+
+      var te2_1 = new qx.ui.tree.TreeFolder("Presets");
+      var te2_2 = new qx.ui.tree.TreeFolder("Sent");
+      var te2_3 = new qx.ui.tree.TreeFolder("Trash");
+      var te2_4 = new qx.ui.tree.TreeFolder("Data");
+      var te2_5 = new qx.ui.tree.TreeFolder("Edit");
+
+
+
+      t.add(te2);
+      qx.ui.core.ClientDocument.getInstance().add(t);
+
+
+
+
+
+
+      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
+
+      with(commandFrame)
+      {
+        setTop(48);
+        setLeft(250);
+
+        setWidth("auto");
+        setHeight("auto");
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
+
+
+
+
+      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
+
+      with(tCurrentLabel)
+      {
+        setLeft(0);
+        setTop(0);
+      };
+
+      commandFrame.add(tCurrentLabel);
+
+
+
+      var tCurrentInput = new qx.ui.form.TextField;
+
+      with(tCurrentInput)
+      {
+        setLeft(0);
+        setRight(0);
+        setTop(20);
+
+        setReadOnly(true);
+      };
+
+      commandFrame.add(tCurrentInput);
+
+      t.getManager().addEventListener("changeSelection", function(e) {
+        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
+      });
+
+
+
+      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
+
+      with(tDoubleClick) {
+        setTop(60);
+        setLeft(0);
+      };
+
+      commandFrame.add(tDoubleClick);
+
+      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
+
+
+
+      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
+
+      with(tTreeLines) {
+        setTop(80);
+        setLeft(0);
+        setChecked(true);
+      };
+
+      commandFrame.add(tTreeLines);
+
+      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
+      
+      
+      
+      
+      var vShowItems = new qx.ui.form.Button("Show Items");
+      
+      with(vShowItems) {
+        setTop(100);
+        setLeft(0);
+      };
+      
+      commandFrame.add(vShowItems);
+      
+      vShowItems.addEventListener("execute", function(e) {
+        alert(t.getItems());
+      });
+
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_2.html
new file mode 100644 (file)
index 0000000..8775c9a
--- /dev/null
@@ -0,0 +1,294 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>This example is bigger than the previous one.</p>
+  </div>
+
+  <div id="control" style="display:none">
+    <p>
+      <strong>Create</strong>:
+      <br/>
+      Push into:
+      <a href="javascript://" onclick="void(root.add(new qx.ui.tree.TreeFile('Foo Bar')))">Root</a>
+      <a href="javascript://" onclick="void(inbox.add(new qx.ui.tree.TreeFile('Foo Bar')))">Inbox</a>
+      <a href="javascript://" onclick="void(workspace.add(new qx.ui.tree.TreeFile('Foo Bar')))">Workspace</a>
+      <a href="javascript://" onclick="void(desktop.add(new qx.ui.tree.TreeFile('Foo Bar')))">Desktop</a>
+      <a href="javascript://" onclick="void(edit.add(new qx.ui.tree.TreeFile('Foo Bar')))">Edit</a>
+      <a href="javascript://" onclick="void(spam.add(new qx.ui.tree.TreeFile('Foo Bar')))">Spam</a>
+    </p>
+
+    <hr/>
+
+    <p>
+      <strong>Inbox</strong>:
+      <a href="javascript://" onclick="void(inbox.getParent().remove(inbox))">Delete</a>
+      <br/>
+      Push into:
+      <a href="javascript://" onclick="void(root.add(inbox))">Root</a>
+      <a href="javascript://" onclick="void(workspace.add(inbox))">Workspace</a>
+      <a href="javascript://" onclick="void(desktop.add(inbox))">Desktop</a>
+      <a href="javascript://" onclick="void(edit.add(inbox))">Edit</a>
+      <a href="javascript://" onclick="void(spam.add(inbox))">Spam</a>
+    </p>
+
+    <p>
+      <strong>Workspace</strong>:
+      <a href="javascript://" onclick="void(workspace.getParent().remove(workspace))">Delete</a>
+      <br/>
+      Push into:
+      <a href="javascript://" onclick="void(root.add(workspace))">Root</a>
+      <a href="javascript://" onclick="void(inbox.add(workspace))">Inbox</a>
+      <a href="javascript://" onclick="void(desktop.add(workspace))">Desktop</a>
+      <a href="javascript://" onclick="void(edit.add(workspace))">Edit</a>
+      <a href="javascript://" onclick="void(spam.add(workspace))">Spam</a>
+      <br/>
+      Push into before:
+      <a href="javascript://" onclick="void(root.addBefore(workspace, desktop))">Root (before:Desktop)</a>
+      <a href="javascript://" onclick="void(root.addBefore(workspace, inbox))">Root (before:Inbox)</a>
+      <a href="javascript://" onclick="void(inbox.addBefore(workspace, spam))">Inbox (before:Spam)</a>
+      <a href="javascript://" onclick="void(inbox.addBefore(workspace, edit))">Inbox (before:Edit)</a>
+      <br/>
+      Push into after:
+      <a href="javascript://" onclick="void(root.addAfter(workspace, desktop))">Root (after:Desktop)</a>
+      <a href="javascript://" onclick="void(root.addAfter(workspace, inbox))">Root (after:Inbox)</a>
+      <a href="javascript://" onclick="void(inbox.addAfter(workspace, spam))">Inbox (after:Spam)</a>
+      <a href="javascript://" onclick="void(inbox.addAfter(workspace, edit))">Inbox (after:Edit)</a>
+      <br/>
+      Add at:
+      <a href="javascript://" onclick="void(root.addAt(workspace, 0))">Root (at:0)</a>
+      <a href="javascript://" onclick="void(root.addAt(workspace, 1))">Root (at:1)</a>
+      <a href="javascript://" onclick="void(root.addAt(workspace, 2))">Root (at:2)</a>
+      <a href="javascript://" onclick="void(inbox.addAt(workspace, 0))">Inbox (at:0)</a>
+      <a href="javascript://" onclick="void(inbox.addAt(workspace, 3))">Inbox (at:3)</a>
+      <a href="javascript://" onclick="void(inbox.addAt(workspace, 5))">Inbox (at:5)</a>
+    </p>
+  </div>
+
+  <script type="text/javascript">
+    var desktop, workspace, root, inbox, edit, spam;
+    
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var t = new qx.ui.tree.Tree("Root");
+
+      with(t)
+      {
+        setBackgroundColor(255);
+        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+        setOverflow("scrollY");
+
+        setHeight(null);
+        setTop(48);
+        setLeft(20);
+        setWidth(200);
+        setBottom(48);
+      };
+      
+      root = t;
+
+      qx.ui.core.ClientDocument.getInstance().add(t);
+
+      var te1 = new qx.ui.tree.TreeFolder("Desktop");
+      t.add(te1);
+
+      desktop = te1;
+
+      var te1_1 = new qx.ui.tree.TreeFolder("Files");
+      var te1_2 = new qx.ui.tree.TreeFolder("Workspace");
+      var te1_3 = new qx.ui.tree.TreeFolder("Network");
+      var te1_4 = new qx.ui.tree.TreeFolder("Trash");
+
+      te1.add(te1_1, te1_2, te1_3, te1_4);
+
+
+      var te1_2_1 = new qx.ui.tree.TreeFile("Windows (C:)");
+      var te1_2_2 = new qx.ui.tree.TreeFile("Documents (D:)");
+
+      te1_2.add(te1_2_1, te1_2_2);
+
+      workspace = te1_2;
+
+
+      var te2 = new qx.ui.tree.TreeFolder("Inbox");
+      inbox = te2;
+
+      var te2_1 = new qx.ui.tree.TreeFolder("Presets");
+      var te2_2 = new qx.ui.tree.TreeFolder("Sent");
+      var te2_3 = new qx.ui.tree.TreeFolder("Trash");
+      var te2_4 = new qx.ui.tree.TreeFolder("Data");
+      var te2_5 = new qx.ui.tree.TreeFolder("Edit");
+
+      edit = te2_5;
+
+      var te2_5_1 = new qx.ui.tree.TreeFolder("Chat");
+      var te2_5_2 = new qx.ui.tree.TreeFolder("Pustefix");
+      var te2_5_3 = new qx.ui.tree.TreeFolder("TINC");
+
+      var te2_5_3_1 = new qx.ui.tree.TreeFolder("Announce");
+      var te2_5_3_2 = new qx.ui.tree.TreeFolder("Devel");
+
+      te2_5_3.add(te2_5_3_1, te2_5_3_2);
+
+      te2_5.add(te2_5_1, te2_5_2, te2_5_3);
+
+      var te2_6 = new qx.ui.tree.TreeFolder("Lists");
+
+      var te2_6_1 = new qx.ui.tree.TreeFolder("Relations");
+      var te2_6_2 = new qx.ui.tree.TreeFolder("Company");
+      var te2_6_3 = new qx.ui.tree.TreeFolder("Questions");
+      var te2_6_4 = new qx.ui.tree.TreeFolder("Internal");
+      var te2_6_5 = new qx.ui.tree.TreeFolder("Products");
+      var te2_6_6 = new qx.ui.tree.TreeFolder("Press");
+      var te2_6_7 = new qx.ui.tree.TreeFolder("Development");
+      var te2_6_8 = new qx.ui.tree.TreeFolder("Competition");
+
+      te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
+
+      var te2_7 = new qx.ui.tree.TreeFolder("Personal");
+
+      var te2_7_1 = new qx.ui.tree.TreeFolder("Bugs");
+      var te2_7_2 = new qx.ui.tree.TreeFolder("Family");
+      var te2_7_3 = new qx.ui.tree.TreeFolder("Projects");
+      var te2_7_4 = new qx.ui.tree.TreeFolder("Holiday");
+
+      te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
+      
+      var te2_8 = new qx.ui.tree.TreeFolder("Big");
+      
+      for (var i=0;i<10; i++) {
+        te2_8.add(new qx.ui.tree.TreeFolder("Item " + i));
+      };
+
+      var te2_9 = new qx.ui.tree.TreeFolder("Spam");
+      spam = te2_9;
+      
+      te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
+
+      t.add(te2);
+      qx.ui.core.ClientDocument.getInstance().add(t);
+
+
+
+
+
+
+      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
+
+      with(commandFrame)
+      {
+        setTop(48);
+        setLeft(250);
+
+        setWidth("auto");
+        setHeight("auto");
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
+
+
+
+
+      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
+
+      with(tCurrentLabel)
+      {
+        setLeft(0);
+        setTop(0);
+      };
+
+      commandFrame.add(tCurrentLabel);
+
+
+
+      var tCurrentInput = new qx.ui.form.TextField;
+
+      with(tCurrentInput)
+      {
+        setLeft(0);
+        setRight(0);
+        setTop(20);
+
+        setReadOnly(true);
+      };
+
+      commandFrame.add(tCurrentInput);
+
+      t.getManager().addEventListener("changeSelection", function(e) {
+        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
+      });
+
+
+
+      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
+
+      with(tDoubleClick) {
+        setTop(60);
+        setLeft(0);
+      };
+
+      commandFrame.add(tDoubleClick);
+
+      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
+
+
+
+
+
+      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
+
+      with(tTreeLines) {
+        setTop(80);
+        setLeft(0);
+        setChecked(true);
+      };
+
+      commandFrame.add(tTreeLines);
+
+      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
+
+
+
+
+
+
+
+
+
+
+      var ct1 = new qx.ui.basic.Label(document.getElementById("control").innerHTML);
+  
+      with(ct1)
+      {
+        setWidth(300);
+        setRight(335);
+  
+        setHeight(null);
+        setTop(48);
+        setBottom(48);
+  
+        setOverflow("hidden");
+        setStyleProperty("whiteSpace", "normal");
+  
+        setBackgroundColor("white");
+        setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
+        setPadding(10);
+      };
+      
+      qx.ui.core.ClientDocument.getInstance().add(ct1);
+
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_3.html
new file mode 100644 (file)
index 0000000..2526e2d
--- /dev/null
@@ -0,0 +1,201 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Nothing special, like the previous example but here the tree lines are by default off.</p>
+    <p>This allows you to easily compare the performance costs for the tree lines: Just compare this and the previous example.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var t = new qx.ui.tree.Tree("Root");
+
+      with(t)
+      {
+        setBackgroundColor(255);
+        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+        setOverflow("scrollY");
+        setUseTreeLines(false);
+
+        setHeight(null);
+        setTop(48);
+        setLeft(20);
+        setWidth(200);
+        setBottom(48);
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(t);
+
+      var te1 = new qx.ui.tree.TreeFolder("Desktop");
+      t.add(te1);
+
+      desktop = te1;
+
+      var te1_1 = new qx.ui.tree.TreeFolder("Files");
+      var te1_2 = new qx.ui.tree.TreeFolder("Workspace");
+      var te1_3 = new qx.ui.tree.TreeFolder("Network");
+      var te1_4 = new qx.ui.tree.TreeFolder("Trash");
+
+      te1.add(te1_1, te1_2, te1_3, te1_4);
+
+
+      var te1_2_1 = new qx.ui.tree.TreeFile("Windows (C:)");
+      var te1_2_2 = new qx.ui.tree.TreeFile("Documents (D:)");
+
+      te1_2.add(te1_2_1, te1_2_2);
+
+      arbeitsplatz = te1_2;
+
+
+      var te2 = new qx.ui.tree.TreeFolder("Inbox");
+      posteingang = te2;
+
+      var te2_1 = new qx.ui.tree.TreeFolder("Presets");
+      var te2_2 = new qx.ui.tree.TreeFolder("Sent");
+      var te2_3 = new qx.ui.tree.TreeFolder("Trash");
+      var te2_4 = new qx.ui.tree.TreeFolder("Data");
+      var te2_5 = new qx.ui.tree.TreeFolder("Edit");
+
+      editieren = te2_5;
+
+      var te2_5_1 = new qx.ui.tree.TreeFolder("Chat");
+      var te2_5_2 = new qx.ui.tree.TreeFolder("Pustefix");
+      var te2_5_3 = new qx.ui.tree.TreeFolder("TINC");
+
+      var te2_5_3_1 = new qx.ui.tree.TreeFolder("Announce");
+      var te2_5_3_2 = new qx.ui.tree.TreeFolder("Devel");
+
+      te2_5_3.add(te2_5_3_1, te2_5_3_2);
+
+      te2_5.add(te2_5_1, te2_5_2, te2_5_3);
+
+      var te2_6 = new qx.ui.tree.TreeFolder("Lists");
+
+      var te2_6_1 = new qx.ui.tree.TreeFolder("Relations");
+      var te2_6_2 = new qx.ui.tree.TreeFolder("Company");
+      var te2_6_3 = new qx.ui.tree.TreeFolder("Questions");
+      var te2_6_4 = new qx.ui.tree.TreeFolder("Internal");
+      var te2_6_5 = new qx.ui.tree.TreeFolder("Products");
+      var te2_6_6 = new qx.ui.tree.TreeFolder("Press");
+      var te2_6_7 = new qx.ui.tree.TreeFolder("Development");
+      var te2_6_8 = new qx.ui.tree.TreeFolder("Competition");
+
+      te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
+
+      var te2_7 = new qx.ui.tree.TreeFolder("Personal");
+
+      var te2_7_1 = new qx.ui.tree.TreeFolder("Bugs");
+      var te2_7_2 = new qx.ui.tree.TreeFolder("Family");
+      var te2_7_3 = new qx.ui.tree.TreeFolder("Projects");
+      var te2_7_4 = new qx.ui.tree.TreeFolder("Holiday");
+
+      te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
+      
+      var te2_8 = new qx.ui.tree.TreeFolder("Big");
+      
+      for (var i=0;i<50; i++) {
+        te2_8.add(new qx.ui.tree.TreeFolder("Item " + i));
+      };
+
+      var te2_9 = new qx.ui.tree.TreeFolder("Spam");
+      spam = te2_9;
+      
+      te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
+
+      t.add(te2);
+      qx.ui.core.ClientDocument.getInstance().add(t);
+
+
+
+
+
+
+      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
+
+      with(commandFrame)
+      {
+        setTop(48);
+        setLeft(250);
+
+        setWidth("auto");
+        setHeight("auto");
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
+
+
+
+
+      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
+
+      with(tCurrentLabel)
+      {
+        setLeft(0);
+        setTop(0);
+      };
+
+      commandFrame.add(tCurrentLabel);
+
+
+
+      var tCurrentInput = new qx.ui.form.TextField;
+
+      with(tCurrentInput)
+      {
+        setLeft(0);
+        setRight(0);
+        setTop(20);
+
+        setReadOnly(true);
+      };
+
+      commandFrame.add(tCurrentInput);
+
+      t.getManager().addEventListener("changeSelection", function(e) {
+        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
+      });
+
+
+
+
+      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
+
+      with(tDoubleClick) {
+        setTop(60);
+        setLeft(0);
+      };
+
+      commandFrame.add(tDoubleClick);
+
+      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
+
+
+      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
+
+      with(tTreeLines) {
+        setTop(80);
+        setLeft(0);
+        setChecked(false);
+      };
+
+      commandFrame.add(tTreeLines);
+
+      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
+
+
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_4.html
new file mode 100644 (file)
index 0000000..1af1482
--- /dev/null
@@ -0,0 +1,40 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test an empty tree</p>
+  </div>
+
+ <script type="text/javascript">
+   qx.core.Init.getInstance().defineMain(function()
+   {
+     var t = new qx.ui.tree.Tree("Root");
+
+     with(t)
+     {
+       setBackgroundColor(255);
+       setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+       setOverflow("scrollY");
+
+       setHeight(null);
+       setTop(48);
+       setLeft(20);
+       setWidth(200);
+       setBottom(48);
+     };
+
+     qx.ui.core.ClientDocument.getInstance().add(t);
+   });
+ </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_5.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_5.html
new file mode 100644 (file)
index 0000000..a2ed545
--- /dev/null
@@ -0,0 +1,148 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Drag and Drop between trees and inside a tree.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      function handleDragStart(e) 
+      {
+        e.addData("qx.ui.tree.AbstractTreeElement", e.getCurrentTarget());
+        e.addAction("move");
+        e.startDrag();
+      };
+
+      function handleDragDrop(e) 
+      {
+        var vType = e.getDropDataTypes()[0];
+        var vSource = e.getData(vType);
+        var vTarget = e.getCurrentTarget();
+        
+        vSource.getTree().getManager().deselectAll();
+        vTarget.add(vSource);
+        
+        e.stopPropagation();
+      }; 
+      
+      function supportsDrop(vDragCache) {
+        return !vDragCache.sourceWidget.contains(this);
+      };
+
+      function handleDragOver(e)
+      {
+        var l = e.getTarget().getLabelObject();
+        l.setStyleProperty("textDecoration", "underline");
+      };
+    
+      function handleDragOut(e) 
+      {
+        var l = e.getTarget().getLabelObject();
+        l.removeStyleProperty("textDecoration");
+      };
+
+
+
+      var treeSource = new qx.ui.tree.Tree("Source");
+
+      with(treeSource)
+      {
+        setBackgroundColor(255);
+        setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
+        setOverflow("scrollY");
+
+        setHeight(null);
+        setTop(48);
+        setLeft(20);
+        setWidth(200);
+        setBottom(48);
+        
+        addEventListener("dragdrop", handleDragDrop); 
+        addEventListener("dragover", handleDragOver);
+        addEventListener("dragout", handleDragOut);
+
+        setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(treeSource);
+      
+      for (var i=1, f; i<4; i++)
+      {
+        f = new qx.ui.tree.TreeFolder("Folder " + i);
+        
+        f.addEventListener("dragstart", handleDragStart);
+        f.addEventListener("dragdrop", handleDragDrop); 
+        f.addEventListener("dragover", handleDragOver);
+        f.addEventListener("dragout", handleDragOut);
+        
+        f.setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
+        f.supportsDrop = supportsDrop;
+        
+        treeSource.add(f);
+        
+        for (var j=1, g; j<4; j++)
+        {
+          g = new qx.ui.tree.TreeFolder("Subfolder " + j);
+          
+          g.addEventListener("dragstart", handleDragStart);
+          g.addEventListener("dragdrop", handleDragDrop); 
+          g.addEventListener("dragover", handleDragOver);
+          g.addEventListener("dragout", handleDragOut);
+          
+          g.setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
+          g.supportsDrop = supportsDrop;
+          
+          f.add(g);
+          
+          for (var k=1, h; k<4; k++)
+          {
+            h = new qx.ui.tree.TreeFile("File " + k);
+            
+            h.addEventListener("dragstart", handleDragStart);
+            
+            g.add(h);
+          };
+        };
+      };
+
+
+
+
+      var treeDest = new qx.ui.tree.Tree("Dest");
+
+      with(treeDest)
+      {
+        setBackgroundColor(255);
+        setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
+        setOverflow("scrollY");
+
+        setHeight(null);
+        setTop(48);
+        setLeft(240);
+        setWidth(200);
+        setBottom(48);
+        
+        addEventListener("dragdrop", handleDragDrop); 
+        addEventListener("dragover", handleDragOver);
+        addEventListener("dragout", handleDragOut);
+
+        setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(treeDest);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_6.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_6.html
new file mode 100644 (file)
index 0000000..c980eef
--- /dev/null
@@ -0,0 +1,231 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Drag and Drop between trees and inside a tree.</p>
+    <p>Added support for positioned move/insert (not complete yet!)</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var vLastIndex = null;      
+      
+      function handleDragStart(e) 
+      {
+        e.addData("qx.ui.tree.AbstractTreeElement", e.getCurrentTarget());
+        e.addAction("move");
+        e.startDrag();
+      };
+
+      function handleDragDrop(e) 
+      {
+        var vType = e.getDropDataTypes()[0];
+        var vSource = e.getData(vType);
+        var vTarget = e.getCurrentTarget();
+        
+        vSource.getTree().getManager().deselectAll();
+        
+        // this.debug("Add At: " + vLastIndex);
+        
+        vLastIndex == null ? vTarget.addAtEnd(vSource) : vTarget.addBefore(vSource, vLastIndex);
+        vLastIndex = null;
+        
+        e.stopPropagation();
+        treeMarkerLine.setStyleProperty("display", "none");
+      }; 
+      
+      function supportsDrop(vDragCache) {
+        return !vDragCache.sourceWidget.contains(this);
+      };
+
+      function handleDragOver(e)
+      {
+        var l = e.getTarget().getLabelObject();
+        l.setStyleProperty("textDecoration", "underline");
+      };
+    
+      function handleDragOut(e) 
+      {
+        var l = e.getTarget().getLabelObject();
+        l.removeStyleProperty("textDecoration");
+      };
+      
+      function handleDragEnd(e)
+      {
+        vLastIndex = null;
+        treeMarkerLine.setStyleProperty("display", "none");
+      };
+      
+      function handleDragMove(e)
+      {
+        vLastIndex = null;
+        
+        var vTarget = e.getTarget();
+        
+        if (!vTarget || !(vTarget instanceof qx.ui.tree.TreeFolder)) 
+        {
+          treeMarkerLine.setStyleProperty("display", "none");
+          return;
+        };
+        
+        var vContainer = vTarget.getContainerObject();
+        
+        if (!vContainer) 
+        {
+          treeMarkerLine.setStyleProperty("display", "none");
+          return;
+        };
+        
+        var vChildren = vContainer.getVisibleChildren();
+        var vChildrenLength = vChildren.length;
+        var vEventTop = e.getPageY();
+        
+        for (var i=0, vChild, vTop; i<vChildrenLength; i++)
+        {
+          vChild = vChildren[i];
+          
+          vTop = qx.dom.Location.getPageBoxTop(vChild.getElement());
+          if ((vTop - vEventTop) > -4 && (vTop - vEventTop) < 4)
+          {
+            if (vEventTop > vTop && vChild.isFirstChild()) {
+              continue;
+            };
+            
+            treeMarkerLine._applyRuntimeTop(vTop+1);
+            treeMarkerLine._applyRuntimeLeft(QxDom.getComputedPageBoxLeft(vChild.getLabelObject().getElement()) - 20);
+            
+            treeMarkerLine.removeStyleProperty("display");
+            
+            // this.debug("Index: " + vLastIndex + " :: " + vEventTop + " <> " + vTop);
+            vLastIndex = vChild;
+            
+            return;
+          };          
+        };
+        
+        treeMarkerLine.setStyleProperty("display", "none");
+      };
+
+
+
+      var treeMarkerLine = new qx.ui.basic.Terminator;
+      
+      treeMarkerLine.setHeight(2);
+      treeMarkerLine.setBackgroundColor("#335EA8");
+      treeMarkerLine.setWidth(20);
+      treeMarkerLine.setZIndex(1e7);
+      treeMarkerLine.setAnonymous(true);
+      treeMarkerLine.setStyleProperty("display", "none");
+      
+      qx.ui.core.ClientDocument.getInstance().add(treeMarkerLine);
+      
+
+
+      var treeSource = new qx.ui.tree.Tree("Source");
+
+      with(treeSource)
+      {
+        setBackgroundColor(255);
+        setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
+        setOverflow("scrollY");
+
+        setHeight(null);
+        setTop(48);
+        setLeft(20);
+        setWidth(200);
+        setBottom(48);
+        
+        addEventListener("dragdrop", handleDragDrop); 
+        addEventListener("dragover", handleDragOver);
+        addEventListener("dragout", handleDragOut);
+        addEventListener("dragmove", handleDragMove);
+
+        setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(treeSource);
+      
+      for (var i=1, f; i<3; i++)
+      {
+        f = new qx.ui.tree.TreeFolder("Folder " + i);
+        
+        f.addEventListener("dragstart", handleDragStart);
+        f.addEventListener("dragdrop", handleDragDrop); 
+        f.addEventListener("dragover", handleDragOver);
+        f.addEventListener("dragout", handleDragOut);
+        f.addEventListener("dragend", handleDragEnd);
+        
+        f.setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
+        f.supportsDrop = supportsDrop;
+        
+        treeSource.add(f);
+        
+        for (var j=1, g; j<6; j++)
+        {
+          g = new qx.ui.tree.TreeFolder("Subfolder " + j);
+          
+          g.addEventListener("dragstart", handleDragStart);
+          g.addEventListener("dragdrop", handleDragDrop); 
+          g.addEventListener("dragover", handleDragOver);
+          g.addEventListener("dragout", handleDragOut);
+          g.addEventListener("dragend", handleDragEnd);
+          
+          g.setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
+          g.supportsDrop = supportsDrop;
+          
+          f.add(g);
+          
+          for (var k=1, h; k<9; k++)
+          {
+            h = new qx.ui.tree.TreeFile("File " + k);
+            
+            h.addEventListener("dragstart", handleDragStart);
+            
+            g.add(h);
+          };
+        };
+      };
+      
+      
+
+
+
+
+      var treeDest = new qx.ui.tree.Tree("Dest");
+
+      with(treeDest)
+      {
+        setBackgroundColor(255);
+        setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
+        setOverflow("scrollY");
+
+        setHeight(null);
+        setTop(48);
+        setLeft(240);
+        setWidth(200);
+        setBottom(48);
+        
+        addEventListener("dragdrop", handleDragDrop); 
+        addEventListener("dragover", handleDragOver);
+        addEventListener("dragout", handleDragOut);
+        addEventListener("dragmove", handleDragMove);
+
+        setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(treeDest);
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_7.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Tree_7.html
new file mode 100644 (file)
index 0000000..0ad6e22
--- /dev/null
@@ -0,0 +1,233 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Trying dynamic Folder and File creation and deletion.</p>
+  </div>
+
+  <script type="text/javascript">
+
+    function createItems (t) {
+      var te1 = new qx.ui.tree.TreeFolder("Desktop");
+      t.add(te1);
+
+      desktop = te1;
+
+      var te1_1 = new qx.ui.tree.TreeFolder("Files");
+      var te1_2 = new qx.ui.tree.TreeFolder("Workspace");
+      var te1_3 = new qx.ui.tree.TreeFolder("Network");
+      var te1_4 = new qx.ui.tree.TreeFolder("Trash");
+
+      te1.add(te1_1, te1_2, te1_3, te1_4);
+
+
+      var te1_2_1 = new qx.ui.tree.TreeFile("Windows (C:)");
+      var te1_2_2 = new qx.ui.tree.TreeFile("Documents (D:)");
+
+      te1_2.add(te1_2_1, te1_2_2);
+
+      arbeitsplatz = te1_2;
+
+
+      var te2 = new qx.ui.tree.TreeFolder("Inbox");
+      posteingang = te2;
+
+      var te2_1 = new qx.ui.tree.TreeFolder("Presets");
+      var te2_2 = new qx.ui.tree.TreeFolder("Sent");
+      var te2_3 = new qx.ui.tree.TreeFolder("Trash");
+      var te2_4 = new qx.ui.tree.TreeFolder("Data");
+      var te2_5 = new qx.ui.tree.TreeFolder("Edit");
+
+      t.add(te2);
+     }
+
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      var t = new qx.ui.tree.Tree("Root");
+
+      with(t)
+      {
+        setBackgroundColor(255);
+        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+        setOverflow("scrollY");
+
+        setHeight(null);
+        setTop(48);
+        setLeft(20);
+        setWidth(200);
+        setBottom(48);
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(t);
+
+
+
+      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
+
+      with(commandFrame)
+      {
+        setTop(48);
+        setLeft(250);
+
+        setWidth("auto");
+        setHeight("auto");
+      };
+
+      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
+
+
+
+
+      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
+
+      with(tCurrentLabel)
+      {
+        setLeft(0);
+        setTop(0);
+      };
+
+      commandFrame.add(tCurrentLabel);
+
+
+
+      var tCurrentInput = new qx.ui.form.TextField;
+
+      with(tCurrentInput)
+      {
+        setLeft(0);
+        setRight(0);
+        setTop(20);
+
+        setReadOnly(true);
+      };
+
+      commandFrame.add(tCurrentInput);
+
+      t.getManager().addEventListener("changeSelection", function(e) {
+        if(e.getData()[0]) {
+          tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
+          this.debug('classname: ' + e.getData()[0].classname);
+        }
+        else {
+          tCurrentInput.setValue('');
+        }
+      });
+
+
+
+      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
+
+      with(tDoubleClick) {
+        setTop(60);
+        setLeft(0);
+      };
+
+      commandFrame.add(tDoubleClick);
+
+      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
+
+
+
+      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
+
+      with(tTreeLines) {
+        setTop(80);
+        setLeft(0);
+        setChecked(true);
+      };
+
+      commandFrame.add(tTreeLines);
+
+      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
+
+
+
+
+      var vShowItems = new qx.ui.form.Button("Show Items");
+
+      with(vShowItems) {
+        setTop(100);
+        setLeft(0);
+      };
+
+      commandFrame.add(vShowItems);
+
+      vShowItems.addEventListener("execute", function(e) {
+        alert(t.getItems());
+      });
+
+
+      var vDestroyTreeContent = new qx.ui.form.Button("Destroy tree content");
+
+      with(vDestroyTreeContent) {
+        setTop(180);
+        setLeft(0);
+      };
+
+      commandFrame.add(vDestroyTreeContent);
+
+      vDestroyTreeContent.addEventListener("execute", function(e) {
+         t.destroyContent();
+      });
+
+
+      var vCreateItems = new qx.ui.form.Button("Create items");
+
+      with(vCreateItems) {
+        setTop(140);
+        setLeft(0);
+      };
+
+      commandFrame.add(vCreateItems);
+
+      vCreateItems.addEventListener("execute", function(e) {
+        createItems(t);
+      });
+
+      var vDestroySelectedItem = new qx.ui.form.Button("Destroy selected item");
+
+      with(vDestroySelectedItem) {
+        setTop(220);
+        setLeft(0);
+      };
+
+      commandFrame.add(vDestroySelectedItem);
+
+      vDestroySelectedItem.addEventListener("execute", function(e) {
+        var vItem = t.getManager().getSelectedItem();
+        if(vItem) {
+          vItem.destroy();
+        }
+      });
+
+
+      var vDestroyContenSelectedItem = new qx.ui.form.Button("Destroy content of selected item");
+
+      with(vDestroyContenSelectedItem) {
+        setTop(260);
+        setLeft(0);
+      };
+
+      commandFrame.add(vDestroyContenSelectedItem);
+
+      vDestroyContenSelectedItem.addEventListener("execute", function(e) {
+        var vItem = t.getManager().getSelectedItem();
+        if(vItem && vItem instanceof qx.ui.tree.TreeFolder) {
+          vItem.destroyContent();
+        }
+      });
+
+    });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Umlauts_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Umlauts_1.html
new file mode 100644 (file)
index 0000000..9d08523
--- /dev/null
@@ -0,0 +1,26 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Test some Umlauts methods from the String.prototype.</p>
+  </div>
+
+  <script type="text/javascript">
+    qx.core.Init.getInstance().defineMain(function()
+    {
+      alert("Umlauts Short: " + qx.util.Normalization.umlautsShort("äöüÄÖÜß"))
+      alert("Umlauts Long: " + qx.util.Normalization.umlautsLong("äöüÄÖÜß"))
+    });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/VerticalBoxLayout_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/VerticalBoxLayout_1.html
new file mode 100644 (file)
index 0000000..97031e2
--- /dev/null
@@ -0,0 +1,1257 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Tests for the new implementation of the qx.ui.layout.VerticalBoxLayout widget.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var cl_white = new qx.renderer.color.Color("white");
+    var cl_blue = new qx.renderer.color.Color("blue");
+    var cl_yellow = new qx.renderer.color.Color("yellow");
+    var cl_green = new qx.renderer.color.Color("green");
+    var cl_orange = new qx.renderer.color.Color("orange");
+    var cl_purple = new qx.renderer.color.Color("purple");
+    var cl_aqua = new qx.renderer.color.Color("aqua");
+    var cl_fuchsia = new qx.renderer.color.Color("fuchsia");
+
+    /* ***********************************************
+
+       EXAMPLE ONE:
+       TOP ALIGN
+
+    *********************************************** */
+
+    var hbl1 = new qx.ui.layout.VerticalBoxLayout;
+
+    hbl1.setTop(48);
+    hbl1.setLeft(20);
+    hbl1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl1.setWidth("auto")
+    hbl1.setBottom(48);
+
+    hbl1.setSpacing(4);
+    hbl1.setPadding(8);
+
+    hbl1.setHorizontalChildrenAlign("right");
+    
+    
+    var w1_1 = new qx.ui.layout.CanvasLayout;
+    w1_1.setHeight(25);
+    w1_1.setWidth(25);
+    w1_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_1.setBackgroundColor(cl_white);
+    // w1_1.setMaxWidth(40);
+
+    var w1_2 = new qx.ui.layout.CanvasLayout;
+    w1_2.setHeight(25);
+    w1_2.setWidth(25);
+    w1_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_2.setBackgroundColor(cl_blue);
+    w1_2.setRight(10);
+
+    var w1_3 = new qx.ui.layout.CanvasLayout;
+    w1_3.setHeight(25);
+    w1_3.setWidth("100%");
+    w1_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_3.setBackgroundColor(cl_yellow);
+
+    var w1_4 = new qx.ui.layout.CanvasLayout;
+    w1_4.setHeight(25);
+    w1_4.setWidth(25);
+    w1_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_4.setBackgroundColor(cl_green);
+
+    var w1_5 = new qx.ui.layout.CanvasLayout;
+    w1_5.setHeight(40);
+    // w1_5.setWidth(25);
+    w1_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_5.setBackgroundColor(cl_orange);
+
+    var w1_6 = new qx.ui.layout.CanvasLayout;
+    w1_6.setHeight(25);
+    w1_6.setWidth(25);
+    w1_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_6.setBackgroundColor(cl_purple);
+    w1_6.setLeft(15);
+    w1_6.setTop(-25);
+
+    var w1_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w1_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w1_9 = new qx.ui.layout.CanvasLayout;
+    w1_9.setHeight(25);
+    w1_9.setWidth(25);
+    w1_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_9.setBackgroundColor(cl_aqua);
+
+    var w1_10 = new qx.ui.layout.CanvasLayout;
+    w1_10.setHeight(25);
+    w1_10.setWidth(25);
+    w1_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_10.setBackgroundColor(cl_fuchsia);
+
+    var hbl1_click = 0;
+    hbl1.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };
+      
+      switch(hbl1_click)
+      {
+        case 0:
+          this.setBottom(null);
+          this.setHeight("auto");
+          break;
+          
+        case 1:
+          this.setWidth(30);
+          break;
+        
+        case 2:
+          this.setWidth(80);
+          break;
+          
+        case 3:
+          this.setWidth("auto");
+          break;
+          
+        case 4:
+          this.setHeight(200);
+          break;
+          
+        case 5:
+          this.setHeight(null);
+          this.setBottom(48);
+          hbl1_click = 0;
+          return;        
+      };
+      
+      hbl1_click++;
+    });
+
+    w1_1.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(65);
+        this.setWidth(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w1_2.addEventListener("click", function(e) {
+      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
+    });
+
+    w1_3.addEventListener("click", function(e) {
+      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
+    });
+
+    w1_4.addEventListener("click", function(e) {
+      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
+    });
+
+    w1_5.addEventListener("click", function(e) {
+      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
+    });
+    
+    w1_6.addEventListener("click", function(e) {
+      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
+    });
+
+    w1_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w1_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w1_9.addEventListener("click", function(e) 
+    {
+      if (this.getLeft() == null)
+      {
+        this.setLeft(20);
+        this.setTop(-10);
+      }
+      else
+      {
+        this.setLeft(null);
+        this.setTop(null);
+      };
+    });
+    
+    w1_10.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(10);  
+        this.setWidth(10);
+        this.setTop(-5);
+        this.setRight(15);
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);
+        this.setTop(null);
+        this.setRight(null);
+      };
+    });    
+
+
+
+    hbl1.add(w1_1, w1_2, w1_3, w1_4, w1_5, w1_6, w1_7, w1_8, w1_9, w1_10);
+    d.add(hbl1);
+
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE TWO:
+       BOTTOM ALIGN
+
+    *********************************************** */
+
+    var hbl2 = new qx.ui.layout.VerticalBoxLayout;
+
+    hbl2.setLeft(110);
+    hbl2.setTop(48);
+    hbl2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl2.setWidth("auto");
+    hbl2.setBottom(48);
+
+    hbl2.setSpacing(4);
+    hbl2.setPadding(8);
+
+    hbl2.setVerticalChildrenAlign("bottom");
+    hbl2.setHorizontalChildrenAlign("center");
+
+
+    var w2_1 = new qx.ui.layout.CanvasLayout;
+    w2_1.setHeight(25);
+    w2_1.setWidth(25);
+    w2_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_1.setBackgroundColor(cl_white);
+    // w2_1.setMaxWidth(40);
+
+    var w2_2 = new qx.ui.layout.CanvasLayout;
+    w2_2.setHeight(25);
+    w2_2.setWidth(25);
+    w2_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_2.setBackgroundColor(cl_blue);
+    w2_2.setRight(10);
+
+    var w2_3 = new qx.ui.layout.CanvasLayout;
+    w2_3.setHeight(25);
+    w2_3.setWidth("100%");
+    w2_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_3.setBackgroundColor(cl_yellow);
+
+    var w2_4 = new qx.ui.layout.CanvasLayout;
+    w2_4.setHeight(25);
+    w2_4.setWidth(25);
+    w2_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_4.setBackgroundColor(cl_green);
+
+    var w2_5 = new qx.ui.layout.CanvasLayout;
+    w2_5.setHeight(40);
+    // w2_5.setWidth(25);
+    w2_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_5.setBackgroundColor(cl_orange);
+
+    var w2_6 = new qx.ui.layout.CanvasLayout;
+    w2_6.setHeight(25);
+    w2_6.setWidth(25);
+    w2_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_6.setBackgroundColor(cl_purple);
+    w2_6.setLeft(15);
+    w2_6.setTop(-25);    
+
+    var w2_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w2_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w2_9 = new qx.ui.layout.CanvasLayout;
+    w2_9.setHeight(25);
+    w2_9.setWidth(25);
+    w2_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_9.setBackgroundColor(cl_aqua);
+
+    var w2_10 = new qx.ui.layout.CanvasLayout;
+    w2_10.setHeight(25);
+    w2_10.setWidth(25);
+    w2_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_10.setBackgroundColor(cl_fuchsia);
+    w2_10.foo = true;
+
+
+    var hbl2_click = 0;
+    hbl2.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl2_click)
+      {
+        case 0:
+          this.setBottom(null);
+          this.setHeight("auto");
+          break;
+          
+        case 1:
+          this.setWidth(30);
+          break;
+        
+        case 2:
+          this.setWidth(80);
+          break;
+          
+        case 3:
+          this.setWidth("auto");
+          break;
+          
+        case 4:
+          this.setHeight(200);
+          break;
+          
+        case 5:
+          this.setHeight(null);
+          this.setBottom(48);
+          hbl2_click = 0;
+          return;        
+      };
+      
+      hbl2_click++;
+    });
+    
+    w2_1.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(65);
+        this.setWidth(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w2_2.addEventListener("click", function(e) {
+      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
+    });
+
+    w2_3.addEventListener("click", function(e) {
+      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
+    });
+
+    w2_4.addEventListener("click", function(e) {
+      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
+    });
+
+    w2_5.addEventListener("click", function(e) {
+      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
+    });
+    
+    w2_6.addEventListener("click", function(e) {
+      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
+    });
+
+    w2_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w2_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w2_9.addEventListener("click", function(e) 
+    {
+      if (this.getLeft() == null)
+      {
+        this.setLeft(20);
+        this.setTop(-10);
+      }
+      else
+      {
+        this.setLeft(null);
+        this.setTop(null);
+      };
+    });
+    
+    w2_10.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(10);  
+        this.setWidth(10);
+        this.setTop(-5);
+        this.setRight(15);
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);
+        this.setTop(null);
+        this.setRight(null);
+      };
+    });
+
+
+
+    hbl2.add(w2_1, w2_2, w2_3, w2_4, w2_5, w2_6, w2_7, w2_8, w2_9, w2_10);
+    d.add(hbl2);
+
+
+    /* ***********************************************
+
+       EXAMPLE THREE:
+       CENTER ALIGN
+
+    *********************************************** */
+
+    var hbl3 = new qx.ui.layout.VerticalBoxLayout;
+
+    hbl3.setLeft(200);
+    hbl3.setTop(48);
+    hbl3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl3.setWidth("auto");
+    hbl3.setBottom(48);
+
+    hbl3.setSpacing(4);
+    hbl3.setPadding(8);
+
+    hbl3.setVerticalChildrenAlign("middle");
+
+
+
+    var w3_1 = new qx.ui.layout.CanvasLayout;
+    w3_1.setHeight(25);
+    w3_1.setWidth(25);
+    w3_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_1.setBackgroundColor(cl_white);
+    // w3_1.setMaxWidth(40);
+
+    var w3_2 = new qx.ui.layout.CanvasLayout;
+    w3_2.setHeight(25);
+    w3_2.setWidth(25);
+    w3_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_2.setBackgroundColor(cl_blue);
+    w3_2.setRight(10);
+
+    var w3_3 = new qx.ui.layout.CanvasLayout;
+    w3_3.setHeight(25);
+    w3_3.setWidth("100%");
+    w3_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_3.setBackgroundColor(cl_yellow);
+
+    var w3_4 = new qx.ui.layout.CanvasLayout;
+    w3_4.setHeight(25);
+    w3_4.setWidth(25);
+    w3_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_4.setBackgroundColor(cl_green);
+
+    var w3_5 = new qx.ui.layout.CanvasLayout;
+    w3_5.setHeight(40);
+    // w3_5.setWidth(25);
+    w3_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_5.setBackgroundColor(cl_orange);
+
+    var w3_6 = new qx.ui.layout.CanvasLayout;
+    w3_6.setHeight(25);
+    w3_6.setWidth(25);
+    w3_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_6.setBackgroundColor(cl_purple);
+    w3_6.setLeft(15);
+    w3_6.setTop(-25);    
+
+    var w3_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w3_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w3_9 = new qx.ui.layout.CanvasLayout;
+    w3_9.setHeight(25);
+    w3_9.setWidth(25);
+    w3_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_9.setBackgroundColor(cl_aqua);
+
+    var w3_10 = new qx.ui.layout.CanvasLayout;
+    w3_10.setHeight(25);
+    w3_10.setWidth(25);
+    w3_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl3_click = 0;
+    hbl3.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl3_click)
+      {
+        case 0:
+          this.setBottom(null);
+          this.setHeight("auto");
+          break;
+          
+        case 1:
+          this.setWidth(30);
+          break;
+        
+        case 2:
+          this.setWidth(80);
+          break;
+          
+        case 3:
+          this.setWidth("auto");
+          break;
+          
+        case 4:
+          this.setHeight(200);
+          break;
+          
+        case 5:
+          this.setHeight(null);
+          this.setBottom(48);
+          hbl3_click = 0;
+          return;        
+      };
+      
+      hbl3_click++;
+    });
+
+    w3_1.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(65);
+        this.setWidth(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w3_2.addEventListener("click", function(e) {
+      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
+    });
+
+    w3_3.addEventListener("click", function(e) {
+      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
+    });
+
+    w3_4.addEventListener("click", function(e) {
+      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
+    });
+
+    w3_5.addEventListener("click", function(e) {
+      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
+    });
+    
+    w3_6.addEventListener("click", function(e) {
+      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
+    });
+
+    w3_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w3_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w3_9.addEventListener("click", function(e) 
+    {
+      if (this.getLeft() == null)
+      {
+        this.setLeft(20);
+        this.setTop(-10);
+      }
+      else
+      {
+        this.setLeft(null);
+        this.setTop(null);
+      };
+    });
+    
+    w3_10.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(10);  
+        this.setWidth(10);
+        this.setTop(-5);
+        this.setRight(15);
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);
+        this.setTop(null);
+        this.setRight(null);
+      };
+    });
+
+
+
+    hbl3.add(w3_1, w3_2, w3_3, w3_4, w3_5, w3_6, w3_7, w3_8, w3_9, w3_10);
+    d.add(hbl3);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE FOUR:
+       TOP ALIGN, REVERTED CHILDREN ORDER
+
+    *********************************************** */
+
+    var hbl4 = new qx.ui.layout.VerticalBoxLayout;
+
+    hbl4.setLeft(290);
+    hbl4.setTop(48);
+    hbl4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl4.setHeight(null);
+    hbl4.setBottom(48);
+
+    hbl4.setSpacing(4);
+    hbl4.setPadding(8);
+    hbl4.setReverseChildrenOrder(true);
+    hbl4.setHorizontalChildrenAlign("right");
+    
+    hbl4.setWidth(80);
+
+
+
+    var w4_1 = new qx.ui.layout.CanvasLayout;
+    w4_1.setHeight(25);
+    w4_1.setWidth(25);
+    w4_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_1.setBackgroundColor(cl_white);
+    // w4_1.setMaxWidth(40);
+
+    var w4_2 = new qx.ui.layout.CanvasLayout;
+    w4_2.setHeight(25);
+    w4_2.setWidth(25);
+    w4_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_2.setBackgroundColor(cl_blue);
+    w4_2.setRight(10);
+
+    var w4_3 = new qx.ui.layout.CanvasLayout;
+    w4_3.setHeight(25);
+    w4_3.setWidth("100%");
+    w4_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_3.setBackgroundColor(cl_yellow);
+
+    var w4_4 = new qx.ui.layout.CanvasLayout;
+    w4_4.setHeight(25);
+    w4_4.setWidth(25);
+    w4_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_4.setBackgroundColor(cl_green);
+
+    var w4_5 = new qx.ui.layout.CanvasLayout;
+    w4_5.setHeight(40);
+    // w4_5.setWidth(25);
+    w4_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_5.setBackgroundColor(cl_orange);
+
+    var w4_6 = new qx.ui.layout.CanvasLayout;
+    w4_6.setHeight(25);
+    w4_6.setWidth(25);
+    w4_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_6.setBackgroundColor(cl_purple);
+    w4_6.setLeft(15);
+    w4_6.setTop(-25);    
+
+    var w4_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w4_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w4_9 = new qx.ui.layout.CanvasLayout;
+    w4_9.setHeight(25);
+    w4_9.setWidth(25);
+    w4_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_9.setBackgroundColor(cl_aqua);
+
+    var w4_10 = new qx.ui.layout.CanvasLayout;
+    w4_10.setHeight(25);
+    w4_10.setWidth(25);
+    w4_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl4_click = 0;
+    hbl4.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl4_click)
+      {
+        case 0:
+          this.setBottom(null);
+          this.setHeight("auto");
+          break;
+          
+        case 1:
+          this.setWidth(30);
+          break;
+        
+        case 2:
+          this.setWidth("auto");
+          break;
+          
+        case 3:
+          this.setWidth(80);
+          break;
+          
+        case 4:
+          this.setHeight(200);
+          break;
+          
+        case 5:
+          this.setHeight(null);
+          this.setBottom(48);
+          hbl4_click = 0;
+          return;        
+      };
+      
+      hbl4_click++;
+    });
+
+    w4_1.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(65);
+        this.setWidth(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w4_2.addEventListener("click", function(e) {
+      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
+    });
+
+    w4_3.addEventListener("click", function(e) {
+      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
+    });
+
+    w4_4.addEventListener("click", function(e) {
+      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
+    });
+
+    w4_5.addEventListener("click", function(e) {
+      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
+    });
+    
+    w4_6.addEventListener("click", function(e) {
+      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
+    });
+
+    w4_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w4_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w4_9.addEventListener("click", function(e) 
+    {
+      if (this.getLeft() == null)
+      {
+        this.setLeft(20);
+        this.setTop(-10);
+      }
+      else
+      {
+        this.setLeft(null);
+        this.setTop(null);
+      };
+    });
+    
+    w4_10.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(10);  
+        this.setWidth(10);
+        this.setTop(-5);
+        this.setRight(15);
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);
+        this.setTop(null);
+        this.setRight(null);
+      };
+    });
+
+
+
+    hbl4.add(w4_1, w4_2, w4_3, w4_4, w4_5, w4_6, w4_7, w4_8, w4_9, w4_10);
+    d.add(hbl4);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE FIVE:
+       BOTTOM ALIGN, REVERTED CHILDREN ORDER
+
+    *********************************************** */
+
+    var hbl5 = new qx.ui.layout.VerticalBoxLayout;
+
+    hbl5.setLeft(380);
+    hbl5.setTop(48);
+    hbl5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl5.setHeight(null);
+    hbl5.setBottom(48);
+
+    hbl5.setSpacing(4);
+    hbl5.setPadding(8);
+
+    hbl5.setVerticalChildrenAlign("bottom");
+    hbl5.setReverseChildrenOrder(true);
+    hbl5.setHorizontalChildrenAlign("center");
+    
+    hbl5.setWidth(80);
+
+
+    var w5_1 = new qx.ui.layout.CanvasLayout;
+    w5_1.setHeight(25);
+    w5_1.setWidth(25);
+    w5_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_1.setBackgroundColor(cl_white);
+    // w5_1.setMaxWidth(40);
+
+    var w5_2 = new qx.ui.layout.CanvasLayout;
+    w5_2.setHeight(25);
+    w5_2.setWidth(25);
+    w5_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_2.setBackgroundColor(cl_blue);
+    w5_2.setRight(10);
+
+    var w5_3 = new qx.ui.layout.CanvasLayout;
+    w5_3.setHeight(25);
+    w5_3.setWidth("100%");
+    w5_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_3.setBackgroundColor(cl_yellow);
+
+    var w5_4 = new qx.ui.layout.CanvasLayout;
+    w5_4.setHeight(25);
+    w5_4.setWidth(25);
+    w5_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_4.setBackgroundColor(cl_green);
+
+    var w5_5 = new qx.ui.layout.CanvasLayout;
+    w5_5.setHeight(40);
+    // w5_5.setWidth(25);
+    w5_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_5.setBackgroundColor(cl_orange);
+
+    var w5_6 = new qx.ui.layout.CanvasLayout;
+    w5_6.setHeight(25);
+    w5_6.setWidth(25);
+    w5_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_6.setBackgroundColor(cl_purple);
+    w5_6.setLeft(15);
+    w5_6.setTop(-25);    
+
+    var w5_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w5_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w5_9 = new qx.ui.layout.CanvasLayout;
+    w5_9.setHeight(25);
+    w5_9.setWidth(25);
+    w5_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_9.setBackgroundColor(cl_aqua);
+
+    var w5_10 = new qx.ui.layout.CanvasLayout;
+    w5_10.setHeight(25);
+    w5_10.setWidth(25);
+    w5_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl5_click = 0;
+    hbl5.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl5_click)
+      {
+        case 0:
+          this.setBottom(null);
+          this.setHeight("auto");
+          break;
+          
+        case 1:
+          this.setWidth(30);
+          break;
+        
+        case 2:
+          this.setWidth("auto");
+          break;
+          
+        case 3:
+          this.setWidth(80);
+          break;
+          
+        case 4:
+          this.setHeight(200);
+          break;
+          
+        case 5:
+          this.setHeight(null);
+          this.setBottom(48);
+          hbl5_click = 0;
+          return;        
+      };
+      
+      hbl5_click++;
+    });
+
+    w5_1.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(65);
+        this.setWidth(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w5_2.addEventListener("click", function(e) {
+      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
+    });
+
+    w5_3.addEventListener("click", function(e) {
+      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
+    });
+
+    w5_4.addEventListener("click", function(e) {
+      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
+    });
+
+    w5_5.addEventListener("click", function(e) {
+      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
+    });
+    
+    w5_6.addEventListener("click", function(e) {
+      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
+    });
+
+    w5_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w5_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w5_9.addEventListener("click", function(e) 
+    {
+      if (this.getLeft() == null)
+      {
+        this.setLeft(20);
+        this.setTop(-10);
+      }
+      else
+      {
+        this.setLeft(null);
+        this.setTop(null);
+      };
+    });
+    
+    w5_10.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(10);  
+        this.setWidth(10);
+        this.setTop(-5);
+        this.setRight(15);
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);
+        this.setTop(null);
+        this.setRight(null);
+      };
+    });
+
+
+
+    hbl5.add(w5_1, w5_2, w5_3, w5_4, w5_5, w5_6, w5_7, w5_8, w5_9, w5_10);
+    d.add(hbl5);
+
+
+
+
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE SIX:
+       CENTER ALIGN, REVERTED CHILDREN ORDER
+
+    *********************************************** */
+
+    var hbl6 = new qx.ui.layout.VerticalBoxLayout;
+
+    hbl6.setLeft(470);
+    hbl6.setTop(48);
+    hbl6.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl6.setHeight(null);
+    hbl6.setBottom(48);
+
+    hbl6.setSpacing(4);
+    hbl6.setPadding(8);
+
+    hbl6.setVerticalChildrenAlign("middle");
+    hbl6.setReverseChildrenOrder(true);
+    hbl6.setWidth(80);
+
+
+    var w6_1 = new qx.ui.layout.CanvasLayout;
+    w6_1.setHeight(25);
+    w6_1.setWidth(25);
+    w6_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_1.setBackgroundColor(cl_white);
+    // w6_1.setMaxWidth(40);
+
+    var w6_2 = new qx.ui.layout.CanvasLayout;
+    w6_2.setHeight(25);
+    w6_2.setWidth(25);
+    w6_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_2.setBackgroundColor(cl_blue);
+    w6_2.setRight(10);
+
+    var w6_3 = new qx.ui.layout.CanvasLayout;
+    w6_3.setHeight(25);
+    w6_3.setWidth("100%");
+    w6_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_3.setBackgroundColor(cl_yellow);
+
+    var w6_4 = new qx.ui.layout.CanvasLayout;
+    w6_4.setHeight(25);
+    w6_4.setWidth(25);
+    w6_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_4.setBackgroundColor(cl_green);
+
+    var w6_5 = new qx.ui.layout.CanvasLayout;
+    w6_5.setHeight(40);
+    // w6_5.setWidth(25);
+    w6_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_5.setBackgroundColor(cl_orange);
+
+    var w6_6 = new qx.ui.layout.CanvasLayout;
+    w6_6.setHeight(25);
+    w6_6.setWidth(25);
+    w6_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_6.setBackgroundColor(cl_purple);
+    w6_6.setLeft(15);
+    w6_6.setTop(-25);    
+
+    var w6_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w6_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w6_9 = new qx.ui.layout.CanvasLayout;
+    w6_9.setHeight(25);
+    w6_9.setWidth(25);
+    w6_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_9.setBackgroundColor(cl_aqua);
+
+    var w6_10 = new qx.ui.layout.CanvasLayout;
+    w6_10.setHeight(25);
+    w6_10.setWidth(25);
+    w6_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl6_click = 0;
+    hbl6.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };
+            
+      switch(hbl6_click)
+      {
+        case 0:
+          this.setBottom(null);
+          this.setHeight("auto");
+          break;
+          
+        case 1:
+          this.setWidth(30);
+          break;
+        
+        case 2:
+          this.setWidth("auto");
+          break;
+          
+        case 3:
+          this.setWidth(80);
+          break;
+          
+        case 4:
+          this.setHeight(200);
+          break;
+          
+        case 5:
+          this.setHeight(null);
+          this.setBottom(48);
+          hbl6_click = 0;
+          return;        
+      };
+      
+      hbl6_click++;
+    });
+
+    w6_1.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(65);
+        this.setWidth(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w6_2.addEventListener("click", function(e) {
+      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
+    });
+
+    w6_3.addEventListener("click", function(e) {
+      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
+    });
+
+    w6_4.addEventListener("click", function(e) {
+      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
+    });
+
+    w6_5.addEventListener("click", function(e) {
+      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
+    });
+    
+    w6_6.addEventListener("click", function(e) {
+      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
+    });
+
+    w6_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w6_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w6_9.addEventListener("click", function(e) 
+    {
+      if (this.getLeft() == null)
+      {
+        this.setLeft(20);
+        this.setTop(-10);
+      }
+      else
+      {
+        this.setLeft(null);
+        this.setTop(null);
+      };
+    });
+    
+    w6_10.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(10);  
+        this.setWidth(10);
+        this.setTop(-5);
+        this.setRight(15);
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);
+        this.setTop(null);
+        this.setRight(null);
+      };
+    });
+
+
+
+    hbl6.add(w6_1, w6_2, w6_3, w6_4, w6_5, w6_6, w6_7, w6_8, w6_9, w6_10);
+    d.add(hbl6);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/VerticalBoxLayout_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/VerticalBoxLayout_2.html
new file mode 100644 (file)
index 0000000..9a8781e
--- /dev/null
@@ -0,0 +1,1227 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Tests for the new implementation of the qx.ui.layout.VerticalBoxLayout widget.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var cl_white = new qx.renderer.color.Color("white");
+    var cl_blue = new qx.renderer.color.Color("blue");
+    var cl_yellow = new qx.renderer.color.Color("yellow");
+    var cl_green = new qx.renderer.color.Color("green");
+    var cl_orange = new qx.renderer.color.Color("orange");
+    var cl_purple = new qx.renderer.color.Color("purple");
+    var cl_aqua = new qx.renderer.color.Color("aqua");
+    var cl_fuchsia = new qx.renderer.color.Color("fuchsia");
+
+    /* ***********************************************
+
+       EXAMPLE ONE:
+       TOP ALIGN
+
+    *********************************************** */
+
+    var hbl1 = new qx.ui.layout.VerticalBoxLayout;
+
+    hbl1.setTop(48);
+    hbl1.setLeft(20);
+    hbl1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl1.setWidth("auto");
+    hbl1.setBottom(48);
+
+    hbl1.setSpacing(4);
+    hbl1.setPadding(8);
+
+    hbl1.setHorizontalChildrenAlign("right");
+    
+    
+    var w1_1 = new qx.ui.layout.CanvasLayout;
+    w1_1.setHeight(25);
+    w1_1.setWidth(25);
+    w1_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_1.setBackgroundColor(cl_white);
+    // w1_1.setMaxWidth(40);
+
+    var w1_2 = new qx.ui.layout.CanvasLayout;
+    w1_2.setHeight(25);
+    w1_2.setWidth(25);
+    w1_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_2.setBackgroundColor(cl_blue);
+    w1_2.setRight(10);
+
+    var w1_3 = new qx.ui.layout.CanvasLayout;
+    w1_3.setHeight(25);
+    w1_3.setWidth("100%");
+    w1_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_3.setBackgroundColor(cl_yellow);
+
+    var w1_4 = new qx.ui.layout.CanvasLayout;
+    w1_4.setHeight(25);
+    w1_4.setWidth(25);
+    w1_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_4.setBackgroundColor(cl_green);
+
+    var w1_5 = new qx.ui.layout.CanvasLayout;
+    w1_5.setHeight("15%");
+    // w1_5.setWidth(25);
+    w1_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_5.setBackgroundColor(cl_orange);
+
+    var w1_6 = new qx.ui.layout.CanvasLayout;
+    w1_6.setHeight(25);
+    w1_6.setWidth(25);
+    w1_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_6.setBackgroundColor(cl_purple);
+    w1_6.setLeft(15);
+    w1_6.setTop(-25);
+
+    var w1_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w1_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w1_9 = new qx.ui.layout.CanvasLayout;
+    w1_9.setHeight(25);
+    w1_9.setWidth(25);
+    w1_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_9.setBackgroundColor(cl_aqua);
+
+    var w1_10 = new qx.ui.layout.CanvasLayout;
+    w1_10.setHeight(25);
+    w1_10.setWidth(25);
+    w1_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w1_10.setBackgroundColor(cl_fuchsia);
+
+    var hbl1_click = 0;
+    hbl1.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };
+      
+      switch(hbl1_click)
+      {
+        case 0:
+          this.setWidth(30);
+          break;
+        
+        case 1:
+          this.setWidth(80);
+          break;
+          
+        case 2:
+          this.setWidth("auto");
+          break;
+          
+        case 3:
+          this.setHeight(200);
+          break;
+          
+        case 4:
+          this.setHeight(null);
+          this.setBottom(48);
+          hbl1_click = 0;
+          return;        
+      };
+      
+      hbl1_click++;
+    });
+
+    w1_1.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(65);
+        this.setWidth(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w1_2.addEventListener("click", function(e) {
+      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
+    });
+
+    w1_3.addEventListener("click", function(e) {
+      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
+    });
+
+    w1_4.addEventListener("click", function(e) {
+      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
+    });
+
+    w1_5.addEventListener("click", function(e) {
+      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
+    });
+    
+    w1_6.addEventListener("click", function(e) {
+      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
+    });
+
+    w1_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w1_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w1_9.addEventListener("click", function(e) 
+    {
+      if (this.getLeft() == null)
+      {
+        this.setLeft(20);
+        this.setTop(-10);
+      }
+      else
+      {
+        this.setLeft(null);
+        this.setTop(null);
+      };
+    });
+    
+    w1_10.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(10);  
+        this.setWidth(10);
+        this.setTop(-5);
+        this.setRight(15);
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);
+        this.setTop(null);
+        this.setRight(null);
+      };
+    });    
+
+
+
+    hbl1.add(w1_1, w1_2, w1_3, w1_4, w1_5, w1_6, w1_7, w1_8, w1_9, w1_10);
+    d.add(hbl1);
+
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE TWO:
+       BOTTOM ALIGN
+
+    *********************************************** */
+
+    var hbl2 = new qx.ui.layout.VerticalBoxLayout;
+
+    hbl2.setLeft(110);
+    hbl2.setTop(48);
+    hbl2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl2.setWidth("auto");
+    hbl2.setBottom(48);
+
+    hbl2.setSpacing(4);
+    hbl2.setPadding(8);
+
+    hbl2.setVerticalChildrenAlign("bottom");
+    hbl2.setHorizontalChildrenAlign("center");
+
+
+    var w2_1 = new qx.ui.layout.CanvasLayout;
+    w2_1.setHeight(25);
+    w2_1.setWidth(25);
+    w2_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_1.setBackgroundColor(cl_white);
+    // w2_1.setMaxWidth(40);
+
+    var w2_2 = new qx.ui.layout.CanvasLayout;
+    w2_2.setHeight(25);
+    w2_2.setWidth(25);
+    w2_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_2.setBackgroundColor(cl_blue);
+    w2_2.setRight(10);
+
+    var w2_3 = new qx.ui.layout.CanvasLayout;
+    w2_3.setHeight(25);
+    w2_3.setWidth("100%");
+    w2_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_3.setBackgroundColor(cl_yellow);
+
+    var w2_4 = new qx.ui.layout.CanvasLayout;
+    w2_4.setHeight(25);
+    w2_4.setWidth(25);
+    w2_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_4.setBackgroundColor(cl_green);
+
+    var w2_5 = new qx.ui.layout.CanvasLayout;
+    w2_5.setHeight("15%");
+    // w2_5.setWidth(25);
+    w2_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_5.setBackgroundColor(cl_orange);
+
+    var w2_6 = new qx.ui.layout.CanvasLayout;
+    w2_6.setHeight(25);
+    w2_6.setWidth(25);
+    w2_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_6.setBackgroundColor(cl_purple);
+    w2_6.setLeft(15);
+    w2_6.setTop(-25);    
+
+    var w2_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w2_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w2_9 = new qx.ui.layout.CanvasLayout;
+    w2_9.setHeight(25);
+    w2_9.setWidth(25);
+    w2_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_9.setBackgroundColor(cl_aqua);
+
+    var w2_10 = new qx.ui.layout.CanvasLayout;
+    w2_10.setHeight(25);
+    w2_10.setWidth(25);
+    w2_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w2_10.setBackgroundColor(cl_fuchsia);
+    w2_10.foo = true;
+
+
+    var hbl2_click = 0;
+    hbl2.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl2_click)
+      {
+        case 0:
+          this.setWidth(30);
+          break;
+        
+        case 1:
+          this.setWidth(80);
+          break;
+          
+        case 2:
+          this.setWidth("auto");
+          break;
+          
+        case 3:
+          this.setHeight(200);
+          break;
+          
+        case 4:
+          this.setHeight(null);
+          this.setBottom(48);
+          hbl2_click = 0;
+          return;        
+      };
+      
+      hbl2_click++;
+    });
+    
+    w2_1.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(65);
+        this.setWidth(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w2_2.addEventListener("click", function(e) {
+      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
+    });
+
+    w2_3.addEventListener("click", function(e) {
+      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
+    });
+
+    w2_4.addEventListener("click", function(e) {
+      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
+    });
+
+    w2_5.addEventListener("click", function(e) {
+      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
+    });
+    
+    w2_6.addEventListener("click", function(e) {
+      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
+    });
+
+    w2_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w2_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w2_9.addEventListener("click", function(e) 
+    {
+      if (this.getLeft() == null)
+      {
+        this.setLeft(20);
+        this.setTop(-10);
+      }
+      else
+      {
+        this.setLeft(null);
+        this.setTop(null);
+      };
+    });
+    
+    w2_10.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(10);  
+        this.setWidth(10);
+        this.setTop(-5);
+        this.setRight(15);
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);
+        this.setTop(null);
+        this.setRight(null);
+      };
+    });
+
+
+
+    hbl2.add(w2_1, w2_2, w2_3, w2_4, w2_5, w2_6, w2_7, w2_8, w2_9, w2_10);
+    d.add(hbl2);
+
+
+    /* ***********************************************
+
+       EXAMPLE THREE:
+       CENTER ALIGN
+
+    *********************************************** */
+
+    var hbl3 = new qx.ui.layout.VerticalBoxLayout;
+
+    hbl3.setLeft(200);
+    hbl3.setTop(48);
+    hbl3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl3.setWidth("auto");
+    hbl3.setBottom(48);
+
+    hbl3.setSpacing(4);
+    hbl3.setPadding(8);
+
+    hbl3.setVerticalChildrenAlign("middle");
+
+
+
+    var w3_1 = new qx.ui.layout.CanvasLayout;
+    w3_1.setHeight(25);
+    w3_1.setWidth(25);
+    w3_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_1.setBackgroundColor(cl_white);
+    // w3_1.setMaxWidth(40);
+
+    var w3_2 = new qx.ui.layout.CanvasLayout;
+    w3_2.setHeight(25);
+    w3_2.setWidth(25);
+    w3_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_2.setBackgroundColor(cl_blue);
+    w3_2.setRight(10);
+
+    var w3_3 = new qx.ui.layout.CanvasLayout;
+    w3_3.setHeight(25);
+    w3_3.setWidth("100%");
+    w3_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_3.setBackgroundColor(cl_yellow);
+
+    var w3_4 = new qx.ui.layout.CanvasLayout;
+    w3_4.setHeight(25);
+    w3_4.setWidth(25);
+    w3_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_4.setBackgroundColor(cl_green);
+
+    var w3_5 = new qx.ui.layout.CanvasLayout;
+    w3_5.setHeight("15%");
+    // w3_5.setWidth(25);
+    w3_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_5.setBackgroundColor(cl_orange);
+
+    var w3_6 = new qx.ui.layout.CanvasLayout;
+    w3_6.setHeight(25);
+    w3_6.setWidth(25);
+    w3_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_6.setBackgroundColor(cl_purple);
+    w3_6.setLeft(15);
+    w3_6.setTop(-25);    
+
+    var w3_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w3_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w3_9 = new qx.ui.layout.CanvasLayout;
+    w3_9.setHeight(25);
+    w3_9.setWidth(25);
+    w3_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_9.setBackgroundColor(cl_aqua);
+
+    var w3_10 = new qx.ui.layout.CanvasLayout;
+    w3_10.setHeight(25);
+    w3_10.setWidth(25);
+    w3_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w3_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl3_click = 0;
+    hbl3.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl3_click)
+      {
+        case 0:
+          this.setWidth(30);
+          break;
+        
+        case 1:
+          this.setWidth(80);
+          break;
+          
+        case 2:
+          this.setWidth("auto");
+          break;
+          
+        case 3:
+          this.setHeight(200);
+          break;
+          
+        case 4:
+          this.setHeight(null);
+          this.setBottom(48);
+          hbl3_click = 0;
+          return;        
+      };
+      
+      hbl3_click++;
+    });
+
+    w3_1.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(65);
+        this.setWidth(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w3_2.addEventListener("click", function(e) {
+      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
+    });
+
+    w3_3.addEventListener("click", function(e) {
+      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
+    });
+
+    w3_4.addEventListener("click", function(e) {
+      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
+    });
+
+    w3_5.addEventListener("click", function(e) {
+      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
+    });
+    
+    w3_6.addEventListener("click", function(e) {
+      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
+    });
+
+    w3_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w3_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w3_9.addEventListener("click", function(e) 
+    {
+      if (this.getLeft() == null)
+      {
+        this.setLeft(20);
+        this.setTop(-10);
+      }
+      else
+      {
+        this.setLeft(null);
+        this.setTop(null);
+      };
+    });
+    
+    w3_10.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(10);  
+        this.setWidth(10);
+        this.setTop(-5);
+        this.setRight(15);
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);
+        this.setTop(null);
+        this.setRight(null);
+      };
+    });
+
+
+
+    hbl3.add(w3_1, w3_2, w3_3, w3_4, w3_5, w3_6, w3_7, w3_8, w3_9, w3_10);
+    d.add(hbl3);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE FOUR:
+       TOP ALIGN, REVERTED CHILDREN ORDER
+
+    *********************************************** */
+
+    var hbl4 = new qx.ui.layout.VerticalBoxLayout;
+
+    hbl4.setLeft(290);
+    hbl4.setTop(48);
+    hbl4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl4.setHeight(null);
+    hbl4.setBottom(48);
+
+    hbl4.setSpacing(4);
+    hbl4.setPadding(8);
+    hbl4.setReverseChildrenOrder(true);
+    hbl4.setHorizontalChildrenAlign("right");
+    
+    hbl4.setWidth(80);
+
+
+
+    var w4_1 = new qx.ui.layout.CanvasLayout;
+    w4_1.setHeight(25);
+    w4_1.setWidth(25);
+    w4_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_1.setBackgroundColor(cl_white);
+    // w4_1.setMaxWidth(40);
+
+    var w4_2 = new qx.ui.layout.CanvasLayout;
+    w4_2.setHeight(25);
+    w4_2.setWidth(25);
+    w4_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_2.setBackgroundColor(cl_blue);
+    w4_2.setRight(10);
+
+    var w4_3 = new qx.ui.layout.CanvasLayout;
+    w4_3.setHeight(25);
+    w4_3.setWidth("100%");
+    w4_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_3.setBackgroundColor(cl_yellow);
+
+    var w4_4 = new qx.ui.layout.CanvasLayout;
+    w4_4.setHeight(25);
+    w4_4.setWidth(25);
+    w4_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_4.setBackgroundColor(cl_green);
+
+    var w4_5 = new qx.ui.layout.CanvasLayout;
+    w4_5.setHeight("15%");
+    // w4_5.setWidth(25);
+    w4_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_5.setBackgroundColor(cl_orange);
+
+    var w4_6 = new qx.ui.layout.CanvasLayout;
+    w4_6.setHeight(25);
+    w4_6.setWidth(25);
+    w4_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_6.setBackgroundColor(cl_purple);
+    w4_6.setLeft(15);
+    w4_6.setTop(-25);    
+
+    var w4_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w4_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w4_9 = new qx.ui.layout.CanvasLayout;
+    w4_9.setHeight(25);
+    w4_9.setWidth(25);
+    w4_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_9.setBackgroundColor(cl_aqua);
+
+    var w4_10 = new qx.ui.layout.CanvasLayout;
+    w4_10.setHeight(25);
+    w4_10.setWidth(25);
+    w4_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w4_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl4_click = 0;
+    hbl4.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl4_click)
+      {
+        case 0:
+          this.setWidth(30);
+          break;
+        
+        case 1:
+          this.setWidth("auto");
+          break;
+          
+        case 2:
+          this.setWidth(80);
+          break;
+          
+        case 3:
+          this.setHeight(200);
+          break;
+          
+        case 4:
+          this.setHeight(null);
+          this.setBottom(48);
+          hbl4_click = 0;
+          return;        
+      };
+      
+      hbl4_click++;
+    });
+
+    w4_1.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(65);
+        this.setWidth(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w4_2.addEventListener("click", function(e) {
+      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
+    });
+
+    w4_3.addEventListener("click", function(e) {
+      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
+    });
+
+    w4_4.addEventListener("click", function(e) {
+      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
+    });
+
+    w4_5.addEventListener("click", function(e) {
+      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
+    });
+    
+    w4_6.addEventListener("click", function(e) {
+      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
+    });
+
+    w4_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w4_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w4_9.addEventListener("click", function(e) 
+    {
+      if (this.getLeft() == null)
+      {
+        this.setLeft(20);
+        this.setTop(-10);
+      }
+      else
+      {
+        this.setLeft(null);
+        this.setTop(null);
+      };
+    });
+    
+    w4_10.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(10);  
+        this.setWidth(10);
+        this.setTop(-5);
+        this.setRight(15);
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);
+        this.setTop(null);
+        this.setRight(null);
+      };
+    });
+
+
+
+    hbl4.add(w4_1, w4_2, w4_3, w4_4, w4_5, w4_6, w4_7, w4_8, w4_9, w4_10);
+    d.add(hbl4);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE FIVE:
+       BOTTOM ALIGN, REVERTED CHILDREN ORDER
+
+    *********************************************** */
+
+    var hbl5 = new qx.ui.layout.VerticalBoxLayout;
+
+    hbl5.setLeft(380);
+    hbl5.setTop(48);
+    hbl5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl5.setHeight(null);
+    hbl5.setBottom(48);
+
+    hbl5.setSpacing(4);
+    hbl5.setPadding(8);
+
+    hbl5.setVerticalChildrenAlign("bottom");
+    hbl5.setReverseChildrenOrder(true);
+    hbl5.setHorizontalChildrenAlign("center");
+    
+    hbl5.setWidth(80);
+
+
+    var w5_1 = new qx.ui.layout.CanvasLayout;
+    w5_1.setHeight(25);
+    w5_1.setWidth(25);
+    w5_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_1.setBackgroundColor(cl_white);
+    // w5_1.setMaxWidth(40);
+
+    var w5_2 = new qx.ui.layout.CanvasLayout;
+    w5_2.setHeight(25);
+    w5_2.setWidth(25);
+    w5_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_2.setBackgroundColor(cl_blue);
+    w5_2.setRight(10);
+
+    var w5_3 = new qx.ui.layout.CanvasLayout;
+    w5_3.setHeight(25);
+    w5_3.setWidth("100%");
+    w5_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_3.setBackgroundColor(cl_yellow);
+
+    var w5_4 = new qx.ui.layout.CanvasLayout;
+    w5_4.setHeight(25);
+    w5_4.setWidth(25);
+    w5_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_4.setBackgroundColor(cl_green);
+
+    var w5_5 = new qx.ui.layout.CanvasLayout;
+    w5_5.setHeight("15%");
+    // w5_5.setWidth(25);
+    w5_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_5.setBackgroundColor(cl_orange);
+
+    var w5_6 = new qx.ui.layout.CanvasLayout;
+    w5_6.setHeight(25);
+    w5_6.setWidth(25);
+    w5_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_6.setBackgroundColor(cl_purple);
+    w5_6.setLeft(15);
+    w5_6.setTop(-25);    
+
+    var w5_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w5_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w5_9 = new qx.ui.layout.CanvasLayout;
+    w5_9.setHeight(25);
+    w5_9.setWidth(25);
+    w5_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_9.setBackgroundColor(cl_aqua);
+
+    var w5_10 = new qx.ui.layout.CanvasLayout;
+    w5_10.setHeight(25);
+    w5_10.setWidth(25);
+    w5_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w5_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl5_click = 0;
+    hbl5.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };      
+      
+      switch(hbl5_click)
+      {
+        case 0:
+          this.setWidth(30);
+          break;
+        
+        case 1:
+          this.setWidth("auto");
+          break;
+          
+        case 2:
+          this.setWidth(80);
+          break;
+          
+        case 3:
+          this.setHeight(200);
+          break;
+          
+        case 4:
+          this.setHeight(null);
+          this.setBottom(48);
+          hbl5_click = 0;
+          return;        
+      };
+      
+      hbl5_click++;
+    });
+
+    w5_1.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(65);
+        this.setWidth(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w5_2.addEventListener("click", function(e) {
+      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
+    });
+
+    w5_3.addEventListener("click", function(e) {
+      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
+    });
+
+    w5_4.addEventListener("click", function(e) {
+      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
+    });
+
+    w5_5.addEventListener("click", function(e) {
+      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
+    });
+    
+    w5_6.addEventListener("click", function(e) {
+      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
+    });
+
+    w5_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w5_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w5_9.addEventListener("click", function(e) 
+    {
+      if (this.getLeft() == null)
+      {
+        this.setLeft(20);
+        this.setTop(-10);
+      }
+      else
+      {
+        this.setLeft(null);
+        this.setTop(null);
+      };
+    });
+    
+    w5_10.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(10);  
+        this.setWidth(10);
+        this.setTop(-5);
+        this.setRight(15);
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);
+        this.setTop(null);
+        this.setRight(null);
+      };
+    });
+
+
+
+    hbl5.add(w5_1, w5_2, w5_3, w5_4, w5_5, w5_6, w5_7, w5_8, w5_9, w5_10);
+    d.add(hbl5);
+
+
+
+
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE SIX:
+       CENTER ALIGN, REVERTED CHILDREN ORDER
+
+    *********************************************** */
+
+    var hbl6 = new qx.ui.layout.VerticalBoxLayout;
+
+    hbl6.setLeft(470);
+    hbl6.setTop(48);
+    hbl6.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl6.setHeight(null);
+    hbl6.setBottom(48);
+
+    hbl6.setSpacing(4);
+    hbl6.setPadding(8);
+
+    hbl6.setVerticalChildrenAlign("middle");
+    hbl6.setReverseChildrenOrder(true);
+    hbl6.setWidth(80);
+
+
+    var w6_1 = new qx.ui.layout.CanvasLayout;
+    w6_1.setHeight(25);
+    w6_1.setWidth(25);
+    w6_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_1.setBackgroundColor(cl_white);
+    // w6_1.setMaxWidth(40);
+
+    var w6_2 = new qx.ui.layout.CanvasLayout;
+    w6_2.setHeight(25);
+    w6_2.setWidth(25);
+    w6_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_2.setBackgroundColor(cl_blue);
+    w6_2.setRight(10);
+
+    var w6_3 = new qx.ui.layout.CanvasLayout;
+    w6_3.setHeight(25);
+    w6_3.setWidth("100%");
+    w6_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_3.setBackgroundColor(cl_yellow);
+
+    var w6_4 = new qx.ui.layout.CanvasLayout;
+    w6_4.setHeight(25);
+    w6_4.setWidth(25);
+    w6_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_4.setBackgroundColor(cl_green);
+
+    var w6_5 = new qx.ui.layout.CanvasLayout;
+    w6_5.setHeight("15%");
+    // w6_5.setWidth(25);
+    w6_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_5.setBackgroundColor(cl_orange);
+
+    var w6_6 = new qx.ui.layout.CanvasLayout;
+    w6_6.setHeight(25);
+    w6_6.setWidth(25);
+    w6_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_6.setBackgroundColor(cl_purple);
+    w6_6.setLeft(15);
+    w6_6.setTop(-25);    
+
+    var w6_7 = new qx.ui.basic.Image("icon/32/clock.png");
+
+    var w6_8 = new qx.ui.basic.Image("icon/32/colors.png");
+
+    var w6_9 = new qx.ui.layout.CanvasLayout;
+    w6_9.setHeight(25);
+    w6_9.setWidth(25);
+    w6_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_9.setBackgroundColor(cl_aqua);
+
+    var w6_10 = new qx.ui.layout.CanvasLayout;
+    w6_10.setHeight(25);
+    w6_10.setWidth(25);
+    w6_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    w6_10.setBackgroundColor(cl_fuchsia);
+
+
+    var hbl6_click = 0;
+    hbl6.addEventListener("click", function(e) 
+    {
+      if (e.getTarget()!=this) {
+        return;
+      };
+            
+      switch(hbl6_click)
+      {
+        case 0:
+          this.setWidth(30);
+          break;
+        
+        case 1:
+          this.setWidth("auto");
+          break;
+          
+        case 2:
+          this.setWidth(80);
+          break;
+          
+        case 3:
+          this.setHeight(200);
+          break;
+          
+        case 4:
+          this.setHeight(null);
+          this.setBottom(48);
+          hbl6_click = 0;
+          return;        
+      };
+      
+      hbl6_click++;
+    });
+
+    w6_1.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(65);
+        this.setWidth(65); 
+        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);  
+        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+      };      
+    });
+
+    w6_2.addEventListener("click", function(e) {
+      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
+    });
+
+    w6_3.addEventListener("click", function(e) {
+      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
+    });
+
+    w6_4.addEventListener("click", function(e) {
+      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
+    });
+
+    w6_5.addEventListener("click", function(e) {
+      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
+    });
+    
+    w6_6.addEventListener("click", function(e) {
+      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
+    });
+
+    w6_7.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/clock.png" ? this.setSource("icon/64/clock.png") : this.setSource("icon/32/clock.png");
+    });
+    
+    w6_8.addEventListener("click", function(e) {
+      this.getSource() == "icon/32/colors.png" ? this.setSource("icon/16/colors.png") : this.setSource("icon/32/colors.png");
+    });   
+    
+    w6_9.addEventListener("click", function(e) 
+    {
+      if (this.getLeft() == null)
+      {
+        this.setLeft(20);
+        this.setTop(-10);
+      }
+      else
+      {
+        this.setLeft(null);
+        this.setTop(null);
+      };
+    });
+    
+    w6_10.addEventListener("click", function(e) 
+    {
+      if (this.getHeight() == 25)
+      {
+        this.setHeight(10);  
+        this.setWidth(10);
+        this.setTop(-5);
+        this.setRight(15);
+      }
+      else
+      {
+        this.setHeight(25);
+        this.setWidth(25);
+        this.setTop(null);
+        this.setRight(null);
+      };
+    });
+
+
+
+    hbl6.add(w6_1, w6_2, w6_3, w6_4, w6_5, w6_6, w6_7, w6_8, w6_9, w6_10);
+    d.add(hbl6);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/VerticalBoxLayout_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/VerticalBoxLayout_3.html
new file mode 100644 (file)
index 0000000..ffd67a7
--- /dev/null
@@ -0,0 +1,552 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    Tests for the new implementation of the qx.ui.layout.VerticalBoxLayout widget.<br/>
+    <br/>
+    1. Simple testing, one static and one flex child<br/>
+    2. Two flex children with the same priority<br/>
+    3. The same as #2, but the second has the doubled priority compared to the first<br/>
+    <br/>
+
+    4. The same as #3, but now the second child has a max-height of 50px<br/>
+    5. The same as #4, but now with enabled "advancedFlexAllocation"<br/>
+    <br/>
+
+    6. The same as #3, but now the second has a min height of 300px<br/>
+    7. The same as #6, but now with enabled "advancedFlexAllocation"<br/>
+    <br/>
+
+    8. Three children with the priorities: 1, 2 and 3. The second has a maxHeight of 50px<br/>
+    9. The same as #8, but now with enabled "advancedFlexAllocation"<br/>
+    <br/>
+
+    10. Three children with the priorities: 1, 2 and 3. Added a few mouse actions.<br/>
+    11. Three children with the priorities: 1, a static height of 80px and 3.<br/>
+    12. The same as #11, but configured as 'auto' height.
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+
+    /* ***********************************************
+
+       EXAMPLE 1:
+
+    *********************************************** */
+
+    var te1 = new qx.ui.basic.Label("#1");
+    te1.setLocation(20, 48);
+    d.add(te1);
+
+    var hbl1 = new qx.ui.layout.VerticalBoxLayout;
+    hbl1.setTop(78);
+    hbl1.setLeft(20);
+    hbl1.setBottom(48);
+    hbl1.setHeight(null);
+    hbl1.setWidth("auto");
+    hbl1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl1.setSpacing(4);
+    hbl1.setPadding(2);
+    d.add(hbl1);
+
+    var t1_1 = new qx.ui.basic.Terminator;
+    t1_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t1_1.setHeight(20);
+    t1_1.setWidth(10);
+    t1_1.setBackgroundColor("green");
+    hbl1.add(t1_1);
+
+    t1_1.addEventListener("click", function() {
+      this.setHeight(this.getHeight() == 20 ? 100 : 20);
+    });
+
+    var t1_2 = new qx.ui.basic.Terminator;
+    t1_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t1_2.setHeight("1*");
+    t1_2.setWidth(10);
+    t1_2.setBackgroundColor("blue");
+    hbl1.add(t1_2);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 2:
+
+    *********************************************** */
+
+    var te2 = new qx.ui.basic.Label("#2");
+    te2.setLocation(40, 48);
+    d.add(te2);
+
+    var hbl2 = new qx.ui.layout.VerticalBoxLayout;
+    hbl2.setTop(78);
+    hbl2.setLeft(40);
+    hbl2.setBottom(48);
+    hbl2.setHeight(null);
+    hbl2.setWidth("auto");
+    hbl2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl2.setSpacing(4);
+    hbl2.setPadding(2);
+    d.add(hbl2);
+
+    var t2_1 = new qx.ui.basic.Terminator;
+    t2_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t2_1.setHeight("1*");
+    t2_1.setWidth(10);
+    t2_1.setBackgroundColor("green");
+    hbl2.add(t2_1);
+
+    var t2_2 = new qx.ui.basic.Terminator;
+    t2_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t2_2.setHeight("1*");
+    t2_2.setWidth(10);
+    t2_2.setBackgroundColor("blue");
+    hbl2.add(t2_2);
+
+
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 3:
+
+    *********************************************** */
+
+    var te3 = new qx.ui.basic.Label("#3");
+    te3.setLocation(60, 48);
+    d.add(te3);
+
+    var hbl3 = new qx.ui.layout.VerticalBoxLayout;
+    hbl3.setTop(78);
+    hbl3.setLeft(60);
+    hbl3.setBottom(48);
+    hbl3.setHeight(null);
+    hbl3.setWidth("auto");
+    hbl3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl3.setSpacing(4);
+    hbl3.setPadding(2);
+    d.add(hbl3);
+
+    var t3_1 = new qx.ui.basic.Terminator;
+    t3_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t3_1.setHeight("1*");
+    t3_1.setWidth(10);
+    t3_1.setBackgroundColor("green");
+    hbl3.add(t3_1);
+
+    var t3_2 = new qx.ui.basic.Terminator;
+    t3_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t3_2.setHeight("2*");
+    t3_2.setWidth(10);
+    t3_2.setBackgroundColor("blue");
+    hbl3.add(t3_2);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 4:
+
+    *********************************************** */
+
+    var te4 = new qx.ui.basic.Label("#4");
+    te4.setLocation(100, 48);
+    d.add(te4);
+
+    var hbl4 = new qx.ui.layout.VerticalBoxLayout;
+    hbl4.setTop(78);
+    hbl4.setLeft(100);
+    hbl4.setBottom(48);
+    hbl4.setHeight(null);
+    hbl4.setWidth("auto");
+    hbl4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl4.setSpacing(4);
+    hbl4.setPadding(2);
+    d.add(hbl4);
+
+    var t4_1 = new qx.ui.basic.Terminator;
+    t4_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t4_1.setHeight("1*");
+    t4_1.setWidth(10);
+    t4_1.setBackgroundColor("green");
+    hbl4.add(t4_1);
+
+    var t4_2 = new qx.ui.basic.Terminator;
+    t4_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t4_2.setHeight("2*");
+    t4_2.setWidth(10);
+    t4_2.setMaxHeight(50);
+    t4_2.setBackgroundColor("blue");
+    hbl4.add(t4_2);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 5:
+
+    *********************************************** */
+
+    var te5 = new qx.ui.basic.Label("#5");
+    te5.setLocation(120, 48);
+    d.add(te5);
+
+    var hbl5 = new qx.ui.layout.VerticalBoxLayout;
+    hbl5.setTop(78);
+    hbl5.setLeft(120);
+    hbl5.setBottom(48);
+    hbl5.setHeight(null);
+    hbl5.setWidth("auto");
+    hbl5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl5.setSpacing(4);
+    hbl5.setPadding(2);
+    hbl5.setUseAdvancedFlexAllocation(true);
+    d.add(hbl5);
+
+    var t5_1 = new qx.ui.basic.Terminator;
+    t5_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t5_1.setHeight("1*");
+    t5_1.setWidth(10);
+    t5_1.setBackgroundColor("green");
+    hbl5.add(t5_1);
+
+    var t5_2 = new qx.ui.basic.Terminator;
+    t5_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t5_2.setHeight("2*");
+    t5_2.setWidth(10);
+    t5_2.setMaxHeight(50);
+    t5_2.setBackgroundColor("blue");
+    hbl5.add(t5_2);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 6:
+
+    *********************************************** */
+
+    var te6 = new qx.ui.basic.Label("#6");
+    te6.setLocation(160, 48);
+    d.add(te6);
+
+    var hbl6 = new qx.ui.layout.VerticalBoxLayout;
+    hbl6.setTop(78);
+    hbl6.setLeft(160);
+    hbl6.setBottom(48);
+    hbl6.setHeight(null);
+    hbl6.setWidth("auto");
+    hbl6.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl6.setSpacing(4);
+    hbl6.setPadding(2);
+    d.add(hbl6);
+
+    var t6_1 = new qx.ui.basic.Terminator;
+    t6_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t6_1.setHeight("1*");
+    t6_1.setWidth(10);
+    t6_1.setBackgroundColor("green");
+    hbl6.add(t6_1);
+
+    var t6_2 = new qx.ui.basic.Terminator;
+    t6_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t6_2.setHeight("2*");
+    t6_2.setWidth(10);
+    t6_2.setMinHeight(300);
+    t6_2.setBackgroundColor("blue");
+    hbl6.add(t6_2);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 7:
+
+    *********************************************** */
+
+    var te7 = new qx.ui.basic.Label("#7");
+    te7.setLocation(180, 48);
+    d.add(te7);
+
+    var hbl7 = new qx.ui.layout.VerticalBoxLayout;
+    hbl7.setTop(78);
+    hbl7.setLeft(180);
+    hbl7.setBottom(48);
+    hbl7.setHeight(null);
+    hbl7.setWidth("auto");
+    hbl7.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl7.setSpacing(4);
+    hbl7.setPadding(2);
+    hbl7.setUseAdvancedFlexAllocation(true);
+    d.add(hbl7);
+
+    var t7_1 = new qx.ui.basic.Terminator;
+    t7_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t7_1.setHeight("1*");
+    t7_1.setWidth(10);
+    t7_1.setBackgroundColor("green");
+    hbl7.add(t7_1);
+
+    var t7_2 = new qx.ui.basic.Terminator;
+    t7_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t7_2.setHeight("2*");
+    t7_2.setWidth(10);
+    t7_2.setMinHeight(300);
+    t7_2.setBackgroundColor("blue");
+    hbl7.add(t7_2);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 8:
+
+    *********************************************** */
+
+    var te8 = new qx.ui.basic.Label("#8");
+    te8.setLocation(220, 48);
+    d.add(te8);
+
+    var hbl8 = new qx.ui.layout.VerticalBoxLayout;
+    hbl8.setTop(78);
+    hbl8.setLeft(220);
+    hbl8.setBottom(48);
+    hbl8.setHeight(null);
+    hbl8.setWidth("auto");
+    hbl8.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl8.setSpacing(4);
+    hbl8.setPadding(2);
+    d.add(hbl8);
+
+    var t8_1 = new qx.ui.basic.Terminator;
+    t8_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t8_1.setHeight("1*");
+    t8_1.setWidth(10);
+    t8_1.setBackgroundColor("green");
+    hbl8.add(t8_1);
+
+    var t8_2 = new qx.ui.basic.Terminator;
+    t8_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t8_2.setHeight("2*");
+    t8_2.setWidth(10);
+    t8_2.setBackgroundColor("blue");
+    t8_2.setMaxHeight(50);
+    hbl8.add(t8_2);
+
+    var t8_3 = new qx.ui.basic.Terminator;
+    t8_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t8_3.setHeight("3*");
+    t8_3.setWidth(10);
+    t8_3.setBackgroundColor("red");
+    hbl8.add(t8_3);
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 9:
+
+    *********************************************** */
+
+    var te9 = new qx.ui.basic.Label("#9");
+    te9.setLocation(240, 48);
+    d.add(te9);
+
+    var hbl9 = new qx.ui.layout.VerticalBoxLayout;
+    hbl9.setTop(78);
+    hbl9.setLeft(240);
+    hbl9.setBottom(48);
+    hbl9.setHeight(null);
+    hbl9.setWidth("auto");
+    hbl9.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl9.setSpacing(4);
+    hbl9.setPadding(2);
+    hbl9.setUseAdvancedFlexAllocation(true);
+    d.add(hbl9);
+
+    var t9_1 = new qx.ui.basic.Terminator;
+    t9_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t9_1.setHeight("1*");
+    t9_1.setWidth(10);
+    t9_1.setBackgroundColor("green");
+    hbl9.add(t9_1);
+
+    var t9_2 = new qx.ui.basic.Terminator;
+    t9_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t9_2.setHeight("2*");
+    t9_2.setWidth(10);
+    t9_2.setBackgroundColor("blue");
+    t9_2.setMaxHeight(50);
+    hbl9.add(t9_2);
+
+    var t9_3 = new qx.ui.basic.Terminator;
+    t9_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t9_3.setHeight("3*");
+    t9_3.setWidth(10);
+    t9_3.setBackgroundColor("red");
+    hbl9.add(t9_3);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 10:
+
+    *********************************************** */
+
+    var te10 = new qx.ui.basic.Label("#10");
+    te10.setLocation(280, 48);
+    d.add(te10);
+
+    var hbl10 = new qx.ui.layout.VerticalBoxLayout;
+    hbl10.setTop(78);
+    hbl10.setLeft(280);
+    hbl10.setBottom(48);
+    hbl10.setHeight(null);
+    hbl10.setWidth("auto");
+    hbl10.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl10.setSpacing(4);
+    hbl10.setPadding(2);
+    hbl10.setUseAdvancedFlexAllocation(true);
+    d.add(hbl10);
+
+    var t10_1 = new qx.ui.basic.Terminator;
+    t10_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t10_1.setHeight("1*");
+    t10_1.setWidth(10);
+    t10_1.setBackgroundColor("green");
+    t10_1.addEventListener("click", function(e) { this.setHeight(this.getHeight() == "1*" ? "4*" : "1*"); });
+    hbl10.add(t10_1);
+
+    var t10_2 = new qx.ui.basic.Terminator;
+    t10_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t10_2.setHeight("2*");
+    t10_2.setWidth(10);
+    t10_2.setBackgroundColor("blue");
+    t10_2.addEventListener("click", function(e) { this.setHeight(this.getHeight() == "2*" ? "1*" : "2*"); });
+    hbl10.add(t10_2);
+
+    var t10_3 = new qx.ui.basic.Terminator;
+    t10_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t10_3.setHeight("3*");
+    t10_3.setWidth(10);
+    t10_3.setBackgroundColor("red");
+    t10_3.addEventListener("click", function(e) { this.setHeight(this.getHeight() == "3*" ? "6*" : "3*"); });
+    hbl10.add(t10_3);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 11:
+
+    *********************************************** */
+
+    var te11 = new qx.ui.basic.Label("#11");
+    te11.setLocation(300, 48);
+    d.add(te11);
+
+    var hbl11 = new qx.ui.layout.VerticalBoxLayout;
+    hbl11.setTop(78);
+    hbl11.setLeft(300);
+    hbl11.setBottom(48);
+    hbl11.setHeight(null);
+    hbl11.setWidth("auto");
+    hbl11.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl11.setSpacing(4);
+    hbl11.setPadding(2);
+    d.add(hbl11);
+
+    var t11_1 = new qx.ui.basic.Terminator;
+    t11_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t11_1.setHeight("1*");
+    t11_1.setWidth(10);
+    t11_1.setBackgroundColor("green");
+    hbl11.add(t11_1);
+
+    var t11_2 = new qx.ui.basic.Terminator;
+    t11_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t11_2.setHeight(80);
+    t11_2.setWidth(10);
+    t11_2.setBackgroundColor("blue");
+    hbl11.add(t11_2);
+
+    var t11_3 = new qx.ui.basic.Terminator;
+    t11_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t11_3.setHeight("3*");
+    t11_3.setWidth(10);
+    t11_3.setBackgroundColor("red");
+    hbl11.add(t11_3);
+
+
+
+
+    /* ***********************************************
+
+       EXAMPLE 12:
+
+    *********************************************** */
+
+    var te12 = new qx.ui.basic.Label("#13");
+    te12.setLocation(320, 48);
+    d.add(te12);
+
+    var hbl12 = new qx.ui.layout.VerticalBoxLayout;
+    hbl12.setTop(78);
+    hbl12.setLeft(320);
+    hbl12.setWidth("auto");
+    hbl12.setHeight("auto");
+    hbl12.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+    hbl12.setSpacing(4);
+    hbl12.setPadding(2);
+    d.add(hbl12);
+
+    var t12_1 = new qx.ui.basic.Terminator;
+    t12_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t12_1.setHeight("1*");
+    t12_1.setWidth(10);
+    t12_1.setBackgroundColor("green");
+    hbl12.add(t12_1);
+
+    var t12_2 = new qx.ui.basic.Terminator;
+    t12_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t12_2.setHeight(80);
+    t12_2.setWidth(10);
+    t12_2.setBackgroundColor("blue");
+    hbl12.add(t12_2);
+
+    var t12_3 = new qx.ui.basic.Terminator;
+    t12_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
+    t12_3.setHeight("3*");
+    t12_3.setWidth(10);
+    t12_3.setBackgroundColor("red");
+    hbl12.add(t12_3);
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_1.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_1.html
new file mode 100644 (file)
index 0000000..e2d39db
--- /dev/null
@@ -0,0 +1,179 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Who Framed Roger Rabbit?</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var w0 = new qx.ui.layout.CanvasLayout;
+    w0.set({left:20, top:48, right: 335, bottom: 48, backgroundColor:"Background", border:qx.renderer.border.BorderPresets.getInstance().inset});
+    w0.setOverflow("hidden");
+    d.add(w0);
+
+    var w1 = new qx.ui.window.Window("First Window");
+    w1.setSpace(20, 400, 20, 250);
+    w0.add(w1);
+
+    var w2 = new qx.ui.window.Window("Second Window", "icon/16/colors.png");
+    w2.setSpace(200, 300, 80, 350);
+    w0.add(w2);
+
+    var w3 = new qx.ui.window.Window("Third Window", "icon/16/network.png");
+    w3.setSpace(100, 300, 200, 200);
+    w3.setMaxWidth(450);
+    w3.setMaxHeight(300);
+    w0.add(w3);
+
+
+
+
+    var a1 = new qx.ui.basic.Atom("Welcome to your first own Window.<br/>Have fun!", "icon/32/favorites.png");
+    a1.set({ top: 4, left: 4 });
+    w1.add(a1);
+
+
+
+    var tf1 = new qx.ui.pageview.tabview.TabView;
+    tf1.set({ left: 10, top: 52, right: 10, bottom: 10 });
+
+    var t1_1 = new qx.ui.pageview.tabview.Button("Explore");
+    var t1_2 = new qx.ui.pageview.tabview.Button("Internet");
+    var t1_3 = new qx.ui.pageview.tabview.Button("Future");
+
+    t1_1.setChecked(true);
+
+    tf1.getBar().add(t1_1, t1_2, t1_3);
+
+    var p1_1 = new qx.ui.pageview.tabview.Page(t1_1);
+    var p1_2 = new qx.ui.pageview.tabview.Page(t1_2);
+    var p1_3 = new qx.ui.pageview.tabview.Page(t1_3);
+
+    tf1.getPane().add(p1_1, p1_2, p1_3);
+
+    w1.add(tf1);
+
+
+
+    var at1 = new qx.ui.basic.Atom("Second Window", "icon/22/clock.png");
+    at1.setLocation(4, 4);
+    w2.add(at1);
+
+
+    var at2 = new qx.ui.basic.Atom("Third Window", "icon/48/colors.png");
+    at2.setLocation(4, 4);
+    w3.add(at2);
+
+
+
+
+
+
+    var fs1 = new qx.ui.groupbox.GroupBox("Settings");
+    fs1.setLocation(4, 30);
+    fs1.setRight(4);
+    fs1.setBottom(4);
+
+
+    var chk1 = new qx.ui.form.CheckBox("Show Icon");
+    chk1.setLocation(0, 0);
+    chk1.setChecked(true);
+    chk1.addEventListener("changeChecked", function(e) {
+      w2.setShowIcon(e.getData());
+    });
+
+    var chk2 = new qx.ui.form.CheckBox("Show Caption");
+    chk2.setLocation(0, 20);
+    chk2.setChecked(true);
+    chk2.addEventListener("changeChecked", function(e) {
+      w2.setShowCaption(e.getData());
+    });
+
+
+
+    var chk3 = new qx.ui.form.CheckBox("Resizeable");
+    chk3.setLocation(0, 50);
+    chk3.setChecked(true);
+    chk3.addEventListener("changeChecked", function(e) {
+      w2.setResizeable(e.getData());
+    });
+
+    var chk4 = new qx.ui.form.CheckBox("Moveable");
+    chk4.setLocation(0, 70);
+    chk4.setChecked(true);
+    chk4.addEventListener("changeChecked", function(e) {
+      w2.setMoveable(e.getData());
+    });
+
+
+
+    var chk5 = new qx.ui.form.CheckBox("Show Close");
+    chk5.setLocation(0, 100);
+    chk5.setChecked(true);
+    chk5.addEventListener("changeChecked", function(e) {
+      w2.setShowClose(e.getData());
+    });
+
+    var chk6 = new qx.ui.form.CheckBox("Show Maximize/Restore");
+    chk6.setLocation(0, 120);
+    chk6.setChecked(true);
+    chk6.addEventListener("changeChecked", function(e) {
+      w2.setShowMaximize(e.getData());
+    });
+
+    var chk7 = new qx.ui.form.CheckBox("Show Minimize");
+    chk7.setLocation(0, 140);
+    chk7.setChecked(true);
+    chk7.addEventListener("changeChecked", function(e) {
+      w2.setShowMinimize(e.getData());
+    });
+
+
+
+    var chk8 = new qx.ui.form.CheckBox("Allow Close");
+    chk8.setLocation(0, 170);
+    chk8.setChecked(true);
+    chk8.addEventListener("changeChecked", function(e) {
+      w2.setAllowClose(e.getData());
+    });
+
+    var chk9 = new qx.ui.form.CheckBox("Allow Maximize");
+    chk9.setLocation(0, 190);
+    chk9.setChecked(true);
+    chk9.addEventListener("changeChecked", function(e) {
+      w2.setAllowMaximize(e.getData());
+    });
+
+    var chk10 = new qx.ui.form.CheckBox("Allow Minimize");
+    chk10.setLocation(0, 210);
+    chk10.setChecked(true);
+    chk10.addEventListener("changeChecked", function(e) {
+      w2.setAllowMinimize(e.getData());
+    });
+
+
+    fs1.add(chk1, chk2, chk3, chk4, chk5, chk6, chk7, chk8, chk9, chk10);
+    w2.add(fs1);
+
+
+    w1.open();
+    w2.open();
+    w3.open();
+  });
+  </script>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_2.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_2.html
new file mode 100644 (file)
index 0000000..0a1c315
--- /dev/null
@@ -0,0 +1,54 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Testing auto dimension possibility of qx.ui.window.Window.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+
+    var w1 = new qx.ui.window.Window("First Window");
+    w1.getPane().setPadding(10);
+    w1.setLocation(100, 100);
+    w1.setWidth("auto");
+    w1.setHeight("auto");
+
+    d.add(w1);
+
+    var a1 = new qx.ui.basic.Atom("Welcome to your first own Window.<br/>Have fun!", "icon/32/bookmark.png");
+    a1.set({ top: 0, left: 100 });
+    w1.add(a1);
+
+    var chk1 = new qx.ui.form.CheckBox("Show Statusbar");
+    chk1.set({ top: 45, left: 0 });
+
+    chk1.addEventListener("changeChecked", function(e) {
+      w1.setShowStatusbar(e.getData());
+    });
+
+    var btn1 = new qx.ui.form.Button("Yes", "icon/16/button-ok.png");
+    btn1.set({ top: 70, left : 0 });
+
+    var btn2 = new qx.ui.form.Button("No", "icon/16/button-cancel.png");
+    btn2.set({ top: 70, right : 0 });
+
+    w1.add(chk1, btn1, btn2);
+
+    w1.open();
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_3.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_3.html
new file mode 100644 (file)
index 0000000..6493e7b
--- /dev/null
@@ -0,0 +1,99 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Modal dialog with qx.ui.form.TextField and qx.ui.form.TextArea</p>
+  </div>
+
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+
+      var d = qx.ui.core.ClientDocument.getInstance();
+      var txtfld;
+      
+      var dialogEditFrage = new qx.ui.window.Window("Edit", "icon/16/editor.png");
+    
+      with(dialogEditFrage) {
+        setSpace(300, 400, 100, 300);
+        setModal(true);
+        
+        setShowClose(false);
+
+        var qx_widget = new qx.ui.basic.Atom('Question');
+        with(qx_widget)
+        {
+          setHorizontalChildrenAlign('right');
+          set({top:10,left:10,width:'20%'});
+        };
+        add(qx_widget);
+
+        qx_widget = txtfld = new qx.ui.form.TextArea();
+        with (qx_widget) {
+          set({top:10,right:10,width:'70%'})
+        };
+        add(qx_widget);
+
+        qx_widget = new qx.ui.basic.Atom('Type');
+        with(qx_widget)
+        {
+          setHorizontalChildrenAlign('right');
+          set({top:70,left:10,width:'20%'});
+        };
+        add(qx_widget);
+
+        qx_widget = new qx.ui.form.TextField();
+        with (qx_widget) {
+          set({top:70,right:10,width:'70%'})
+        };
+        add(qx_widget);
+
+
+        var btnOK = new qx.ui.form.Button("OK", "icon/16/button-ok.png");
+        var btnCancel = new qx.ui.form.Button("Cancel", "icon/16/button-cancel.png");
+        var btnSetText = new qx.ui.form.Button("Reload", "icon/16/reload.png");
+
+        btnOK.set({ bottom : 10, right : 10 });
+        btnCancel.set({ bottom : 10, left : 10 });
+        btnSetText.set({ bottom : 10, left : 100 });
+
+        btnCancel.addEventListener("execute", function(e) {
+          dialogEditFrage.close();
+        });
+        btnOK.addEventListener("execute", function(e) {
+          dialogEditFrage.close();
+        });
+
+        btnSetText.addEventListener("execute", function(e) {
+          txtfld.setValue("Some Text here!");
+          txtfld.setFocused(true);
+        });
+        
+        add(btnOK, btnCancel, btnSetText);
+      }
+
+
+      var btnOpen = new qx.ui.form.Button("Open the dialog");
+      btnOpen.set({ top : 50, left : 20 });
+      btnOpen.addEventListener("click", function(e) {
+        dialogEditFrage.open();
+      });
+
+      d.add(btnOpen,dialogEditFrage);
+    });
+
+  </script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_4.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_4.html
new file mode 100644 (file)
index 0000000..1d46a80
--- /dev/null
@@ -0,0 +1,104 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Dialog with qx.ui.form.TextField and qx.ui.form.TextArea</p>
+    <p>Testing minimize handling.</p>
+  </div>
+
+
+  <script type="text/javascript" language="JavaScript">
+
+    qx.core.Init.getInstance().defineMain(function() {
+
+      var d = qx.ui.core.ClientDocument.getInstance();
+      var txtfld;
+
+      var  dialogEditFrage = new qx.ui.window.Window("Edit", "icon/16/editor.png");
+      with(dialogEditFrage) {
+        setSpace(300, 400, 100, 300);
+
+        setShowClose(false);
+
+        var qx_widget = new qx.ui.basic.Atom('Question');
+        with(qx_widget)
+        {
+          setHorizontalChildrenAlign('right');
+          set({top:10,left:10,width:'20%'});
+        };
+        add(qx_widget);
+
+        qx_widget = txtfld = new qx.ui.form.TextArea();
+        with (qx_widget) {
+          set({top:10,right:10,width:'70%'})
+        }
+        add(qx_widget);
+
+        qx_widget = new qx.ui.basic.Atom('Type');
+        with(qx_widget)
+        {
+          setHorizontalChildrenAlign('right');
+          set({top:70,left:10,width:'20%'});
+        };
+        add(qx_widget);
+
+        qx_widget = new qx.ui.form.TextField();
+        with (qx_widget) {
+          set({top:70,right:10,width:'70%'})
+        }
+        add(qx_widget);
+
+
+        var btnOK = new qx.ui.form.Button("OK", "icon/16/button-ok.png");
+        var btnCancel = new qx.ui.form.Button("Cancel", "icon/16/button-cancel.png");
+        var btnSetText = new qx.ui.form.Button("Reload", "icon/16/reload.png");
+
+        btnOK.set({ bottom : 10, right : 10 });
+        btnCancel.set({ bottom : 10, left : 10 });
+        btnSetText.set({ bottom : 10, left : 100 });
+
+        btnCancel.addEventListener("execute", function(e) {
+          dialogEditFrage.close();
+        });
+        btnOK.addEventListener("execute", function(e) {
+          dialogEditFrage.close();
+        });
+
+        btnSetText.addEventListener("execute", function(e) {
+          txtfld.setValue("Some Text here!");
+          txtfld.setFocused(true);
+        });
+
+        add(btnOK, btnCancel, btnSetText);
+      }
+
+
+      var btnOpen = new qx.ui.form.Button("Open the dialog");
+      btnOpen.set({ top : 50, left : 20 });
+      btnOpen.addEventListener("click", function(e) {
+        dialogEditFrage.open();
+      });
+
+      var btnRestore = new qx.ui.form.Button("Restore the dialog");
+      btnRestore.set({ top : 80, left : 20 });
+      btnRestore.addEventListener("click", function(e) {
+        dialogEditFrage.restore();
+      });
+
+      d.add(btnOpen,btnRestore,dialogEditFrage);
+    });
+
+  </script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_5.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_5.html
new file mode 100644 (file)
index 0000000..d1c48bc
--- /dev/null
@@ -0,0 +1,221 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Some tests for zIndex handling for different widgets.</p>
+  </div>
+
+  <script type="text/javascript">
+  qx.core.Init.getInstance().defineMain(function()
+  {
+    var d = qx.ui.core.ClientDocument.getInstance();
+    
+    
+    var btnaler = new qx.ui.form.Button("Open Alert", "icon/16/error.png");
+    btnaler.setLocation(450, 50);
+    qx.ui.core.ClientDocument.getInstance().add(btnaler);
+    
+    
+    var aler = new qx.ui.popup.PopupAtom("Attention", "icon/128/error.png");
+    aler.setLocation(40, 70);
+    aler.setBackgroundColor("yellow");
+    aler.setOpacity(0.5);
+    qx.ui.core.ClientDocument.getInstance().add(aler);
+    
+    btnaler.addEventListener("execute", function(e)
+    {
+      aler.show();
+    });
+    
+    
+    
+    var bar = new qx.ui.basic.Terminator;
+    bar.setLocation(0, 0);
+    bar.setWidth(50);
+    bar.setBottom(0);
+    bar.setBackgroundColor("black");
+    bar.setOpacity(0.5);
+    bar.setZIndex(1e7);
+    qx.ui.core.ClientDocument.getInstance().add(bar);
+    
+    
+    
+
+    var w1 = new qx.ui.window.Window("Application Window");
+    w1.setSpace(20, 400, 48, 250);
+    d.add(w1);
+    
+    
+    
+    var m1 = new qx.ui.menu.Menu;
+    
+    var mb11 = new qx.ui.menu.Button("Open");
+    var mb12 = new qx.ui.menu.Button("Save");
+    var mb13 = new qx.ui.menu.Button("Close");
+    var mb14 = new qx.ui.menu.Button("Exit");
+    
+    m1.add(mb11, mb12, mb13, mb14);
+    
+    var m2 = new qx.ui.menu.Menu;
+    
+    var mb21 = new qx.ui.menu.Button("Cut");
+    var mb22 = new qx.ui.menu.Button("Copy");
+    var mb23 = new qx.ui.menu.Button("Paste");
+    
+    m2.add(mb21, mb22, mb23);
+    
+    var m3 = new qx.ui.menu.Menu;
+    
+    var mb31 = new qx.ui.menu.Button("Toolbars");
+    var mb32 = new qx.ui.menu.Button("Options");
+    
+    m3.add(mb31, mb32);
+    
+    var m4 = new qx.ui.menu.Menu;
+    
+    var mb41 = new qx.ui.menu.Button("Help");
+    var mb42 = new qx.ui.menu.Button("Info");
+    
+    m4.add(mb41, mb42);
+    
+    qx.ui.core.ClientDocument.getInstance().add(m1, m2, m3, m4);
+    
+    
+    
+    
+    
+    
+
+    var t1 = new qx.ui.toolbar.ToolBar;
+    
+    t1.setLocation(0, 0);
+    t1.setRight(0);
+    
+    var tb1 = new qx.ui.toolbar.MenuButton("File", m1);
+    var tb2 = new qx.ui.toolbar.MenuButton("Edit", m2);
+    var tb3 = new qx.ui.toolbar.MenuButton("View", m3);
+    var tb4 = new qx.ui.toolbar.MenuButton("Help", m4);
+    
+    t1.add(tb1, tb2, tb3, tb4);
+    
+    w1.add(t1);
+    
+    var tt1 = new qx.ui.popup.ToolTip("File Menu Button");
+    var tt2 = new qx.ui.popup.ToolTip("Edit Menu Button");
+    var tt3 = new qx.ui.popup.ToolTip("View Menu Button");
+    var tt4 = new qx.ui.popup.ToolTip("Help Menu Button");
+    
+    tb1.setToolTip(tt1);
+    tb2.setToolTip(tt2);
+    tb3.setToolTip(tt3);
+    tb4.setToolTip(tt4);
+    
+    qx.ui.core.ClientDocument.getInstance().add(tt1, tt2, tt3, tt4);
+    
+    
+    
+    
+    
+    
+    
+    
+    var c1 = new qx.ui.form.ComboBox;
+    
+    c1.setLocation(0, 35);
+    
+    c1.getList().add(new qx.ui.form.ListItem("Item 1"));
+    c1.getList().add(new qx.ui.form.ListItem("Item 2"));
+    c1.getList().add(new qx.ui.form.ListItem("Item 3"));
+    c1.getList().add(new qx.ui.form.ListItem("Item 4"));
+    c1.getList().add(new qx.ui.form.ListItem("Item 5"));
+    
+    w1.add(c1);
+    
+    
+    
+    
+    
+    var square = new qx.ui.basic.Terminator;
+    square.setDimension(50, 50);
+    square.setLocation(0, 70);
+    square.setBackgroundColor("blue");
+    w1.add(square);
+    
+    
+    var p1 = new qx.ui.popup.PopupAtom("Hello World");
+    p1.setBorder(4, "solid", "red");
+    p1.setBackgroundColor("yellow");
+    p1.setLocation(0, 70);
+    p1.setAutoHide(false);
+    w1.add(p1);
+    
+    var p2 = new qx.ui.popup.PopupAtom("Hello World");
+    p2.setBorder(4, "solid", "yellow");
+    p2.setBackgroundColor("red");
+    p2.setLocation(30, 70);
+    p2.setAutoHide(false);
+    w1.add(p2);    
+    
+    
+    var btn1 = new qx.ui.form.Button("Show1");
+    btn1.setLocation(140, 70);
+    w1.add(btn1);
+
+    var btn2 = new qx.ui.form.Button("Hide1");
+    btn2.setLocation(190, 70);
+    w1.add(btn2);
+
+    btn1.addEventListener("execute", function(e) {
+      p1.show();      
+    });
+    
+    btn2.addEventListener("execute", function(e) {
+      p1.hide();      
+    });
+    
+    
+    
+    var btn3 = new qx.ui.form.Button("Show2");
+    btn3.setLocation(250, 70);
+    w1.add(btn3);
+
+    var btn4 = new qx.ui.form.Button("Hide2");
+    btn4.setLocation(300, 70);
+    w1.add(btn4);
+
+    btn3.addEventListener("execute", function(e) {
+      p2.show();      
+    });
+    
+    btn4.addEventListener("execute", function(e) {
+      p2.hide();      
+    });    
+    
+    
+    
+    w1.open();
+
+
+
+
+    
+    var w2 = new qx.ui.window.Window("Test 2");
+    w2.setDimension(400, 200);
+    w2.setLocation(200, 200);
+    qx.ui.core.ClientDocument.getInstance().add(w2);
+    w2.show();
+
+  });
+  </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_6.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/Window_6.html
new file mode 100644 (file)
index 0000000..af837c4
--- /dev/null
@@ -0,0 +1,109 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Dialog with qx.ui.form.TextField and qx.ui.form.TextArea</p>
+    <p>Testing initial focus handling.</p>
+  </div>
+
+
+  <script type="text/javascript" language="JavaScript">
+
+
+      qx.core.Init.getInstance().defineMain(function() {
+
+      var d = qx.ui.core.ClientDocument.getInstance();
+      var txtfld;
+
+      var  dialogEditFrage = new qx.ui.window.Window("Edit", "icon/16/editor.png");
+
+
+      with(dialogEditFrage) {
+        setSpace(300, 400, 100, 300);
+
+        setShowClose(false);
+
+        var qxObj = new qx.ui.basic.Atom('Question');
+        with(qxObj)
+        {
+          setHorizontalChildrenAlign('right');
+          set({top:10,left:10,width:'20%'});
+        };
+        add(qxObj);
+
+        qxObj = txtfld = new qx.ui.form.TextArea();
+        with (qxObj) {
+          set({top:10,right:10,width:'70%'})
+        }
+        add(qxObj);
+
+        txtfld.addEventListener("appear", function(e) {
+          this.focus();
+        });
+
+        qxObj = new qx.ui.basic.Atom('Type');
+        with(qxObj)
+        {
+          setHorizontalChildrenAlign('right');
+          set({top:70,left:10,width:'20%'});
+        };
+        add(qxObj);
+
+        qxObj = new qx.ui.form.TextField();
+        with (qxObj) {
+          set({top:70,right:10,width:'70%'})
+        }
+        add(qxObj);
+
+
+        var btnOK = new qx.ui.form.Button("OK", "icon/16/button-ok.png");
+        var btnCancel = new qx.ui.form.Button("Cancel", "icon/16/button-cancel.png");
+        var btnSetFocus = new qx.ui.form.Button("Set Focus To First Field", "icon/16/reload.png");
+
+        btnOK.set({ bottom : 10, right : 10 });
+        btnCancel.set({ bottom : 10, left : 10 });
+        btnSetFocus.set({ bottom : 10, left : 100 });
+
+        btnCancel.addEventListener("execute", function(e) {
+          dialogEditFrage.close();
+        });
+        btnOK.addEventListener("execute", function(e) {
+          dialogEditFrage.close();
+        });
+
+        btnSetFocus.addEventListener("execute", function(e) {
+          txtfld.focus();
+        });
+
+        add(btnOK, btnCancel, btnSetFocus);
+      }
+
+      var btnOpen = new qx.ui.form.Button("Open the dialog");
+      btnOpen.set({ top : 50, left : 20 });
+      btnOpen.addEventListener("click", function(e) {
+        dialogEditFrage.open();
+      });
+
+      var btnRestore = new qx.ui.form.Button("Restore the dialog");
+      btnRestore.set({ top : 80, left : 20 });
+      btnRestore.addEventListener("click", function(e) {
+        dialogEditFrage.restore();
+      });
+
+      d.add(btnOpen,btnRestore,dialogEditFrage);
+    });
+
+  </script>
+
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/bigFont.css b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/bigFont.css
new file mode 100644 (file)
index 0000000..568085d
--- /dev/null
@@ -0,0 +1,3 @@
+.box {
+       font-size: large;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/boldFont.css b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/boldFont.css
new file mode 100644 (file)
index 0000000..c7f3aca
--- /dev/null
@@ -0,0 +1,3 @@
+.box {
+       font-weight: bold;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/cssQuery-p.js b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/cssQuery-p.js
new file mode 100644 (file)
index 0000000..ecaa760
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+  cssQuery, version 2.0.2 (2005-08-19)
+  Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)
+  License: http://creativecommons.org/licenses/LGPL/2.1/
+*/
+eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('7 x=6(){7 1D="2.0.2";7 C=/\\s*,\\s*/;7 x=6(s,A){33{7 m=[];7 u=1z.32.2c&&!A;7 b=(A)?(A.31==22)?A:[A]:[1g];7 1E=18(s).1l(C),i;9(i=0;i<1E.y;i++){s=1y(1E[i]);8(U&&s.Z(0,3).2b("")==" *#"){s=s.Z(2);A=24([],b,s[1])}1A A=b;7 j=0,t,f,a,c="";H(j<s.y){t=s[j++];f=s[j++];c+=t+f;a="";8(s[j]=="("){H(s[j++]!=")")a+=s[j];a=a.Z(0,-1);c+="("+a+")"}A=(u&&V[c])?V[c]:21(A,t,f,a);8(u)V[c]=A}m=m.30(A)}2a x.2d;5 m}2Z(e){x.2d=e;5[]}};x.1Z=6(){5"6 x() {\\n  [1D "+1D+"]\\n}"};7 V={};x.2c=L;x.2Y=6(s){8(s){s=1y(s).2b("");2a V[s]}1A V={}};7 29={};7 19=L;x.15=6(n,s){8(19)1i("s="+1U(s));29[n]=12 s()};x.2X=6(c){5 c?1i(c):o};7 D={};7 h={};7 q={P:/\\[([\\w-]+(\\|[\\w-]+)?)\\s*(\\W?=)?\\s*([^\\]]*)\\]/};7 T=[];D[" "]=6(r,f,t,n){7 e,i,j;9(i=0;i<f.y;i++){7 s=X(f[i],t,n);9(j=0;(e=s[j]);j++){8(M(e)&&14(e,n))r.z(e)}}};D["#"]=6(r,f,i){7 e,j;9(j=0;(e=f[j]);j++)8(e.B==i)r.z(e)};D["."]=6(r,f,c){c=12 1t("(^|\\\\s)"+c+"(\\\\s|$)");7 e,i;9(i=0;(e=f[i]);i++)8(c.l(e.1V))r.z(e)};D[":"]=6(r,f,p,a){7 t=h[p],e,i;8(t)9(i=0;(e=f[i]);i++)8(t(e,a))r.z(e)};h["2W"]=6(e){7 d=Q(e);8(d.1C)9(7 i=0;i<d.1C.y;i++){8(d.1C[i]==e)5 K}};h["2V"]=6(e){};7 M=6(e){5(e&&e.1c==1&&e.1f!="!")?e:23};7 16=6(e){H(e&&(e=e.2U)&&!M(e))28;5 e};7 G=6(e){H(e&&(e=e.2T)&&!M(e))28;5 e};7 1r=6(e){5 M(e.27)||G(e.27)};7 1P=6(e){5 M(e.26)||16(e.26)};7 1o=6(e){7 c=[];e=1r(e);H(e){c.z(e);e=G(e)}5 c};7 U=K;7 1h=6(e){7 d=Q(e);5(2S d.25=="2R")?/\\.1J$/i.l(d.2Q):2P(d.25=="2O 2N")};7 Q=6(e){5 e.2M||e.1g};7 X=6(e,t){5(t=="*"&&e.1B)?e.1B:e.X(t)};7 17=6(e,t,n){8(t=="*")5 M(e);8(!14(e,n))5 L;8(!1h(e))t=t.2L();5 e.1f==t};7 14=6(e,n){5!n||(n=="*")||(e.2K==n)};7 1e=6(e){5 e.1G};6 24(r,f,B){7 m,i,j;9(i=0;i<f.y;i++){8(m=f[i].1B.2J(B)){8(m.B==B)r.z(m);1A 8(m.y!=23){9(j=0;j<m.y;j++){8(m[j].B==B)r.z(m[j])}}}}5 r};8(![].z)22.2I.z=6(){9(7 i=0;i<1z.y;i++){o[o.y]=1z[i]}5 o.y};7 N=/\\|/;6 21(A,t,f,a){8(N.l(f)){f=f.1l(N);a=f[0];f=f[1]}7 r=[];8(D[t]){D[t](r,A,f,a)}5 r};7 S=/^[^\\s>+~]/;7 20=/[\\s#.:>+~()@]|[^\\s#.:>+~()@]+/g;6 1y(s){8(S.l(s))s=" "+s;5 s.P(20)||[]};7 W=/\\s*([\\s>+~(),]|^|$)\\s*/g;7 I=/([\\s>+~,]|[^(]\\+|^)([#.:@])/g;7 18=6(s){5 s.O(W,"$1").O(I,"$1*$2")};7 1u={1Z:6(){5"\'"},P:/^(\'[^\']*\')|("[^"]*")$/,l:6(s){5 o.P.l(s)},1S:6(s){5 o.l(s)?s:o+s+o},1Y:6(s){5 o.l(s)?s.Z(1,-1):s}};7 1s=6(t){5 1u.1Y(t)};7 E=/([\\/()[\\]?{}|*+-])/g;6 R(s){5 s.O(E,"\\\\$1")};x.15("1j-2H",6(){D[">"]=6(r,f,t,n){7 e,i,j;9(i=0;i<f.y;i++){7 s=1o(f[i]);9(j=0;(e=s[j]);j++)8(17(e,t,n))r.z(e)}};D["+"]=6(r,f,t,n){9(7 i=0;i<f.y;i++){7 e=G(f[i]);8(e&&17(e,t,n))r.z(e)}};D["@"]=6(r,f,a){7 t=T[a].l;7 e,i;9(i=0;(e=f[i]);i++)8(t(e))r.z(e)};h["2G-10"]=6(e){5!16(e)};h["1x"]=6(e,c){c=12 1t("^"+c,"i");H(e&&!e.13("1x"))e=e.1n;5 e&&c.l(e.13("1x"))};q.1X=/\\\\:/g;q.1w="@";q.J={};q.O=6(m,a,n,c,v){7 k=o.1w+m;8(!T[k]){a=o.1W(a,c||"",v||"");T[k]=a;T.z(a)}5 T[k].B};q.1Q=6(s){s=s.O(o.1X,"|");7 m;H(m=s.P(o.P)){7 r=o.O(m[0],m[1],m[2],m[3],m[4]);s=s.O(o.P,r)}5 s};q.1W=6(p,t,v){7 a={};a.B=o.1w+T.y;a.2F=p;t=o.J[t];t=t?t(o.13(p),1s(v)):L;a.l=12 2E("e","5 "+t);5 a};q.13=6(n){1d(n.2D()){F"B":5"e.B";F"2C":5"e.1V";F"9":5"e.2B";F"1T":8(U){5"1U((e.2A.P(/1T=\\\\1v?([^\\\\s\\\\1v]*)\\\\1v?/)||[])[1]||\'\')"}}5"e.13(\'"+n.O(N,":")+"\')"};q.J[""]=6(a){5 a};q.J["="]=6(a,v){5 a+"=="+1u.1S(v)};q.J["~="]=6(a,v){5"/(^| )"+R(v)+"( |$)/.l("+a+")"};q.J["|="]=6(a,v){5"/^"+R(v)+"(-|$)/.l("+a+")"};7 1R=18;18=6(s){5 1R(q.1Q(s))}});x.15("1j-2z",6(){D["~"]=6(r,f,t,n){7 e,i;9(i=0;(e=f[i]);i++){H(e=G(e)){8(17(e,t,n))r.z(e)}}};h["2y"]=6(e,t){t=12 1t(R(1s(t)));5 t.l(1e(e))};h["2x"]=6(e){5 e==Q(e).1H};h["2w"]=6(e){7 n,i;9(i=0;(n=e.1F[i]);i++){8(M(n)||n.1c==3)5 L}5 K};h["1N-10"]=6(e){5!G(e)};h["2v-10"]=6(e){e=e.1n;5 1r(e)==1P(e)};h["2u"]=6(e,s){7 n=x(s,Q(e));9(7 i=0;i<n.y;i++){8(n[i]==e)5 L}5 K};h["1O-10"]=6(e,a){5 1p(e,a,16)};h["1O-1N-10"]=6(e,a){5 1p(e,a,G)};h["2t"]=6(e){5 e.B==2s.2r.Z(1)};h["1M"]=6(e){5 e.1M};h["2q"]=6(e){5 e.1q===L};h["1q"]=6(e){5 e.1q};h["1L"]=6(e){5 e.1L};q.J["^="]=6(a,v){5"/^"+R(v)+"/.l("+a+")"};q.J["$="]=6(a,v){5"/"+R(v)+"$/.l("+a+")"};q.J["*="]=6(a,v){5"/"+R(v)+"/.l("+a+")"};6 1p(e,a,t){1d(a){F"n":5 K;F"2p":a="2n";1a;F"2o":a="2n+1"}7 1m=1o(e.1n);6 1k(i){7 i=(t==G)?1m.y-i:i-1;5 1m[i]==e};8(!Y(a))5 1k(a);a=a.1l("n");7 m=1K(a[0]);7 s=1K(a[1]);8((Y(m)||m==1)&&s==0)5 K;8(m==0&&!Y(s))5 1k(s);8(Y(s))s=0;7 c=1;H(e=t(e))c++;8(Y(m)||m==1)5(t==G)?(c<=s):(s>=c);5(c%m)==s}});x.15("1j-2m",6(){U=1i("L;/*@2l@8(@\\2k)U=K@2j@*/");8(!U){X=6(e,t,n){5 n?e.2i("*",t):e.X(t)};14=6(e,n){5!n||(n=="*")||(e.2h==n)};1h=1g.1I?6(e){5/1J/i.l(Q(e).1I)}:6(e){5 Q(e).1H.1f!="2g"};1e=6(e){5 e.2f||e.1G||1b(e)};6 1b(e){7 t="",n,i;9(i=0;(n=e.1F[i]);i++){1d(n.1c){F 11:F 1:t+=1b(n);1a;F 3:t+=n.2e;1a}}5 t}}});19=K;5 x}();',62,190,'|||||return|function|var|if|for||||||||pseudoClasses||||test|||this||AttributeSelector|||||||cssQuery|length|push|fr|id||selectors||case|nextElementSibling|while||tests|true|false|thisElement||replace|match|getDocument|regEscape||attributeSelectors|isMSIE|cache||getElementsByTagName|isNaN|slice|child||new|getAttribute|compareNamespace|addModule|previousElementSibling|compareTagName|parseSelector|loaded|break|_0|nodeType|switch|getTextContent|tagName|document|isXML|eval|css|_1|split|ch|parentNode|childElements|nthChild|disabled|firstElementChild|getText|RegExp|Quote|x22|PREFIX|lang|_2|arguments|else|all|links|version|se|childNodes|innerText|documentElement|contentType|xml|parseInt|indeterminate|checked|last|nth|lastElementChild|parse|_3|add|href|String|className|create|NS_IE|remove|toString|ST|select|Array|null|_4|mimeType|lastChild|firstChild|continue|modules|delete|join|caching|error|nodeValue|textContent|HTML|prefix|getElementsByTagNameNS|end|x5fwin32|cc_on|standard||odd|even|enabled|hash|location|target|not|only|empty|root|contains|level3|outerHTML|htmlFor|class|toLowerCase|Function|name|first|level2|prototype|item|scopeName|toUpperCase|ownerDocument|Document|XML|Boolean|URL|unknown|typeof|nextSibling|previousSibling|visited|link|valueOf|clearCache|catch|concat|constructor|callee|try'.split('|'),0,{}))
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/filesize/4000kb.xml b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/filesize/4000kb.xml
new file mode 100644 (file)
index 0000000..d622c91
--- /dev/null
@@ -0,0 +1,102321 @@
+<?xml version="1.0" encoding="ISO-8859-15"?>
+<all>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+</all>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/filesize/400kb.xml b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/filesize/400kb.xml
new file mode 100644 (file)
index 0000000..0f448c2
--- /dev/null
@@ -0,0 +1,10224 @@
+<?xml version="1.0" encoding="ISO-8859-15"?>
+<all>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+</all>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/filesize/40kb.xml b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/filesize/40kb.xml
new file mode 100644 (file)
index 0000000..8cc7bd5
--- /dev/null
@@ -0,0 +1,1003 @@
+<?xml version="1.0" encoding="ISO-8859-15"?>
+<all>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+<data>abcdefghijklmnopqrstuvwxyz</data>
+</all>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/anita.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/anita.html
new file mode 100644 (file)
index 0000000..44c7219
--- /dev/null
@@ -0,0 +1,11 @@
+<html>
+  <body>
+    <h1>Anita Hummel</h1>
+    <p>42</p>
+    <p>Getho Bals</p>
+    <p>22432</p>
+    <p>Paris</p>
+    <p>France</p>
+    <p>0044.44930209</p>
+  </body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/anita.js b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/anita.js
new file mode 100644 (file)
index 0000000..6f348b6
--- /dev/null
@@ -0,0 +1,10 @@
+{
+  "name" : "Hummel",
+  "givenName" : "Anita",
+  "age" : 42,
+  "street" : "Getho Bals",
+  "plz" : 22432,
+  "city" : "Paris",
+  "country" : "France",
+  "phone" : "0044.44930209"
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/anita.txt b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/anita.txt
new file mode 100644 (file)
index 0000000..a8a9837
--- /dev/null
@@ -0,0 +1,8 @@
+name = Hummel
+givenName = Anita
+age = 42
+street = Getho Bals
+plz = 22432
+city = Paris
+country = France
+phone = 0044.44930209
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/anita.xml b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/anita.xml
new file mode 100644 (file)
index 0000000..ecad1f7
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<result>
+  <name>Hummel</name>
+  <givenName>Anita</givenName>
+  <age>42</age>
+  <street>Getho Bals</street>
+  <plz>22432</plz>
+  <city>Paris</city>
+  <country>France</country>
+  <phone>0044.44930209</phone>
+</result>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/harald.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/harald.html
new file mode 100644 (file)
index 0000000..610c158
--- /dev/null
@@ -0,0 +1,11 @@
+<html>
+  <body>
+    <h1>Harald Schmidt</h1>
+    <p>65</p>
+    <p>Karlsruher Allee</p>
+    <p>78392</p>
+    <p>Stuttgart</p>
+    <p>Germany</p>
+    <p>0049.750930302</p>
+  </body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/harald.js b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/harald.js
new file mode 100644 (file)
index 0000000..f593737
--- /dev/null
@@ -0,0 +1,10 @@
+{
+  "name" : "Schmidt",
+  "givenName" : "Harald",
+  "age" : 65,
+  "street" : "Karlsruher Allee",
+  "plz" : 78392,
+  "city" : "Stuttgart",
+  "country" : "Germany",
+  "phone" : "0049.750930302"
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/harald.txt b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/harald.txt
new file mode 100644 (file)
index 0000000..215a27d
--- /dev/null
@@ -0,0 +1,8 @@
+name = Schmidt
+givenName = Harald
+age = 65
+street = Karlsruher Allee
+plz = 78392
+city = Stuttgart
+country = Germany
+phone = 0049.750930302
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/harald.xml b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/harald.xml
new file mode 100644 (file)
index 0000000..425a8fd
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<result>
+  <name>Schmidt</name>
+  <givenName>Harald</givenName>
+  <age>65</age>
+  <street>Karlsruher Allee</street>
+  <plz>78392</plz>
+  <city>Stuttgart</city>
+  <country>Germany</country>
+  <phone>0049.750930302</phone>
+</result>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/lisbeth.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/lisbeth.html
new file mode 100644 (file)
index 0000000..e2a5a55
--- /dev/null
@@ -0,0 +1,11 @@
+<html>
+  <body>
+    <h1>Lisbeth Meyer</h1>
+    <p>74</p>
+    <p>Burlington Plaza</p>
+    <p>32323</p>
+    <p>New York</p>
+    <p>United States</p>
+    <p>0030.302020234</p>
+  </body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/lisbeth.js b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/lisbeth.js
new file mode 100644 (file)
index 0000000..40dfd03
--- /dev/null
@@ -0,0 +1,10 @@
+{
+  "name" : "Meyer",
+  "givenName" : "Lisbeth",
+  "age" : 74,
+  "street" : "Burlington Plaza",
+  "plz" : 32323,
+  "city" : "New York",
+  "country" : "United States",
+  "phone" : "0030.302020234"
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/lisbeth.txt b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/lisbeth.txt
new file mode 100644 (file)
index 0000000..def297f
--- /dev/null
@@ -0,0 +1,8 @@
+name = Meyer
+givenName = Lisbeth
+age = 74
+street = Burlington Plaza
+plz = 32323
+city = New York
+country = United States
+phone = 0030.302020234
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/lisbeth.xml b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/lisbeth.xml
new file mode 100644 (file)
index 0000000..a67a98d
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<result>
+  <name>Meyer</name>
+  <givenName>Lisbeth</givenName>
+  <age>74</age>
+  <street>Burlington Plaza</street>
+  <plz>32323</plz>
+  <city>New York</city>
+  <country>United States</country>
+  <phone>0030.302020234</phone>
+</result>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/paul.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/paul.html
new file mode 100644 (file)
index 0000000..f43ad8b
--- /dev/null
@@ -0,0 +1,11 @@
+<html>
+  <body>
+    <h1>Paul Fuettner</h1>
+    <p>27</p>
+    <p>Bismarckstrasse</p>
+    <p>33990</p>
+    <p>Garbsen</p>
+    <p>Germany</p>
+    <p>0049.57232067</p>
+  </body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/paul.js b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/paul.js
new file mode 100644 (file)
index 0000000..9739f47
--- /dev/null
@@ -0,0 +1,10 @@
+{
+  "name" : "Fuettner",
+  "givenName" : "Paul",
+  "age" : 27,
+  "street" : "Bismarckstrasse",
+  "plz" : 33990,
+  "city" : "Garbsen",
+  "country" : "Germany",
+  "phone" : "0049.57232067"
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/paul.txt b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/paul.txt
new file mode 100644 (file)
index 0000000..c79abc6
--- /dev/null
@@ -0,0 +1,8 @@
+name = Fuettner
+givenName = Paul
+age = 27
+street = Bismarckstrasse
+plz = 33990
+city = Garbsen
+country = Germany
+phone = 0049.57232067
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/paul.xml b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/data/persons/paul.xml
new file mode 100644 (file)
index 0000000..3ddfa44
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<result>
+  <name>Fuettner</name>
+  <givenName>Paul</givenName>
+  <age>27</age>
+  <street>Bismarckstrasse</street>
+  <plz>33990</plz>
+  <city>Garbsen</city>
+  <country>Germany</country>
+  <phone>0049.57232067</phone>
+</result>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file1.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file1.swf
new file mode 100644 (file)
index 0000000..2e6d69a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file1.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file10.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file10.swf
new file mode 100644 (file)
index 0000000..eeafa9a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file10.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file2.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file2.swf
new file mode 100644 (file)
index 0000000..51c8f0f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file2.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file3.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file3.swf
new file mode 100644 (file)
index 0000000..0b6b56b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file3.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file4.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file4.swf
new file mode 100644 (file)
index 0000000..746baa8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file4.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file5.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file5.swf
new file mode 100644 (file)
index 0000000..a3333e1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file5.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file6.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file6.swf
new file mode 100644 (file)
index 0000000..2cad550
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file6.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file7.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file7.swf
new file mode 100644 (file)
index 0000000..b5f4eb4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file7.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file8.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file8.swf
new file mode 100644 (file)
index 0000000..54c9a11
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file8.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file9.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file9.swf
new file mode 100644 (file)
index 0000000..cc41ff1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/color/file9.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/fo_tester.fla b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/fo_tester.fla
new file mode 100644 (file)
index 0000000..afd4bb6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/fo_tester.fla differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/fo_tester.swf b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/fo_tester.swf
new file mode 100644 (file)
index 0000000..8e0b966
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/flash/fo_tester.swf differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/grid_dialog_box.png b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/grid_dialog_box.png
new file mode 100644 (file)
index 0000000..2bc24a8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/image/grid_dialog_box.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/index.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/test/index.html
new file mode 100644 (file)
index 0000000..6f2d472
--- /dev/null
@@ -0,0 +1,19 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>qooxdoo &raquo; Demo</title>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="../../resource/css/layout_ie.css"/>
+  <![endif]-->
+  <script type="text/javascript" src="../../script/qx.js"></script>
+</head>
+<body>
+  <script type="text/javascript" src="../../script/layout.js"></script>
+
+  <div id="demoDescription">
+    <p>Please choose a test from above.</p>
+    <p>These tests may not always be up-to-date and functioning.</p>
+  </div>
+</body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/index.html b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/index.html
new file mode 100644 (file)
index 0000000..96c1bfd
--- /dev/null
@@ -0,0 +1,82 @@
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
+  <title>qooxdoo demo</title>
+  <link type="text/css" rel="stylesheet" href="resource/css/layout.css"/>
+  <!--[if IE]>
+  <link type="text/css" rel="stylesheet" href="resource/css/layout_ie.css"/>
+  <![endif]-->
+  <style type="text/css">
+*{
+  box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  margin: 0;
+  padding: 0;
+}
+
+img{
+  box-sizing: content-box;
+  -moz-box-sizing: content-box;
+}
+
+#content{
+  margin: 40px 20px 0;
+  width: 400px;
+}
+
+h1{
+  font-size: 20px;
+  margin-bottom: 20px;
+}
+
+h2{
+  font-size: 14px;
+}
+
+a{
+  color: #335EA8;
+}
+
+li{
+  margin-left: 16px;
+  list-style: square;
+  margin-bottom: 20px;
+}
+
+p{
+  font-size: 12px;
+}
+  </style>
+</head>
+<body>
+  <div id="demoHead">qooxdoo: <span>The new era of web interface development</span></div>
+  <div id="demoFoot"></div>
+
+  <div id="content" style="position:absolute;top:0px;left:0px">
+    <h1>qooxdoo <span>demo</demo></h1>
+
+    <ul>
+      <li>
+        <h2><a href="html/at-a-glance/index.html">At-a-Glance</a></h2>
+        <p>A good example for qooxdoo's versatility.</p>
+      </li>
+      <li>
+        <h2><a href="html/showcase/Showcase_1.html">Showcase</a></h2>
+        <p>Complex application-like interface using multiple qooxdoo widgets.</p>
+      </li>
+      <li>
+        <h2><a href="html/example/index.html">Example</a></h2>
+        <p>Easily to understand examples. The basic features of each qooxdoo widget is demonstrated in a separate example. This section is probably the one you are looking for!</p>
+      </li>
+      <li>
+        <h2><a href="html/test/index.html">Test</a></h2>
+        <p>These tests demonstrate internal functionality of qooxdoo. Not really useful for the typical qooxdoo user, but needed for developers to test some complex layout stuff, performance related problems and more. The tests may not always be up-to-date and functioning!</p>
+      </li>
+      <li>
+        <h2><a href="html/performance/index.html">Performance</a></h2>
+        <p>These tests are used to test performance of different javascript/qooxdoo rountines and allows them to compare them with each other</p>
+      </li>
+    </ul>
+  </div>
+</body>
+</html>
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/resource/css/layout.css b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/resource/css/layout.css
new file mode 100644 (file)
index 0000000..077d71d
--- /dev/null
@@ -0,0 +1,162 @@
+body{
+  font-size: 11px;
+  font-family: Arial, "Bitstream Vera Sans", Verdana, sans-serif;
+  margin: 0;
+  padding: 0;
+}
+
+p{
+  margin: 6px 0;
+}
+
+#demoHead,
+#demoFoot{
+  position: absolute;
+  left: 0px;
+  right: 0px;
+  width: 100%;
+  background: #134275;
+  padding: 3px 8px;
+  height: 20px;
+  color: white;
+  font-weight: bold;
+  overflow: hidden;
+  z-index: 1000000000;
+}
+
+#demoHead{
+  top: 0px;
+}
+
+#demoHead span{
+  font-weight: normal;
+}
+
+#demoFoot{
+  bottom: 0px;
+}
+
+#demoFoot a{
+  color: white;
+}
+
+#demoFrame{
+  position: absolute;
+  top: 20px;
+  bottom: 20px;
+  right: 0;
+  width: 280px;
+  background: #fff;
+  border-left: 10px solid #134275;
+  z-index: 1000000000;
+}
+
+#demoFiles{
+  font-size: 11px;
+  font-family: Tahoma, Verdana, sans-serif;
+
+  position: absolute;
+  top: 24px;
+  right: 50px;
+  width: 215px;
+  z-index: 1000000002;
+}
+
+#demoJump{
+  position: absolute;
+  top: 24px;
+  right: 4px;
+  width: 45px;
+  text-align: right;
+  z-index: 1000000002;
+}
+
+#demoDescription{
+  position: absolute;
+  top: 44px;
+  height : 120px;
+  width: 266px;
+  right: 4px;
+  z-index: 1000000002;
+  overflow: auto;
+  border-bottom: 10px solid #134275;
+  padding: 0px 6px 0px 4px;
+}
+
+#demoDescription p{
+  margin: 4px 0;
+}
+
+#demoDescription h1{
+  font-size: 12px;
+  margin: 8px 0 4px;
+}
+
+#demoDebug{
+  position: absolute;
+  top: 160px;
+  bottom: 24px;
+  right: 4px;
+  width: 266px;
+  font-size: 10px;
+  font-family: "Bitstream Vera Sans Mono", "Courier New", "Courier", monospace;
+  z-index: 1000000102;
+}
+
+#demoDebug .log-body{
+  overflow: auto;
+  position: absolute;
+  top: 30px;
+  bottom: 0px;
+  width: 266px;
+  padding: 4px;
+}
+
+#demoDebug .log-debug{
+  color: gray;
+  padding-left: 6px;
+}
+
+#demoDebug .log-info{
+  background: #DFEBFD;
+  padding-left: 6px;
+}
+
+#demoDebug .log-warn{
+  background: #F5FAAD;
+  padding-left: 6px;
+}
+
+#demoDebug .log-error{
+  background: #D2623E;
+  color: black;
+  padding-left: 6px;
+}
+
+#demoDebug .log-group{
+  margin-top: 4px;
+  margin-bottom: 1px;
+  text-decoration: underline;
+}
+
+#demoDebug .log-head{
+  padding: 8px 2px 4px;
+}
+
+#demoJump button,
+#demoDebug .log-head button{
+  border: 1px solid #335EA8;
+  margin: 0 2px;
+  font-size: 11px;
+  background: #EBE9ED;
+  font-family: Tahoma, Verdana, sans-serif;
+}
+
+#demoDebug .log-head button{
+  visibility: visible;
+}
+
+#demoJump button{
+  width: 16px;
+  -moz-appearance: none !important;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/resource/css/layout_ie.css b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/resource/css/layout_ie.css
new file mode 100644 (file)
index 0000000..70de91b
--- /dev/null
@@ -0,0 +1,11 @@
+#demoFrame{
+  height: expression(document.body.offsetHeight - 40);
+}
+
+#demoDebug{
+  height: expression(document.body.offsetHeight - 184);
+}
+
+#demoDebug .log-body{
+  height: expression(document.body.offsetHeight - 214);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/tool/layout.js.in b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/tool/layout.js.in
new file mode 100644 (file)
index 0000000..dcd32b5
--- /dev/null
@@ -0,0 +1,118 @@
+(function()
+{
+  var pos = Number(window.location.href.substring(window.location.href.lastIndexOf("/")+1, window.location.href.length-5));
+  var tnpos = pos + 1;
+  var tppos = pos - 1;
+
+  if (tnpos < 10)
+    tnpos = String("000" + tnpos)
+  else if (tnpos < 100)
+    tnpos = String("00" + tnpos)
+  else if (tnpos < 1000)
+    tnpos = String("0" + tnpos)
+  else
+    tnpos = String(tnpos)
+
+  if (tppos < 10)
+    tppos = String("000" + tppos)
+  else if (tppos < 100)
+    tppos = String("00" + tppos)
+  else if (tppos < 1000)
+    tppos = String("0" + tppos)
+  else
+    tppos = String(tppos)
+
+
+  document.write('<div id="demoHead">qooxdoo: <span>The new era of web development</span></div>');
+  document.write('<div id="demoFoot">');
+
+  if( /\/showcase\//.test(window.location.href) ) {
+    document.write('Selected: Showcase | ');
+    document.write('[<a href="../../index.html">Back to overview</a>] &#160;');
+  } else if( /\/example\//.test(window.location.href) ) {
+    document.write('Selected: Example | ');
+    document.write('[<a href="../../index.html">Back to overview</a>] &#160;');
+  } else if( /\/performance\//.test(window.location.href) ) {
+    document.write('Selected: Performance | ');
+    document.write('[<a href="../../index.html">Back to overview</a>] &#160;');
+  } else {
+    document.write('Selected: Test | ');
+    document.write('[<a href="../../index.html">Back to overview</a>] &#160;');
+  };
+
+  document.write('[<a href="javascript:qx.dev.Pollution.consoleInfo(\'window\');">Global Pollution</a>] &#160;');
+  document.write('[<a href="javascript:qx.core.Object.summary();">Object Summary</a>] &#160;');
+
+  document.write('</div>');
+  document.write('<div id="demoDebug"></div>');
+  document.write('<div id="demoFrame">&#160;</div>');
+
+  qx.dev.log.Logger.ROOT_LOGGER.removeAllAppenders();
+  qx.dev.log.Logger.ROOT_LOGGER.addAppender(new qx.dev.log.DivAppender("demoDebug"));
+
+  function showTestFiles()
+  {
+    var str = "";
+    if( window.location.href.search(/\/showcase\//)+1 ) {
+      str = showstr;
+    }
+    else if( window.location.href.search(/\/example\//)+1 ) {
+      str = exastr;
+    }
+    else if( window.location.href.search(/\/performance\//)+1 ) {
+      str = perfstr;
+    }
+    else if( window.location.href.search(/\/test\//)+1 ) {
+      str = teststr;
+    }
+
+    var arr = str.split(" ");
+    var p = window.location.pathname.replace(/\\/g, "/");
+    var sel = -1;
+
+    document.writeln('<select id="demoFiles" onchange="if(this.options[this.selectedIndex].value)window.location.href=this.options[this.selectedIndex].value">');
+    document.writeln('<option value=""></option>');
+    for( var i=1; i<arr.length; i++ ) {
+      document.write('<option value="' + arr[i] + '"');
+      if(p.search(new RegExp( "\/" + arr[i]) )+1) {
+        document.write(' selected="selected"');
+        sel = i;
+      }
+      document.writeln('>' + arr[i].replace(/_/g, " ").replace(/\.html/, "") + '</option>');
+    }
+    document.writeln('</select>');
+
+    if (sel != -1)
+    {
+      document.writeln('<div id="demoJump">');
+
+      if (sel > 1) {
+        document.writeln("<button onclick='window.location.href=\"" + arr[sel-1] + "\"'>&lt;</button>");
+      }
+
+      if (sel < arr.length-1) {
+        document.writeln("<button onclick='window.location.href=\"" + arr[sel+1] + "\"'>&gt;</button>");
+      }
+
+      document.writeln('</div>');
+    };
+  }
+
+  var url = location.href;
+  var pos = url.indexOf("/html/")+6;
+  var split = url.substring(pos).split("/");
+  var category = split[0];
+  category = category.charAt(0).toUpperCase() + category.substring(1);
+  var pagename = split[1].replace(".html", "").replace(/_/g, " ");
+  pagename = pagename.charAt(0).toUpperCase() + pagename.substring(1);
+
+  document.title = "qooxdoo Â» Demo Â» " + category + " Â» " + pagename;
+
+  if (window.location.href.indexOf("demo.qooxdoo.org") != -1)
+  {
+    document.write('<script type="text/javascript">var a_vars = []; var pagename=""; var phpmyvisitesSite = 5; var phpmyvisitesURL = "http://counter.qooxdoo.org/phpmyvisites.php";</script>');
+    document.write('<script type="text/javascript" src="http://counter.qooxdoo.org/phpmyvisites.js"></script>');
+    document.write('<script type="text/javascript" src="http://www.google-analytics.com/urchin.js"></script>');
+    document.write('<script type="text/javascript">_uacct = "UA-415440-1"; function urchinStart() { urchinTracker() }; if (window.addEventListener)window.addEventListener("load", urchinStart, false); else if(window.attachEvent)window.attachEvent("onload", urchinStart);</script>');
+  }
+//})();
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/tool/layout.sh b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/tool/layout.sh
new file mode 100755 (executable)
index 0000000..b30d283
--- /dev/null
@@ -0,0 +1,50 @@
+#!/usr/bin/env bash
+
+BASE="tool/layout.js.in"
+DIST="$1"
+SCAN="$2"
+TITLE="$3"
+
+mkdir -p `dirname $DIST`
+
+cat $BASE > $DIST
+
+showstr=""
+for file in $SCAN/showcase/*.html ;
+do
+  if [ `basename $file` != "index.html" ]; then
+    showstr="$showstr `basename $file`";
+  fi
+done
+echo "var showstr = \"$showstr\";" >> $DIST
+
+exastr=""
+for file in $SCAN/example/*.html ;
+do
+  if [ `basename $file` != "index.html" ]; then
+    exastr="$exastr `basename $file`";
+  fi
+done
+echo "var exastr = \"$exastr\";" >> $DIST
+
+perfstr=""
+for file in $SCAN/performance/*.html ;
+do
+  if [ `basename $file` != "index.html" ]; then
+    perfstr="$perfstr `basename $file`";
+  fi
+done
+echo "var perfstr = \"$perfstr\";" >> $DIST
+
+teststr=""
+for file in $SCAN/test/*.html ;
+do
+  if [ `basename $file` != "index.html" ]; then
+    teststr="$teststr `basename $file`";
+  fi
+done
+echo "var teststr = \"$teststr\";" >> $DIST
+
+echo "showTestFiles();" >> $DIST
+
+echo "})();" >> $DIST
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/Makefile b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/Makefile
new file mode 100644 (file)
index 0000000..97b4ada
--- /dev/null
@@ -0,0 +1,167 @@
+###################################################################################
+# VARIABLES
+###################################################################################
+
+FRAMEWORK=.
+GENERATOR=$(FRAMEWORK)/tool/generator.py
+CACHE=$(FRAMEWORK)/.cache
+SOURCELOADER=
+NICE=10
+TIMEFLAG = `date +'%s'`
+
+ifneq ($(SOURCELOADER),)
+  SOURCELDR = --source-loader-type $(SOURCELOADER)
+else
+  SOURCELDR =
+endif
+
+
+###################################################################################
+# DEFAULT TARGET
+###################################################################################
+
+all: build
+
+
+
+###################################################################################
+# COMMON TARGETS
+###################################################################################
+
+source: generate-source
+build: generate-build
+debug: generate-debug
+pretty: generate-pretty
+fix: generate-fix
+
+
+###################################################################################
+# CLEANUP TARGETS
+###################################################################################
+
+clean:
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @rm -f build/script/qx.js source/script/qx.js
+
+realclean: clean
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES (REAL)"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @nice -n $(NICE) rm -rf build source/script
+       @nice -n $(NICE) rm -rf debug-tokens debug-tree
+
+distclean: realclean
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES (DIST)"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @nice -n $(NICE) find tool -name "*.pyc" | xargs rm -f
+       @nice -n $(NICE) find . -name "*~" -o -name "*.bak" -o -name "*.old" -o -name "*.compiled" | xargs rm -rf
+       @nice -n $(NICE) rm -rf $(CACHE)
+
+
+
+
+###################################################################################
+# GENERATOR TARGETS
+###################################################################################
+
+generate-all:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --generate-compiled-script \
+         --compiled-script-file build/script/qx.js \
+         --optimize-strings \
+         --optimize-variables \
+         --copy-resources \
+         --resource-input source/resource \
+         --resource-output build/resource \
+         --source-script-path ../class \
+         --generate-source-script $(SOURCELDR) \
+         --source-script-file source/script/qx.js \
+         --cache-directory $(CACHE)
+
+generate-compile:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --generate-compiled-script \
+         --compiled-script-file build/script/qx.js \
+         --optimize-strings \
+         --optimize-variables \
+         --cache-directory $(CACHE)
+
+generate-resource:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --copy-resources \
+         --resource-input source/resource \
+         --resource-output build/resource \
+         --cache-directory $(CACHE)
+
+generate-build:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --generate-compiled-script \
+         --compiled-script-file build/script/qx.js \
+         --optimize-strings \
+         --optimize-variables \
+         --copy-resources \
+         --resource-input source/resource \
+         --resource-output build/resource \
+         --cache-directory $(CACHE)
+
+generate-source:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --source-script-path ../class \
+         --generate-source-script $(SOURCELDR) \
+         --source-script-file source/script/qx.js \
+         --cache-directory $(CACHE)
+
+generate-tree:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --tree-output-directory debug-tree \
+         --store-tree \
+         --cache-directory $(CACHE)
+
+generate-tokens:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --token-output-directory debug-tokens \
+         --store-tokens \
+         --cache-directory $(CACHE)
+
+generate-debug:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --tree-output-directory debug-tree \
+         --token-output-directory debug-tokens \
+         --store-tree \
+         --store-tokens \
+         --cache-directory $(CACHE)
+
+generate-pretty:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --pretty-print \
+         --cache-directory $(CACHE)
+
+generate-fix:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --fix-source \
+         --cache-directory $(CACHE)
+
+revision-bump:
+       @echo
+       @echo "  REVISION BUMP"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Updating version file..."
+       @tool/modules/tagtool.py source/class/qx/core/Version.js
+       @echo "  * Committing to SVN..."
+       @svn commit -m 'Revision bump: Online demo update' source/class/qx/core/Version.js
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/OO.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/OO.js
new file mode 100644 (file)
index 0000000..f4e2545
--- /dev/null
@@ -0,0 +1,749 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#id(qx.OO)
+#module(core)
+#after(qx.Settings)
+#load(qx.lang.Core)
+#load(qx.util.Return)
+#optional(qx.event.type.DataEvent)
+
+************************************************************************ */
+
+// Usage of this hacky construct to make qx.OO available inside the API viewer
+qx.OO = {};
+qx.OO.defineClass = function() {};
+qx.Class = qx.OO;
+qx.OO.defineClass("qx.OO");
+
+qx.Class.classes = {};
+qx.Class.setter = {};
+qx.Class.getter = {};
+qx.Class.resetter = {};
+qx.Class.values = {};
+qx.Class.propertyNumber = 0;
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFINE CLASS IMPLEMENTATION
+---------------------------------------------------------------------------
+*/
+
+/**
+ * define a new qooxdoo class
+ * All classes should be defined in this way.
+ *
+ * @param vClassName {string} fully qualified class name (e.g. "qx.ui.form.Button")
+ * @param vSuper {Object} super class
+ * @param vConstructor {Function} the constructor of the new class
+ */
+qx.Class.defineClass = function(vClassName, vSuper, vConstructor)
+{
+  var vSplitName = vClassName.split(".");
+  var vNameLength = vSplitName.length-1;
+  var vTempObject = window;
+
+  // Setting up namespace
+  for (var i=0; i<vNameLength; i++)
+  {
+    if (typeof vTempObject[vSplitName[i]] === "undefined") {
+      vTempObject[vSplitName[i]] = {};
+    }
+
+    vTempObject = vTempObject[vSplitName[i]];
+  }
+
+  // Instantiate objects/inheritance
+  if (typeof vSuper === "undefined")
+  {
+    if (typeof vConstructor !== "undefined") {
+      throw new Error("SuperClass is undefined, but constructor was given for class: " + vClassName);
+    }
+
+    qx.Class = vTempObject[vSplitName[i]] = {};
+    qx.Proto = null;
+    qx.Super = null;
+  }
+  else if (typeof vConstructor === "undefined")
+  {
+    qx.Class = vTempObject[vSplitName[i]] = vSuper;
+    qx.Proto = null;
+    qx.Super = vSuper;
+  }
+  else
+  {
+    qx.Class = vTempObject[vSplitName[i]] = vConstructor;
+
+    // build helper function
+    // this omits the initial constructor call while inherit properties
+    var vHelperConstructor = function() {};
+    vHelperConstructor.prototype = vSuper.prototype;
+    qx.Proto = vConstructor.prototype = new vHelperConstructor;
+
+    qx.Super = vConstructor.superclass = vSuper;
+
+    qx.Proto.classname = vConstructor.classname = vClassName;
+    qx.Proto.constructor = vConstructor;
+  }
+
+  // Store reference to global classname registry
+  qx.OO.classes[vClassName] = qx.Class;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  OBJECT PROPERTY EXTENSION
+---------------------------------------------------------------------------
+*/
+
+qx.Class.addFastProperty = function(vConfig)
+{
+  var vName = vConfig.name;
+  var vUpName = qx.lang.String.toFirstUp(vName);
+
+  var vStorageField = "_value" + vUpName;
+  var vGetterName = "get" + vUpName;
+  var vSetterName = "set" + vUpName;
+  var vComputerName = "_compute" + vUpName;
+
+  qx.Proto[vStorageField] = typeof vConfig.defaultValue !== "undefined" ? vConfig.defaultValue : null;
+
+  if (vConfig.noCompute)
+  {
+    qx.Proto[vGetterName] = function() {
+      return this[vStorageField];
+    }
+  }
+  else
+  {
+    qx.Proto[vGetterName] = function() {
+      return this[vStorageField] == null ? this[vStorageField] = this[vComputerName]() : this[vStorageField];
+    }
+  }
+
+  if (vConfig.setOnlyOnce)
+  {
+    qx.Proto[vSetterName] = function(vValue)
+    {
+      this[vStorageField] = vValue;
+      this[vSetterName] = null;
+
+      return vValue;
+    }
+  }
+  else
+  {
+    qx.Proto[vSetterName] = function(vValue) {
+      return this[vStorageField] = vValue;
+    }
+  }
+
+  if (!vConfig.noCompute)
+  {
+    qx.Proto[vComputerName] = function() {
+      return null;
+    }
+  }
+}
+
+qx.OO.addCachedProperty = function(p)
+{
+  var vName = p.name;
+  var vUpName = qx.lang.String.toFirstUp(vName);
+
+  var vStorageField = "_cached" + vUpName;
+  var vComputerName = "_compute" + vUpName;
+  var vChangeName = "_change" + vUpName;
+
+  if (typeof p.defaultValue !== "undefined") {
+    qx.Proto[vStorageField] = p.defaultValue;
+  }
+
+  qx.Proto["get" + vUpName] = function()
+  {
+    if (this[vStorageField] == null) {
+      this[vStorageField] = this[vComputerName]();
+    }
+
+    return this[vStorageField];
+  }
+
+  qx.Proto["_invalidate" + vUpName] = function()
+  {
+    if (this[vStorageField] != null)
+    {
+      this[vStorageField] = null;
+
+      if (p.addToQueueRuntime) {
+        this.addToQueueRuntime(p.name);
+      }
+    }
+  }
+
+  qx.Proto["_recompute" + vUpName] = function()
+  {
+    var vOld = this[vStorageField];
+    var vNew = this[vComputerName]();
+
+    if (vNew != vOld)
+    {
+      this[vStorageField] = vNew;
+      this[vChangeName](vNew, vOld);
+
+      return true;
+    }
+
+    return false;
+  }
+
+  qx.Proto[vChangeName] = function(vNew, vOld) {};
+  qx.Proto[vComputerName] = function() { return null; };
+}
+
+qx.Class.addPropertyGroup = function(p)
+{
+  /* --------------------------------------------------------------------------------
+      PRE-CHECKS
+  -------------------------------------------------------------------------------- */
+  if(typeof p !== "object") {
+    throw new Error("Param should be an object!");
+  }
+
+  if (qx.util.Validation.isInvalid(p.name)) {
+    throw new Error("Malformed input parameters: name needed!");
+  }
+
+  if (qx.util.Validation.isInvalid(p.members)) {
+    throw new Error("Malformed input parameters: members needed!");
+  }
+
+  p.method = qx.lang.String.toFirstUp(p.name);
+
+
+  /* --------------------------------------------------------------------------------
+      CACHING
+  -------------------------------------------------------------------------------- */
+  p.getter = [];
+  p.setter = [];
+
+  for (var i=0, l=p.members.length; i<l; i++) {
+    p.setter.push("set" + qx.lang.String.toFirstUp(p.members[i]));
+  }
+
+  for (var i=0, l=p.members.length; i<l; i++) {
+    p.getter.push("get" + qx.lang.String.toFirstUp(p.members[i]));
+  }
+
+
+  /* --------------------------------------------------------------------------------
+      GETTER
+  -------------------------------------------------------------------------------- */
+  qx.Proto["get" + p.method] = function()
+  {
+    var a = [];
+    var g = p.getter;
+
+    for (var i=0, l=g.length; i<l; i++) {
+      a.push(this[g[i]]());
+    }
+
+    return a;
+  };
+
+
+  /* --------------------------------------------------------------------------------
+      SETTER
+  -------------------------------------------------------------------------------- */
+  switch(p.mode)
+  {
+    case "shorthand":
+      qx.Proto["set" + p.method] = function()
+      {
+        if (arguments.length > 4 || arguments.length == 0) {
+          throw new Error("Invalid number of arguments for property " + p.name + ": " + arguments);
+        }
+
+        try
+        {
+          var ret = qx.lang.Array.fromShortHand(arguments);
+        }
+        catch(ex)
+        {
+          throw new Error("Invalid shorthand values for property " + p.name + ": " + arguments + ": " + ex);
+        }
+
+        var s = p.setter;
+        var l = s.length;
+
+        for (var i=0; i<l; i++) {
+          this[s[i]](ret[i]);
+        }
+      };
+      break;
+
+    default:
+      qx.Proto["set" + p.method] = function()
+      {
+        var s = p.setter;
+        var l = s.length;
+
+        if (arguments.length != l) {
+          throw new Error("Invalid number of arguments (needs: " + l + ", is: " + arguments.length + ") for property " + p.name + ": " + qx.lang.Array.fromArguments(arguments).toString());
+        }
+
+        for (var i=0; i<l; i++) {
+          this[s[i]](arguments[i]);
+        }
+      };
+  }
+}
+
+qx.Class.removeProperty = function(p)
+{
+  if (typeof qx.Proto._properties !== "string") {
+    throw new Error("Has no properties!");
+  }
+
+  if(typeof p !== "object") {
+    throw new Error("Param should be an object!");
+  }
+
+  if (qx.util.Validation.isInvalid(p.name)) {
+    throw new Error("Malformed input parameters: name needed!");
+  }
+
+  // building shorter prototype access
+  var pp = qx.Proto;
+
+  p.method = qx.lang.String.toFirstUp(p.name);
+  p.implMethod = p.impl ? qx.lang.String.toFirstUp(p.impl) : p.method;
+
+  var valueKey = "_value" + p.method;
+
+  // Remove property from list
+  pp._properties = qx.lang.String.remove(pp._properties, p.name);
+
+  // Reset default value to null
+  pp[valueKey] = null;
+
+  // Reset methods
+  pp["get" + p.method] = null;
+  pp["set" + p.method] = null;
+  pp["reset" + p.method] = null;
+  pp["apply" + p.method] = null;
+  pp["force" + p.method] = null;
+  pp["getDefault" + p.method] = null;
+  pp["setDefault" + p.method] = null;
+}
+
+qx.Class._createProperty = function(p)
+{
+  if(typeof p !== "object") {
+    throw new Error("AddProperty: Param should be an object!");
+  }
+
+  if (qx.util.Validation.isInvalid(p.name)) {
+    throw new Error("AddProperty: Malformed input parameters: name needed!");
+  }
+
+  // building shorter prototype access
+  var pp = qx.Proto;
+
+  p.method = qx.lang.String.toFirstUp(p.name);
+  p.implMethod = p.impl ? qx.lang.String.toFirstUp(p.impl) : p.method;
+
+  if (p.defaultValue == undefined) {
+    p.defaultValue = null;
+  }
+
+  if (qx.util.Validation.isInvalidBoolean(p.allowNull)) {
+    p.allowNull = true;
+  }
+
+  if (qx.util.Validation.isInvalidBoolean(p.allowMultipleArguments)) {
+    p.allowMultipleArguments = false;
+  }
+
+
+
+
+
+
+  if (typeof p.type === "string") {
+    p.hasType = true;
+  }
+  else if (typeof p.type !== "undefined") {
+    throw new Error("AddProperty: Invalid type definition for property " + p.name + ": " + p.type);
+  }
+  else {
+    p.hasType = false;
+  }
+
+  if (typeof p.instance === "string") {
+    p.hasInstance = true;
+  }
+  else if (typeof p.instance !== "undefined") {
+    throw new Error("AddProperty: Invalid instance definition for property " + p.name + ": " + p.instance);
+  }
+  else {
+    p.hasInstance = false;
+  }
+
+  if (typeof p.classname === "string") {
+    p.hasClassName = true;
+  }
+  else if (typeof p.classname !== "undefined") {
+    throw new Error("AddProperty: Invalid classname definition for property " + p.name + ": " + p.classname);
+  }
+  else {
+    p.hasClassName = false;
+  }
+
+
+
+
+
+
+  p.hasConvert = qx.util.Validation.isValidFunction(p.convert);
+  p.hasPossibleValues = qx.util.Validation.isValidArray(p.possibleValues);
+  p.hasUnitDetection = qx.util.Validation.isValidString(p.unitDetection);
+
+  p.addToQueue = p.addToQueue || false;
+  p.addToQueueRuntime = p.addToQueueRuntime || false;
+
+  // upper-case name
+  p.up = p.name.toUpperCase();
+
+  // register global uppercase name
+  qx.OO["PROPERTY_" + p.up] = p.name;
+
+  var valueKey = "_value" + p.method;
+  var evalKey = "_eval" + p.method;
+  var changeKey = "change" + p.method;
+  var modifyKey = "_modify" + p.implMethod;
+  var checkKey = "_check" + p.implMethod;
+
+  if (!qx.OO.setter[p.name])
+  {
+    qx.OO.setter[p.name] = "set" + p.method;
+    qx.OO.getter[p.name] = "get" + p.method;
+    qx.OO.resetter[p.name] = "reset" + p.method;
+    qx.OO.values[p.name] = valueKey;
+  }
+
+  // unit detection support
+  if (p.hasUnitDetection)
+  {
+    // computed unit
+    var cu = "_computed" + p.method;
+    pp[cu + "Value"] = null;
+    pp[cu + "Parsed"] = null;
+    pp[cu + "Type"] = null;
+    pp[cu + "TypeNull"] = true;
+    pp[cu + "TypePixel"] = false;
+    pp[cu + "TypePercent"] = false;
+    pp[cu + "TypeAuto"] = false;
+    pp[cu + "TypeFlex"] = false;
+
+    var unitDetectionKey = "_unitDetection" + qx.lang.String.toFirstUp(p.unitDetection);
+  }
+
+  // apply default value
+  pp[valueKey] = p.defaultValue;
+
+  // building getFoo(): Returns current stored value
+  pp["get" + p.method] = function() {
+    return this[valueKey];
+  };
+
+  // building forceFoo(): Set (override) without do anything else
+  pp["force" + p.method] = function(newValue) {
+    return this[valueKey] = newValue;
+  };
+
+  // building resetFoo(): Reset value to default value
+  pp["reset" + p.method] = function() {
+    return this["set" + p.method](p.defaultValue);
+  };
+
+  // building toggleFoo(): Switching between two boolean values
+  if (p.type === "boolean")
+  {
+    pp["toggle" + p.method] = function(newValue) {
+      return this["set" + p.method](!this[valueKey]);
+    };
+  }
+
+  if (p.allowMultipleArguments || p.hasConvert || p.hasInstance || p.hasClassName || p.hasPossibleValues || p.hasUnitDetection || p.addToQueue || p.addToQueueRuntime || p.addToStateQueue)
+  {
+    // building setFoo(): Setup new value, do type and change detection, converting types, call unit detection, ...
+    pp["set" + p.method] = function(newValue)
+    {
+      // convert multiple arguments to array
+      if (p.allowMultipleArguments && arguments.length > 1) {
+        newValue = qx.lang.Array.fromArguments(arguments);
+      }
+
+      // support converter methods
+      if (p.hasConvert)
+      {
+        try
+        {
+          newValue = p.convert.call(this, newValue, p);
+        }
+        catch(ex)
+        {
+          throw new Error("Attention! Could not convert new value for " + p.name + ": " + newValue + ": " + ex);
+        }
+      }
+
+      var oldValue = this[valueKey];
+
+      if (newValue === oldValue) {
+        return newValue;
+      }
+
+      if (!(p.allowNull && newValue == null))
+      {
+        if (p.hasType && typeof newValue !== p.type) {
+          return this.error("Attention! The value \"" + newValue + "\" is an invalid value for the property \"" + p.name + "\" which must be typeof \"" + p.type + "\" but is typeof \"" + typeof newValue + "\"!", new Error());
+        }
+
+        if (p.hasInstance && !(newValue instanceof qx.OO.classes[p.instance])) {
+          return this.error("Attention! The value \"" + newValue + "\" is an invalid value for the property \"" + p.name + "\" which must be an instance of \"" + p.instance + "\"!", new Error());
+        }
+
+        if (p.hasClassName && newValue.classname != p.classname) {
+          return this.error("Attention! The value \"" + newValue + "\" is an invalid value for the property \"" + p.name + "\" which must be an object with the classname \"" + p.classname + "\"!", new Error());
+        }
+
+        if (p.hasPossibleValues && newValue != null && !qx.lang.Array.contains(p.possibleValues, newValue)) {
+          return this.error("Failed to save value for " + p.name + ". '" + newValue + "' is not a possible value!", new Error());
+        }
+      }
+
+      // Allow to check and transform the new value before storage
+      if (this[checkKey])
+      {
+        try
+        {
+          newValue = this[checkKey](newValue, p);
+
+          // Don't do anything if new value is indentical to old value
+          if (newValue === oldValue) {
+            return newValue;
+          }
+        }
+        catch(ex)
+        {
+          return this.error("Failed to check property " + p.name, ex);
+        }
+      }
+
+      // Store new value
+      this[valueKey] = newValue;
+
+      // Check if there is a modifier implementation
+      if (this[modifyKey])
+      {
+        try
+        {
+          var r = this[modifyKey](newValue, oldValue, p);
+          if (!r) {
+            return this.error("Modification of property \"" + p.name + "\" failed without exception (" + r + ")", new Error());
+          }
+        }
+        catch(ex)
+        {
+          return this.error("Modification of property \"" + p.name + "\" failed with exception", ex);
+        }
+      }
+
+      // Unit detection support
+      if (p.hasUnitDetection) {
+        this[unitDetectionKey](p, newValue);
+      }
+
+      // Auto queue addition support
+      if (p.addToQueue) {
+        this.addToQueue(p.name);
+      }
+      else if (p.addToQueueRuntime) {
+        this.addToQueueRuntime(p.name);
+      }
+
+      // Auto state queue addition support
+      if (p.addToStateQueue) {
+        this.addToStateQueue();
+      }
+
+      // Create Event
+      if (this.hasEventListeners && this.hasEventListeners(changeKey))
+      {
+        try
+        {
+          this.createDispatchDataEvent(changeKey, newValue);
+        }
+        catch(ex)
+        {
+          throw new Error("Property " + p.name + " modified: Failed to dispatch change event: " + ex);
+        }
+      }
+
+      return newValue;
+    };
+  }
+  else
+  {
+    // building setFoo(): Setup new value, do type and change detection, converting types, call unit detection, ...
+    pp["set" + p.method] = function(newValue)
+    {
+      // this.debug("Fast Setter: " + p.name);
+
+      var oldValue = this[valueKey];
+
+      if (newValue === oldValue) {
+        return newValue;
+      }
+
+      if (!(p.allowNull && newValue == null))
+      {
+        if (p.hasType && typeof newValue !== p.type) {
+          return this.error("Attention! The value \"" + newValue + "\" is an invalid value for the property \"" + p.name + "\" which must be typeof \"" + p.type + "\" but is typeof \"" + typeof newValue + "\"!", new Error());
+        }
+      }
+
+      // Allow to check and transform the new value before storage
+      if (this[checkKey])
+      {
+        try
+        {
+          newValue = this[checkKey](newValue, p);
+
+          // Don't do anything if new value is indentical to old value
+          if (newValue === oldValue) {
+            return newValue;
+          }
+        }
+        catch(ex)
+        {
+          return this.error("Failed to check property " + p.name, ex);
+        }
+      }
+
+      // Store new value
+      this[valueKey] = newValue;
+
+      // Check if there is a modifier implementation
+      if (this[modifyKey])
+      {
+        try
+        {
+          var r = this[modifyKey](newValue, oldValue, p);
+          if (!r) {
+            var valueStr = new String(newValue).substring(0, 50);
+            return this.error("Setting property \"" + p.name + "\" to \"" + valueStr + "\" failed without exception (" + r + ")", new Error());
+          }
+        }
+        catch(ex)
+        {
+          var valueStr = new String(newValue).substring(0, 50);
+          return this.error("Setting property \"" + p.name + "\" to \"" + valueStr + "\" failed with exception", ex);
+        }
+      }
+
+      // Create Event
+      if (this.hasEventListeners && this.hasEventListeners(changeKey))
+      {
+        var vEvent = new qx.event.type.DataEvent(changeKey, newValue, oldValue, false);
+
+        vEvent.setTarget(this);
+
+        try
+        {
+          this.dispatchEvent(vEvent, true);
+        }
+        catch(ex)
+        {
+          throw new Error("Property " + p.name + " modified: Failed to dispatch change event: " + ex);
+        }
+      }
+
+      return newValue;
+    };
+  }
+
+  // building user configured get alias for property
+  if (typeof p.getAlias === "string") {
+    pp[p.getAlias] = pp["get" + p.method];
+  }
+
+  // building user configured set alias for property
+  if (typeof p.setAlias === "string") {
+    pp[p.setAlias] = pp["set" + p.method];
+  }
+}
+
+qx.Class.changeProperty = qx.OO._createProperty;
+
+qx.Class.addProperty = function(p)
+{
+  qx.OO.propertyNumber++;
+
+  qx.OO._createProperty(p);
+
+  // add property to (all) property list
+  if (typeof qx.Proto._properties !== "string") {
+    qx.Proto._properties = p.name;
+  } else {
+    qx.Proto._properties += "," + p.name;
+  }
+
+  // add property to object property list
+  switch(p.type)
+  {
+    case undefined:
+    case "object":
+    case "function":
+      if (typeof qx.Proto._objectproperties !== "string") {
+        qx.Proto._objectproperties = p.name;
+      } else {
+        qx.Proto._objectproperties += "," + p.name;
+      }
+  }
+}
+
+qx.Class.inheritField = function(vField, vData)
+{
+  qx.lang.Object.carefullyMergeWith(vData, qx.Super.prototype[vField]);
+  qx.Proto[vField] = vData;
+}
+
+qx.Class.isAvailable = function(vClassName) {
+  return typeof qx.OO.classes[vClassName] !== "undefined";
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/Settings.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/Settings.js
new file mode 100644 (file)
index 0000000..d75a0d5
--- /dev/null
@@ -0,0 +1,167 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#id(qx.Settings)
+#module(core)
+
+************************************************************************ */
+
+
+
+/*
+---------------------------------------------------------------------------
+  CREATE NAMESPACE HIERARCHY
+---------------------------------------------------------------------------
+*/
+
+if (!window.qx) {
+  qx = {};
+}
+
+if (!qx.Settings) {
+  qx.Settings = {};
+}
+
+if (!qx.Settings._customSettings) {
+  qx.Settings._customSettings = {};
+}
+
+/** the default settings */
+qx.Settings._defaultSettings = {};
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ATTACH GLOBAL DATA
+---------------------------------------------------------------------------
+*/
+
+qx._LOADSTART = (new Date).valueOf();
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITES METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.substitute = function(vTemplate)
+{
+  if (typeof vTemplate !== "string") {
+    return vTemplate;
+  }
+
+  return vTemplate.replace(/\%\{(.+)\}/g, function(vMatch, vKey) {
+    return eval(vKey);
+  });
+};
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ACCESS METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.getValue = function(vKey) {
+  return qx.Settings.getValueOfClass(qx.Class.classname, vKey);
+}
+
+qx.Settings.getValueOfClass = function(vClassName, vKey)
+{
+  var vCustomObject = qx.Settings._customSettings[vClassName];
+  if (vCustomObject && vCustomObject[vKey] != null) {
+    return vCustomObject[vKey];
+  }
+
+  var vDefaultObject = qx.Settings._defaultSettings[vClassName];
+  if (vDefaultObject && vDefaultObject[vKey] != null) {
+    return vDefaultObject[vKey];
+  }
+
+  return null;
+}
+
+qx.Settings.setDefault = function(vKey, vValue) {
+  return qx.Settings.setDefaultOfClass(qx.Class.classname, vKey, vValue);
+}
+
+qx.Settings.setDefaultOfClass = function(vClassName, vKey, vValue)
+{
+  var vDefaultObject = qx.Settings._defaultSettings[vClassName];
+
+  if (!vDefaultObject) {
+    vDefaultObject = qx.Settings._defaultSettings[vClassName] = {};
+  }
+
+  // default values doesn't support substitution
+  vDefaultObject[vKey] = vValue;
+}
+
+qx.Settings.setCustom = function(vKey, vValue) {
+  return qx.Settings.setCustomOfClass(qx.Class.classname, vKey, vValue);
+}
+
+qx.Settings.setCustomOfClass = function(vClassName, vKey, vValue)
+{
+  var vCustomObject = qx.Settings._customSettings[vClassName];
+
+  if (!vCustomObject) {
+    vCustomObject = qx.Settings._customSettings[vClassName] = {};
+  }
+
+  vCustomObject[vKey] = qx.Settings.substitute(vValue);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  IMPORT VARIABLES OF CUSTOM SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.init = function()
+{
+  for (var vClass in qx.Settings._customSettings)
+  {
+    var vSettings = qx.Settings._customSettings[vClass];
+
+    for (var vKey in vSettings) {
+      qx.Settings.setCustomOfClass(vClass, vKey, vSettings[vKey]);
+    }
+  }
+}
+
+qx.Settings.init();
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/Builder.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/Builder.js
new file mode 100644 (file)
index 0000000..0315628
--- /dev/null
@@ -0,0 +1,478 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+/*!
+  A class to generate a widget hierarchy from XML
+
+  qx.client.Builder is not thread safe by design
+    - state information is stored at the instance level
+    - only use it from a single thread
+*/
+qx.OO.defineClass("qx.client.Builder", qx.core.Target,
+function(flags)
+{
+  qx.core.Target.call(this);
+
+  // map<className, map<propertyName, function>>
+  this._propertyEditors = {};
+
+  this._registerDefaultPropertyEditors();
+
+  this._flags = flags || {};
+
+  // ensure the default flags are setup
+  if (this._flags.strict == null) {
+    // strick mode throws exceptions when
+    //  * widget setters don't exist
+    this._flags.strict = true;
+  }
+
+});
+
+/*
+------------------------------------------------------------------------------------
+  BUILD
+------------------------------------------------------------------------------------
+*/
+
+/*!
+  Asynchronous method - fetches XML data from the URL then delegates to build to process the xml
+  Dispatches a qx.event.type.Event("done") after the hierarchy is built
+*/
+qx.Proto.buildFromUrl = function(parent, url) {
+  var req = new qx.io.remote.Request(url, "GET", "application/xml");
+  var self = this;
+  req.addEventListener("completed", function(e) {
+    self.build(parent, e.getData().getContent());
+    qx.ui.core.Widget.flushGlobalQueues();
+  });
+  req.send();
+}
+
+/*!
+  parse the children of the xml and appending all widgets to the parent widget
+  @param parent can either be the application instance, or a widget to append the xml toplevel widgets to
+  @param node can be either a xml string, or a xml dom document or fragment
+*/
+qx.Proto.build = function(parent, node) {
+    // support embedding of an XML string within a textarea
+    if (typeof node == "object" && node.nodeName == 'TEXTAREA') {
+      node = node.value;
+    }
+
+    // parse strings in to XML DOM
+    if (typeof node == "string") {
+      var parser = new DOMParser();
+      node = parser.parseFromString(node, "text/xml");
+      // TODO handle parse errors
+    }
+    this._buildNodes(parent, node.childNodes);
+}
+
+qx.Proto._buildNodes = function(parent, nodes) {
+    var x = 0;
+    for (var i = 0; i < nodes.length; i++) {
+      var n = nodes[i];
+      // 1 = ELEMENT_NODE
+      if (n.nodeType == 1) {
+          this._buildWidgetFromNode(parent, n);
+      }
+    }
+}
+
+qx.Proto._buildEventListener = function(widget, args, text) {
+  if (qx.util.Validation.isInvalidString(args.type)) {
+    throw this._newError('eventListener requires a string type attribute');
+  }
+
+  var self = this;
+
+  // are we delegating ?
+  if (qx.util.Validation.isValidString(args.delegate)) {
+
+    if (args.delegate.indexOf('.') > -1) {
+      // delegation to a global method
+      var p = args.delegate.split('.');
+      var o = p[0];
+      var m = p[1];
+      widget.addEventListener(args.type, function(e) {
+
+          if (!window[o]) {
+            throw self._newError('delegate not found', {delegate:args.delegate});
+          }
+
+          if (!window[o][m]) {
+            throw self._newError('delegate not found', {delegate:args.delegate});
+          }
+
+          window[o][m].apply(window[o], [e]);
+      });
+    }
+    else {
+
+      // delegation to a global method
+      widget.addEventListener(args.type, function(e) {
+
+        if (!window[args.delegate]) {
+          throw self._newError('delegate not found', {delegate:args.delegate});
+        }
+
+        window[args.delegate].apply(null, [e]);
+      });
+    }
+  }
+  else {
+
+    // build a function object using text as the function body
+    //
+    // the args attribute indicates the name of the event argument
+    // if not provided - use 'event' as the name
+    if (!args.args) {
+      args.args = "event";
+    }
+
+    var f = new Function(args.args, text);
+    widget.addEventListener(args.type, f);
+  }
+}
+
+
+/*
+  a node builder that will be used if no node builder is declared for a nodeName
+*/
+qx.Proto._buildWidgetFromNode = function(parent, node) {
+
+  var className = this._extractClassName(node);
+
+  if (!className) {
+    throw this._newError("unrecognised node", {nodeName:node.nodeName});
+  }
+
+  if (className == "qx.client.builder.Container") {
+    // generic container node to allow xml to contain multiple toplevel nodes
+    this._buildNodes(parent, node.childNodes);
+    return;
+  }
+
+  if (className == "qx.client.builder.Script") {
+    var e = document.createElement("script");
+    var attribs = this._mapXmlAttribToObject(node);
+    if (attribs.type) {
+      e.type = attribs.type;
+    }
+    else {
+      e.type='text/javascript';
+    }
+
+    // e.innerHTML = node.firstChild.nodeValue;
+
+    // fix for Internet Explorer by Cristian Bica
+    if (qx.sys.Client.getInstance().isMshtml())
+    {
+      e.innerHTML = eval(node.firstChild.nodeValue);
+    }
+    else
+    {
+      e.innerHTML = node.firstChild.nodeValue;
+    }
+
+    document.body.appendChild(e);
+    return;
+  }
+
+  if (className == "qx.client.builder.EventListener") {
+    var attribs = this._mapXmlAttribToObject(node);
+    var text;
+    if (node.firstChild) {
+      text = node.firstChild.nodeValue;
+    }
+    this._buildEventListener(parent, attribs, text);
+    return;
+  }
+
+
+  var classConstructor = qx.OO.classes[className];
+  if (!classConstructor) {
+    throw this._newError("constructor not found", {className:className});
+  }
+
+  // construct the widget instance - using the default constructor
+  var widget = new classConstructor();
+  var attribs = this._mapXmlAttribToObject(node, widget);
+  delete attribs['qxtype'];
+
+  var dummyWidget = attribs.id && attribs.id.indexOf("_") == 0;
+
+  if (attribs.id) {
+    // register a global refrence for this widget
+    window[attribs.id] = widget;
+    delete attribs.id;
+  }
+
+  // convert any on??  attribs into event listeners
+  for (var a in attribs) {
+
+    if (a.toLowerCase().indexOf('on') == 0 && a.length > 2) {
+
+      // there may be issues here for XHTML based attributes - due to their case
+      var type = a.substring(2);
+      type = type.charAt(0) + type.substring(1);
+
+      this._buildEventListener(widget, {type:type,args:'event'}, attribs[a]);
+
+      delete attribs[a];
+    }
+  }
+
+  for (var n in attribs) {
+    this._setWidgetProperty(widget, n, attribs[n]);
+  }
+
+  if(!dummyWidget) {
+    parent.add(widget);
+  }
+
+  // recurse to all of the nodes children, using the newly created widget as the parent
+  this._buildNodes(widget, node.childNodes);
+}
+
+/*
+------------------------------------------------------------------------------------
+  WIDGET PROPERTIES
+------------------------------------------------------------------------------------
+*/
+
+
+/*!
+  Set a widget's property using a propertyEditor
+*/
+qx.Proto._setWidgetProperty = function(widget, name, value) {
+  var editor = this._findPropertyEditor(widget.classname, name);
+  if (!editor) {
+    editor = this._coercePropertyEditor;
+  }
+  editor.set(widget, name, value);
+}
+
+qx.Proto._findPropertyEditor = function(className, propertyName) {
+  // get all defined propertyEditors for this widget's prototype
+  var m = this._propertyEditors[className];
+  // lookup the converter for this property name
+  if (m && m[propertyName]) {
+    return m[propertyName];
+  }
+
+  // try the widget's superclass
+  var w = qx.OO.classes[className];
+  if (w && w.superclass && w.superclass.prototype.classname) {
+    return this._findPropertyEditor(w.superclass.prototype.classname, propertyName);
+  }
+
+  return null;
+}
+
+qx.Proto.registerPropertyEditor = function(className, propertyName, editor) {
+  if (!this._propertyEditors[className]) this._propertyEditors[className] = {};
+  this._propertyEditors[className][propertyName] = editor;
+}
+
+qx.Proto._registerDefaultPropertyEditors = function() {
+  var self = this;
+
+  // a property editor that splits the values on a comma and coerces each one into a suitable type
+  var commaDelimitedPropertyEditor = {};
+  commaDelimitedPropertyEditor.set = function(widget, name, value) {
+      if (value == null || value == "") {
+        self._setProperty(widget, name, null);
+        return;
+      }
+
+      var s = value.split(",");
+      var v = [];
+      for (var i = 0; i < s.length; i++) {
+        v[i] = self._coerce(s[i]);
+      }
+
+      self._setProperties(widget, name, v);
+  }
+
+  var evalPropertyEditor = {};
+  evalPropertyEditor.set = function(widget, name, value) {
+      if (value == null || value == "") {
+        self._setProperty(widget, name, null);
+        return;
+      }
+
+      self._setProperty(widget, name, eval(value));
+  }
+
+  var referencePropertyEditor = {};
+  referencePropertyEditor.set = function(widget, name, value) {
+    self._setProperty(widget, name, window[value]);
+  }
+
+  this.registerPropertyEditor('qx.ui.core.Widget', 'location', commaDelimitedPropertyEditor);
+  this.registerPropertyEditor('qx.ui.core.Widget', 'dimension', commaDelimitedPropertyEditor);
+
+  this.registerPropertyEditor('qx.ui.core.Widget', 'space', commaDelimitedPropertyEditor);
+  this.registerPropertyEditor('qx.ui.core.Widget', 'edge', commaDelimitedPropertyEditor);
+
+  this.registerPropertyEditor('qx.ui.core.Widget', 'padding', commaDelimitedPropertyEditor);
+  this.registerPropertyEditor('qx.ui.core.Widget', 'margin', commaDelimitedPropertyEditor);
+
+  this.registerPropertyEditor('qx.ui.core.Widget', 'heights', commaDelimitedPropertyEditor);
+  this.registerPropertyEditor('qx.ui.core.Widget', 'widths', commaDelimitedPropertyEditor);
+
+  this.registerPropertyEditor('qx.ui.core.Widget', 'align', commaDelimitedPropertyEditor);
+  this.registerPropertyEditor('qx.ui.core.Widget', 'stretch', commaDelimitedPropertyEditor);
+
+  this.registerPropertyEditor('qx.ui.core.Widget', 'clipLocation', commaDelimitedPropertyEditor);
+  this.registerPropertyEditor('qx.ui.core.Widget', 'clipDimension', commaDelimitedPropertyEditor);
+  this.registerPropertyEditor('qx.ui.core.Widget', 'clip', commaDelimitedPropertyEditor);
+
+  this.registerPropertyEditor('qx.ui.core.Widget', 'backgroundColor', evalPropertyEditor);
+  this.registerPropertyEditor('qx.ui.core.Widget', 'color', evalPropertyEditor);
+  this.registerPropertyEditor('qx.ui.core.Widget', 'border', evalPropertyEditor);
+
+
+  this.registerPropertyEditor('qx.ui.menu.Button', 'menu', referencePropertyEditor);
+  this.registerPropertyEditor('qx.ui.form.RadioButton', 'manager', referencePropertyEditor);
+  this.registerPropertyEditor('qx.ui.menu.RadioButton', 'group', referencePropertyEditor);
+
+
+  // a property editor that just tries to coerce the string value into a suitable type
+  this._coercePropertyEditor = {};
+  this._coercePropertyEditor.set = function(widget, name, value) {
+      self._setProperty(widget, name, self._coerce(value));
+  }
+
+}
+
+
+qx.Proto._coerce = function(value) {
+
+  // don't really care if its null
+  if (value == null) return value;
+
+  // is it alreay a javascript type
+  if (typeof value == 'object') return value;
+  if (typeof value == 'function') return value;
+  if (typeof value == 'number') return value;
+  if (typeof value == 'boolean') return value;
+  if (typeof value == 'date') return value;
+  if (typeof value == 'array') return value;
+
+  // is it a number ?
+  var n = new Number(value);
+  if (!isNaN(n)) return n.valueOf();
+
+  // is it a boolean ?
+  if (value == "true") return true;
+  if (value == "false") return false;
+
+  // is it a date ?
+  var d = Date.parse(value);
+  if (d != null && !isNaN(d)) return d;
+
+  // leave it as a string
+  if (typeof value == 'string') {
+    // convert empty string into null
+    if (value == "") return null;
+  }
+
+  return value;
+}
+
+qx.Proto._setProperty = function(widget, name, value) {
+  this._setProperties(widget, name, [value]);
+}
+
+qx.Proto._setProperties = function(widget, name, value) {
+
+  // TODO : find a cheaper way to find the setter
+  // NOTE : the name is LOWERCASE - hence we iterate all properties of the widget
+  //         to try and find a matching one
+  var n = "set" + name;
+  for (var a in widget) {
+    if (n == a.toLowerCase()) {
+      var setter = widget[a];
+      break;
+    }
+  }
+  if (!setter && this._flags.strict) throw this._newError('no setter defined on widget instance', {widget:widget, property:name});
+  setter.apply(widget, value);
+}
+
+
+/*
+------------------------------------------------------------------------------------
+  UTILS
+------------------------------------------------------------------------------------
+*/
+
+/*
+2 format
+1. <qx.ui.basic.Atom/>
+3. <div qxtype="qx.ui.basic.Atom"/>
+*/
+qx.Proto._extractClassName = function(node) {
+  if (node.nodeName.toLowerCase() == "div") {
+    if (!node.attributes['qxtype'])
+      return null;
+    return node.attributes['qxtype'].value;
+  } else {
+    return node.nodeName;
+  }
+}
+
+qx.Proto._mapXmlAttribToObject = function(node) {
+  var r = {};
+  var c = node.attributes;
+  for (var i=0; i<c.length; i++) {
+    r[c[i].name.toLowerCase()] = c[i].value;
+  }
+  return r;
+}
+
+/*
+------------------------------------------------------------------------------------
+  EXCEPTION HANDLING / DEBUGGING
+------------------------------------------------------------------------------------
+*/
+
+qx.Proto._newError = function(message, data, exception) {
+  var m = message;
+  var joiner = "";
+  var d = "";
+  if (data) {
+    for (var p in data) {
+      d += joiner + p + "=" + data[p] + '';
+      joiner = " ";
+    }
+    m += " " + d + " ";
+  }
+  if (exception) {
+    m+= " error: " + exception + " ";
+  }
+  return new Error(m);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/Command.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/Command.js
new file mode 100644 (file)
index 0000000..6ea2fd0
--- /dev/null
@@ -0,0 +1,288 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * Fabian Jakobs (fjakobs)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+/**
+ * This contains a command with shortcut.
+ *
+ * Each command could be assigned to multiple widgets.
+ *
+ * @event execute {qx.event.type.DataEvent} when the command is executed.
+ *
+ * @param vShortcut (string) shortcuts can be composed of optional modifier
+ *    keys Control, Alt, Shift, Meta and a non modifier key.
+ *    If no non modifier key is specified, the second paramater is evaluated.
+ *    The key must be seperated by a ''+'' or ''-'' character.
+ *    Examples: Alt+F1, Control+C, Control+Alt+Enf
+ *
+ * @param vKeyCodeOrIdentifier (int)  Additional key of the command. It is interpreted as a
+ *    keyIdentifier if it is given as integer. Otherwhise it is interpreted as keyCode.
+ */
+qx.OO.defineClass("qx.client.Command", qx.core.Target,
+function(vShortcut, vKeyCodeOrIdentifier)
+{
+  qx.core.Target.call(this);
+
+  this._modifier = {};
+  this._key = null;
+
+  if (qx.util.Validation.isValid(vShortcut)) {
+    this.setShortcut(vShortcut);
+  }
+
+  if (qx.util.Validation.isValid(vKeyCodeOrIdentifier))
+  {
+     if (qx.util.Validation.isValidString(vKeyCodeOrIdentifier))
+     {
+      this.setKeyIdentifier(vKeyCodeOrIdentifier);
+     }
+     else if (qx.util.Validation.isValidNumber(vKeyCodeOrIdentifier))
+     {
+      this.warn("The use of keyCode in command is deprecated. Use keyIdentifier instead.");
+      this.setKeyCode(vKeyCodeOrIdentifier);
+    }
+    else
+    {
+      var msg = "vKeyCodeOrIdentifier must be of type string or number: " + vKeyCodeOrIdentifier;
+      this.error(msg);
+      throw msg;
+    }
+  }
+
+  // OSX warning for Alt key combinations
+  if (this._modifier.Alt && this._key && this._key.length == 1) {
+    if (
+      (this._key >= "A" && this._key <= "Z") ||
+      (this._key >= "0" && this._key <= "9")
+    ) {
+      this.warn("A shortcut containing Alt and a letter or number will not work under OS X!");
+    }
+  }
+  qx.event.handler.EventHandler.getInstance().addCommand(this);
+});
+
+
+/** the command shortcut */
+qx.OO.addProperty({ name : "shortcut", type : "string" });
+
+/**
+ * keyCode (Deprecated)
+ * Still there for compatibility with the old key handler/commands
+ */
+qx.OO.addProperty({ name : "keyCode", type : "number" });
+
+/** KeyIdentifier */
+qx.OO.addProperty({ name : "keyIdentifier", type : "string" });
+
+
+
+/*
+---------------------------------------------------------------------------
+  USER METHODS
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Fire the "execute" event on this command.
+ *
+ * @param vTarget (Object)
+ */
+qx.Proto.execute = function(vTarget)
+{
+  if (this.hasEventListeners("execute")) {
+    this.dispatchEvent(new qx.event.type.DataEvent("execute", vTarget), true);
+  }
+
+  return false;
+};
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyShortcut = function(propValue, propOldValue, propData)
+{
+  if (propValue)
+  {
+    this._modifier = {};
+    this._key = null;
+
+    // split string to get each key which must be pressed
+    // build a hash with active keys
+    var a = propValue.split(/[-+\s]+/);
+    var al = a.length;
+
+    for (var i=0; i<al; i++)
+    {
+      var identifier = qx.event.handler.KeyEventHandler.getInstance().oldKeyNameToKeyIdentifier(a[i]);
+
+      switch (identifier)
+      {
+        case "Control":
+        case "Shift":
+        case "Meta":
+        case "Alt":
+          this._modifier[identifier] = true;
+          break;
+
+        case "Unidentified":
+          var msg = "Not a valid key name for a command: " + a[i];
+          this.error(msg);
+          throw msg;
+
+        default:
+          if (this._key) {
+            var msg = "You can only specify one non modifier key!";
+            this.error(msg);
+            throw msg;
+          }
+          this._key = identifier;
+      }
+    }
+  }
+  return true;
+};
+
+
+
+/*
+---------------------------------------------------------------------------
+  INTERNAL MATCHING LOGIC
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Checks wether the given key event matches the command's shortcut
+ *
+ * @param e (qx.event.type.KeyEvent) the key event object
+ * @return (boolean) wether the commands shortcut matches the key event
+ */
+qx.Proto._matchesKeyEvent = function(e)
+{
+  var key = this._key || this.getKeyIdentifier();
+  if (!key && !this.getKeyCode()) {
+    // no shortcut defined.
+    return;
+  }
+
+  // pre-check for check special keys
+  // we handle this here to omit to check this later again.
+  if (
+    (this._modifier.Shift && !e.getShiftKey()) ||
+    (this._modifier.Control && !e.getCtrlKey()) ||
+//    (this._modifier.Meta && !e.getCtrlKey()) ||
+    (this._modifier.Alt && !e.getAltKey())
+  ) {
+    return false;
+  }
+
+  if (key)
+  {
+    if (key == e.getKeyIdentifier()) {
+      return true;
+    }
+  }
+  else
+  {
+    if (this.getKeyCode() == e.getKeyCode()) {
+      return true;
+    }
+  }
+
+  return false;
+};
+
+
+
+/*
+---------------------------------------------------------------------------
+  STRING CONVERTION
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Returns the shortcut as string
+ *
+ * @return (string) shortcut
+ */
+qx.Proto.toString = function()
+{
+  var vShortcut = this.getShortcut();
+  var vKeyCode = this.getKeyCode();
+  var vString = "";
+  var vKeyIdentifier = this._key || this.getKeyIdentifier();
+
+  var vKeyString = "";
+  if (qx.util.Validation.isValidString(vKeyIdentifier))
+  {
+    vKeyString = vKeyIdentifier;
+  }
+  else if (qx.util.Validation.isValidNumber(vKeyCode))
+  {
+    var vTemp = qx.event.type.KeyEvent.codes[vKeyCode];
+    vKeyString = vTemp ? qx.lang.String.toFirstUp(vTemp) : String(vKeyCode);
+  }
+
+  if (qx.util.Validation.isValidString(vShortcut))
+  {
+    vString = vShortcut + "+" + vKeyString;
+  }
+  else if (qx.util.Validation.isValidNumber(vKeyCode))
+  {
+    vString = vKeyString;
+  }
+
+  return vString;
+};
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Destructor
+ */
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._shortcutParts = null;
+
+  var vMgr = qx.event.handler.EventHandler.getInstance();
+  if (vMgr) {
+    vMgr.removeCommand(this);
+  }
+
+  return qx.core.Target.prototype.dispose.call(this);
+};
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/History.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/History.js
new file mode 100644 (file)
index 0000000..e242d7c
--- /dev/null
@@ -0,0 +1,137 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#resource(html:static/history)
+#require(qx.manager.object.AliasManager)
+
+************************************************************************ */
+
+/**
+ * A helper for using the browser history in JavaScript Applications without
+ * reloading the main page.
+ * <p>
+ * Adds entries to the browser history and fires a "request" event when one of
+ * the entries was requested by the user (e.g. by clicking on the back button).
+ * </p>
+ *
+ * @event request {qx.event.type.DataEvent} Fired when the user moved in the
+ *        history. The data property of the event holds the command, which was
+ *        passed to {@link #addToHistory}.
+ */
+qx.OO.defineClass("qx.client.History", qx.core.Target,
+function() {
+  qx.core.Target.call(this);
+
+  this._pageFlag = true;
+});
+
+
+/**
+ * Initializes the History. This method has to called by applications using this
+ * class once during initialization. Subsequent calls have no (negative) effect.
+ */
+qx.Proto.init = function() {
+  if (this._iframe == null) {
+    this._iframe = document.createElement("iframe");
+    this._iframe.style.visibility = "hidden";
+    document.body.appendChild(this._iframe);
+  }
+}
+
+
+/**
+ * Adds an entry to the browser history.
+ *
+ * @param command {string} a string representing the old state of the
+ *        application. This command will be delivered in the data property of
+ *        the "request" event.
+ * @param newTitle {string ? null} the page title to set after the history entry
+ *        is done. This title should represent the new state of the application.
+ */
+qx.Proto.addToHistory = function(command, newTitle) {
+  if (command == this._currentCommand) {
+    document.title = newTitle;
+  } else {
+    if (this._iframe == null) {
+      throw new Error("You have to call init first!");
+    }
+
+    this._pageFlag = !this._pageFlag;
+    this._currentCommand = command;
+    this._newTitle = newTitle;
+
+    // NOTE: We need the command attribute to enforce a loading of the page
+    //       (Otherwise we don't get an onload event).
+    //       The browser will still cache commands loaded once.
+    //       Without the onload-problem anchors would work, too.
+    //       (Anchors would have the advantage that the helper is only loaded once)
+    this._iframe.src = this.getSetting("helperFile") + "?c=" + command;
+  }
+}
+
+
+/**
+ * Event handler. Called when the history helper page was loaded.
+ *
+ * @param location {Map} the location property of the window object of the
+ *        helper page.
+ */
+qx.Proto._onHistoryLoad = function(location)
+{
+  try {
+    var equalsPos = location.search.indexOf("=");
+    var command = location.search.substring(equalsPos + 1);
+
+    if (this._newTitle) {
+      document.title = this._newTitle;
+      this._newTitle = null;
+    }
+
+    if (command != this._currentCommand) {
+      this._currentCommand = command;
+
+      this.createDispatchDataEvent("request", command);
+    }
+  } catch (exc) {
+    this.error("Handling history load failed", exc);
+  }
+
+  qx.ui.core.Widget.flushGlobalQueues();
+}
+
+
+/** The URL to the helper page. */
+qx.Settings.setDefault("helperFile", qx.Settings.getValueOfClass("qx.manager.object.AliasManager", "staticUri") + "/history/historyHelper.html");
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/NativeWindow.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/NativeWindow.js
new file mode 100644 (file)
index 0000000..69e9c2a
--- /dev/null
@@ -0,0 +1,639 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#require(qx.dom.Window)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.client.NativeWindow", qx.core.Target,
+function(vUrl, vName)
+{
+  qx.core.Target.call(this);
+
+
+  // ************************************************************************
+  //   TIMER
+  // ************************************************************************
+
+  this._timer = new qx.client.Timer(100);
+  this._timer.addEventListener("interval", this._oninterval, this);
+
+
+  // ************************************************************************
+  //   INITIAL PROPERTIES
+  // ************************************************************************
+
+  if (qx.util.Validation.isValidString(vUrl)) {
+    this.setUrl(vUrl);
+  }
+
+  if (qx.util.Validation.isValidString(vName)) {
+    this.setName(vName);
+  }
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  If the window is open or closed
+*/
+qx.OO.addProperty({ name : "open", type : "boolean", defaultValue : false });
+
+/*!
+  The outer width of the window.
+*/
+qx.OO.addProperty({ name : "width", type : "number", defaultValue : 400, impl : "dimension" });
+
+/*!
+  The outer height of the window.
+*/
+qx.OO.addProperty({ name : "height", type : "number", defaultValue : 250, impl : "dimension" });
+
+/*!
+  The left screen coordinate of the window.
+*/
+qx.OO.addProperty({ name : "left", type : "number", defaultValue : 100, impl : "position" });
+
+/*!
+  The top screen coordinate of the window.
+*/
+qx.OO.addProperty({ name : "top", type : "number", defaultValue : 200, impl : "position" });
+
+/*!
+  Should be window be modal
+*/
+qx.OO.addProperty({ name : "modal", type : "boolean", defaultValue : false });
+
+/*!
+  Should be window be dependent on this application window
+*/
+qx.OO.addProperty({ name : "dependent", type : "boolean", defaultValue : true });
+
+/*!
+  The url
+*/
+qx.OO.addProperty({ name : "url", type : "string" });
+
+/*!
+  The window name
+*/
+qx.OO.addProperty({ name : "name", type : "string" });
+
+/*!
+  The text of the statusbar
+*/
+qx.OO.addProperty({ name : "status", type : "string", defaultValue : "Ready" });
+
+/*!
+  Should the statusbar be shown
+*/
+qx.OO.addProperty({ name : "showStatusbar", type : "boolean", defaultValue : false });
+
+/*!
+  Should the menubar be shown
+*/
+qx.OO.addProperty({ name : "showMenubar", type : "boolean", defaultValue : false });
+
+/*!
+  Should the location(bar) be shown
+*/
+qx.OO.addProperty({ name : "showLocation", type : "boolean", defaultValue : false });
+
+/*!
+  Should the toolbar be shown
+*/
+qx.OO.addProperty({ name : "showToolbar", type : "boolean", defaultValue : false });
+
+/*!
+  If the window is resizeable
+*/
+qx.OO.addProperty({ name : "resizeable", type : "boolean", defaultValue : true });
+
+/*!
+  If the window is able to scroll and has visible scrollbars if needed
+*/
+qx.OO.addProperty({ name : "allowScrollbars", type : "boolean", defaultValue : true });
+
+
+
+/*
+---------------------------------------------------------------------------
+  STATE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._loaded = false;
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTY GROUPS
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addPropertyGroup({ name : "location", members : [ "left", "top" ]});
+qx.OO.addPropertyGroup({ name : "dimension", members : [ "width", "height" ]});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyPosition = function(propValue, propOldValue, propName)
+{
+  /*
+    http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/sp2brows.mspx
+    Changes to Functionality in Microsoft Windows XP Service Pack 2
+    Part 5: Enhanced Browsing Security
+    URLACTION_FEATURE_WINDOW_RESTRICTIONS
+    Allow script-initiated windows without size or position constraints
+    Code: 2102
+  */
+
+  if (!this.isClosed())
+  {
+    try
+    {
+      this._window.moveTo(this.getLeft(), this.getTop());
+    }
+    catch(ex)
+    {
+      this.error("Cross-Domain Scripting problem: Could not move window!", ex);
+    }
+  }
+
+  return true;
+}
+
+qx.Proto._modifyDimension = function(propValue, propOldValue, propName)
+{
+  /*
+    http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/sp2brows.mspx
+    Changes to Functionality in Microsoft Windows XP Service Pack 2
+    Part 5: Enhanced Browsing Security
+    URLACTION_FEATURE_WINDOW_RESTRICTIONS
+    Allow script-initiated windows without size or position constraints
+    Code: 2102
+  */
+
+  if (!this.isClosed())
+  {
+    try
+    {
+      this._window.resizeTo(this.getWidth(), this.getHeight());
+    }
+    catch(ex)
+    {
+      this.error("Cross-Domain Scripting problem: Could not resize window!", ex);
+    }
+  }
+
+  return true;
+}
+
+qx.Proto._modifyName = function(propValue, propOldValue, propName)
+{
+  if (!this.isClosed()) {
+    this._window.name = propValue;
+  }
+
+  return true;
+}
+
+qx.Proto._modifyUrl = function(propValue, propOldValue, propName)
+{
+  // String hack needed for old compressor (compile.py)
+  if(!this.isClosed()) {
+    this._window.location.replace(qx.util.Validation.isValidString(propValue) ? propValue : ("javascript:/" + "/"));
+  }
+
+  return true;
+}
+
+qx.Proto._modifyOpen = function(propValue, propOldValue, propData)
+{
+  propValue ? this._open() : this._close();
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  NAME
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getName = function()
+{
+  if (!this.isClosed())
+  {
+    try
+    {
+      var vName = this._window.name;
+    }
+    catch(ex)
+    {
+      return this._valueName;
+    }
+
+    if (vName == this._valueName)
+    {
+      return vName;
+    }
+    else
+    {
+      throw new Error("window name and name property are not identical");
+    }
+  }
+  else
+  {
+    return this._valueName;
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITY
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.isClosed = function()
+{
+  var vClosed = true;
+
+  if (this._window)
+  {
+    try {
+      vClosed = this._window.closed;
+    } catch(ex) {}
+  }
+
+  return vClosed;
+}
+
+qx.Proto.open = function() {
+  this.setOpen(true);
+}
+
+qx.Proto.close = function() {
+  this.setOpen(false);
+}
+
+qx.Proto.isLoaded = function() {
+  return this._loaded;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  OPEN METHOD
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._open = function()
+{
+  var vConf = [];
+
+
+  /*
+  ------------------------------------------------------------------------------
+    PRE CONFIGURE WINDOW
+  ------------------------------------------------------------------------------
+  */
+
+  if (qx.util.Validation.isValidNumber(this.getWidth()))
+  {
+    vConf.push("width");
+    vConf.push("=");
+    vConf.push(this.getWidth());
+    vConf.push(",");
+  }
+
+  if (qx.util.Validation.isValidNumber(this.getHeight()))
+  {
+    vConf.push("height");
+    vConf.push("=");
+    vConf.push(this.getHeight());
+    vConf.push(",");
+  }
+
+  if (qx.util.Validation.isValidNumber(this.getLeft()))
+  {
+    vConf.push("left");
+    vConf.push("=");
+    vConf.push(this.getLeft());
+    vConf.push(",");
+  }
+
+  if (qx.util.Validation.isValidNumber(this.getTop()))
+  {
+    vConf.push("top");
+    vConf.push("=");
+    vConf.push(this.getTop());
+    vConf.push(",");
+  }
+
+
+
+  vConf.push("dependent");
+  vConf.push("=");
+  vConf.push(this.getDependent() ? "yes" : "no");
+  vConf.push(",");
+
+  vConf.push("resizable");
+  vConf.push("=");
+  vConf.push(this.getResizeable() ? "yes" : "no");
+  vConf.push(",");
+
+  vConf.push("status");
+  vConf.push("=");
+  vConf.push(this.getShowStatusbar() ? "yes" : "no");
+  vConf.push(",");
+
+  vConf.push("location");
+  vConf.push("=");
+  vConf.push(this.getShowLocation() ? "yes" : "no");
+  vConf.push(",");
+
+  vConf.push("menubar");
+  vConf.push("=");
+  vConf.push(this.getShowMenubar() ? "yes" : "no");
+  vConf.push(",");
+
+  vConf.push("toolbar");
+  vConf.push("=");
+  vConf.push(this.getShowToolbar() ? "yes" : "no");
+  vConf.push(",");
+
+  vConf.push("scrollbars");
+  vConf.push("=");
+  vConf.push(this.getAllowScrollbars() ? "yes" : "no");
+  vConf.push(",");
+
+  vConf.push("modal");
+  vConf.push("=");
+  vConf.push(this.getModal() ? "yes" : "no");
+  vConf.push(",");
+
+
+
+
+
+
+  /*
+  ------------------------------------------------------------------------------
+    OPEN WINDOW
+  ------------------------------------------------------------------------------
+  */
+
+  if (qx.util.Validation.isInvalidString(this.getName())) {
+    this.setName("qx_NativeWindow" + this.toHashCode());
+  }
+
+  this._window = window.open(this.getUrl(), this.getName(), vConf.join(""));
+
+  if (this.isClosed())
+  {
+    this.error("Window could not be opened. It seems, there is a popup blocker active!");
+  }
+  else
+  {
+    // This try-catch is needed because of cross domain issues (access rights)
+    try
+    {
+      this._window._native = this;
+      this._window.onload = this._onload;
+    }
+    catch(ex) {}
+
+    // start timer for close detection
+    this._timer.start();
+
+    // block original document
+    if (this.getModal()) {
+      qx.ui.core.ClientDocument.getInstance().block(this);
+    }
+  }
+}
+
+qx.Proto._close = function()
+{
+  if (!this._window) {
+    return;
+  }
+
+  // stop timer for close detection
+  this._timer.stop();
+
+  // release window again
+  if (this.getModal()){
+    qx.ui.core.ClientDocument.getInstance().release(this);
+  }
+
+  // finally close window
+  if (!this.isClosed()) {
+    this._window.close();
+  }
+
+  try
+  {
+    this._window._native = null;
+    this._window.onload = null;
+  }
+  catch(ex) {};
+
+  this._window = null;
+  this._loaded = false;
+
+  this.createDispatchEvent("close");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CENTER SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.centerToScreen = function() {
+  return this._centerHelper((screen.width - this.getWidth()) / 2, (screen.height - this.getHeight()) / 2);
+}
+
+qx.Proto.centerToScreenArea = function() {
+  return this._centerHelper((screen.availWidth - this.getWidth()) / 2, (screen.availHeight - this.getHeight()) / 2);
+}
+
+qx.Proto.centerToOpener = function() {
+  return this._centerHelper(((qx.dom.Window.getInnerWidth(window) - this.getWidth()) / 2) + qx.dom.Location.getScreenBoxLeft(window.document.body), ((qx.dom.Window.getInnerHeight(window) - this.getHeight()) / 2) + qx.dom.Location.getScreenBoxTop(window.document.body));
+}
+
+qx.Proto._centerHelper = function(l, t)
+{
+  // set new values
+  this.setLeft(l);
+  this.setTop(t);
+
+  // focus window if opened
+  if (!this.isClosed()) {
+    this.focus();
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  FOCUS HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.focus = function()
+{
+  if (!this.isClosed()) {
+    this._window.focus();
+  }
+}
+
+qx.Proto.blur = function()
+{
+  if (!this.isClosed()) {
+    this._window.blur();
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._oninterval = function(e)
+{
+  if (this.isClosed()) {
+    this.setOpen(false);
+  }
+  else if (!this._loaded)
+  {
+    // This try-catch is needed because of cross domain issues (access rights)
+    try
+    {
+      if (this._window.document && this._window.document.readyState == "complete")
+      {
+        this._loaded = true;
+        this.createDispatchEvent("load");
+      }
+    }
+    catch(ex) {};
+  }
+}
+
+qx.Proto._onload = function(e)
+{
+  var obj = this._native;
+
+  if (!obj._loaded)
+  {
+    obj._loaded = true;
+    obj.createDispatchEvent("load");
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if (this.getDependent()) {
+    this.close();
+  }
+
+  if (this._timer)
+  {
+    this._timer.stop();
+    this._timer = null;
+  }
+
+  if (this._window)
+  {
+    try
+    {
+      this._window._native = null;
+      this._window.onload = null;
+    }
+    catch(ex) {};
+
+    this._window = null;
+  }
+
+  return qx.core.Target.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/Timer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/Timer.js
new file mode 100644 (file)
index 0000000..674bbdb
--- /dev/null
@@ -0,0 +1,183 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+/**
+ * Global timer support. Simplifies javascript intervals for objects.
+ *
+ * @event interval {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.client.Timer", qx.core.Target,
+function(vInterval)
+{
+  qx.core.Target.call(this);
+
+  this.setEnabled(false);
+
+  if (qx.util.Validation.isValidNumber(vInterval)) {
+    this.setInterval(vInterval);
+  }
+
+  // Object wrapper to timer event
+  var o = this;
+  this.__oninterval = function() { o._oninterval(); }
+});
+
+qx.OO.addProperty({ name : "interval", type : "number", defaultValue : 1000 });
+
+qx.Proto._intervalHandle = null;
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
+{
+  if (propOldValue)
+  {
+    window.clearInterval(this._intervalHandle);
+    this._intervalHandle = null;
+  }
+  else if (propValue)
+  {
+    this._intervalHandle = window.setInterval(this.__oninterval, this.getInterval());
+  }
+
+  return true;
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  USER-ACCESS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.start = function() {
+  this.setEnabled(true);
+}
+
+qx.Proto.startWith = function(vInterval)
+{
+  this.setInterval(vInterval);
+  this.start();
+}
+
+qx.Proto.stop = function() {
+  this.setEnabled(false);
+}
+
+qx.Proto.restart = function()
+{
+  this.stop();
+  this.start();
+}
+
+qx.Proto.restartWith = function(vInterval)
+{
+  this.stop();
+  this.startWith(vInterval);
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT-MAPPER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._oninterval = function()
+{
+  if (this.getEnabled()) {
+    this.createDispatchEvent("interval");
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if(this.getDisposed()) {
+    return;
+  }
+
+  // Stop interval
+  this.stop();
+
+  // Clear handle
+  if (this._intervalHandler)
+  {
+    window.clearInterval(this._intervalHandle);
+    this._intervalHandler = null;
+  }
+
+  // Clear object wrapper function
+  this.__oninterval = null;
+
+  // Call qx.core.Target to do the other dispose work
+  return qx.core.Target.prototype.dispose.call(this);
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HELPER
+---------------------------------------------------------------------------
+*/
+
+qx.client.Timer.once = function(vFunction, vObject, vTimeout)
+{
+  // Create time instance
+  var vTimer = new qx.client.Timer(vTimeout);
+
+  // Add event listener to interval
+  vTimer.addEventListener("interval", function(e)
+  {
+    vFunction.call(vObject, e);
+    vTimer.dispose();
+
+    vObject = null;
+  }, vObject);
+
+  // Directly start timer
+  vTimer.start();
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/AbstractApplication.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/AbstractApplication.js
new file mode 100644 (file)
index 0000000..50c96e1
--- /dev/null
@@ -0,0 +1,28 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.component.AbstractApplication", qx.component.AbstractComponent,
+function() {
+  qx.component.AbstractComponent.call(this);
+});
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/AbstractComponent.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/AbstractComponent.js
new file mode 100644 (file)
index 0000000..b48eb3a
--- /dev/null
@@ -0,0 +1,66 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.component.AbstractComponent", qx.core.Target,
+function()
+{
+  qx.core.Target.call(this);
+
+});
+
+
+/*!
+  Run initialisation part of component creation.
+*/
+qx.Proto.initialize = function() {};
+
+/*!
+  Run main  part of component creation.
+*/
+qx.Proto.main = function() {};
+
+/*!
+  Run finalization part of component creation.
+*/
+qx.Proto.finalize = function() {};
+
+/*!
+  Terminate this component.
+*/
+qx.Proto.close = function() {};
+
+/*!
+  Terminate this component.
+*/
+qx.Proto.terminate = function() {};
+
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  return qx.core.Target.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/DummyApplication.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/DummyApplication.js
new file mode 100644 (file)
index 0000000..dfdcb3f
--- /dev/null
@@ -0,0 +1,41 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.component.DummyApplication", qx.component.AbstractApplication,
+function() {
+  qx.component.AbstractApplication.call(this);
+});
+
+
+
+/*
+---------------------------------------------------------------------------
+  DIRECT SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/init/AbstractInitComponent.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/init/AbstractInitComponent.js
new file mode 100644 (file)
index 0000000..917315b
--- /dev/null
@@ -0,0 +1,65 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.component.init.AbstractInitComponent", qx.component.AbstractComponent,
+function() {
+  qx.component.AbstractComponent.call(this);
+});
+
+
+
+/*!
+  Run initialisation part of component creation.
+*/
+qx.Proto.initialize = function(e) {
+  return qx.core.Init.getInstance().getApplicationInstance().initialize(e);
+}
+
+/*!
+  Run main  part of component creation.
+*/
+qx.Proto.main = function(e) {
+  return qx.core.Init.getInstance().getApplicationInstance().main(e);
+}
+
+/*!
+  Run finalization part of component creation.
+*/
+qx.Proto.finalize = function(e) {
+  return qx.core.Init.getInstance().getApplicationInstance().finalize(e);
+}
+
+/*!
+  Terminate this component.
+*/
+qx.Proto.close = function(e) {
+  return qx.core.Init.getInstance().getApplicationInstance().close(e);
+}
+
+/*!
+  Terminate this component.
+*/
+qx.Proto.terminate = function(e) {
+  return qx.core.Init.getInstance().getApplicationInstance().terminate(e);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/init/BasicInitComponent.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/init/BasicInitComponent.js
new file mode 100644 (file)
index 0000000..4138ced
--- /dev/null
@@ -0,0 +1,53 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.component.init.BasicInitComponent", qx.component.init.AbstractInitComponent,
+function() {
+  qx.component.init.AbstractInitComponent.call(this);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onload = function(e)
+{
+  this.initialize(e);
+  this.main(e);
+  this.finalize(e);
+}
+
+qx.Proto._onbeforeunload = function(e) {
+  this.close(e);
+}
+
+qx.Proto._onunload = function(e) {
+  this.terminate(e);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/init/InterfaceInitComponent.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/init/InterfaceInitComponent.js
new file mode 100644 (file)
index 0000000..5e7b818
--- /dev/null
@@ -0,0 +1,181 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.component.init.InterfaceInitComponent", qx.component.init.BasicInitComponent,
+function() {
+  qx.component.init.BasicInitComponent.call(this);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  READY STATE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._uiReady = false;
+
+qx.Proto.isUiReady = function() {
+  return this._uiReady;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STATE MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.initialize = function()
+{
+  // Force creation of event handler
+  qx.event.handler.EventHandler.getInstance();
+
+  // Force creation of client document
+  qx.ui.core.ClientDocument.getInstance();
+
+  // Start real initialisation
+  var start = (new Date).valueOf();
+  qx.component.init.BasicInitComponent.prototype.initialize.call(this);
+  this.info("initialize runtime: " + ((new Date).valueOf() - start) + "ms");
+};
+
+qx.Proto.main = function()
+{
+  // Start real main process
+  var start = (new Date).valueOf();
+  qx.component.init.BasicInitComponent.prototype.main.call(this);
+  this.info("main runtime: " + ((new Date).valueOf() - start) + "ms");
+
+  this.debug("preloading visible images...");
+  new qx.io.image.PreloaderSystem(qx.manager.object.ImageManager.getInstance().getPreloadImageList(), this.finalize, this);
+};
+
+
+qx.Proto.finalize = function()
+{
+  var start = (new Date).valueOf();
+
+  this._printPreloadComplete();
+  this._uiReady = true;
+
+  // Show initial widgets
+  qx.ui.core.Widget.flushGlobalQueues();
+
+  // Finally attach event to make the GUI ready for the user
+  qx.event.handler.EventHandler.getInstance().attachEvents();
+
+  qx.component.init.BasicInitComponent.prototype.finalize.call(this);
+
+  this.info("finalize runtime: " + ((new Date).valueOf() - start) + "ms");
+};
+
+qx.Proto.close = function()
+{
+  var start = (new Date).valueOf();
+  qx.component.init.BasicInitComponent.prototype.close.call(this);
+
+  this.info("close runtime: " + ((new Date).valueOf() - start) + "ms");
+};
+
+qx.Proto.terminate = function()
+{
+  var start = (new Date).valueOf();
+  qx.component.init.BasicInitComponent.prototype.terminate.call(this);
+
+  this.info("terminate runtime: " + ((new Date).valueOf() - start) + "ms");
+};
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PRELOAD UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.preload = function()
+{
+  if (!this._preloadDone)
+  {
+    this.debug("preloading hidden images...");
+    new qx.io.image.PreloaderSystem(qx.manager.object.ImageManager.getInstance().getPostPreloadImageList(), this._printPreloadComplete, this);
+    this._preloadDone = true;
+  }
+}
+
+qx.Proto._printPreloadComplete = function() {
+  this.debug("preloading complete");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onload = function(e)
+{
+  this.initialize();
+  this.main();
+
+  // Note: finalize will be called through image preloader
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._preloadDone = null;
+  this._uiReady = null;
+
+  return qx.component.init.BasicInitComponent.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Init.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Init.js
new file mode 100644 (file)
index 0000000..aae3ea1
--- /dev/null
@@ -0,0 +1,327 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+#require(qx.dom.EventRegistration)
+#optional(qx.component.init.InterfaceInitComponent)
+
+************************************************************************ */
+
+/**
+ * Initialize qooxdoo.
+ *
+ * Attaches qooxdoo callbacks to the load events (onload, onunload, onbeforeunload)
+ * and initializes the qooxdoo application. The initializations starts automatically.
+ *
+ * Make shure you set the application to your application before the load event is fired:
+ * <pre>qx.core.Init.getInstance().setApplication(YourApplication)</pre>
+ */
+qx.OO.defineClass("qx.core.Init", qx.core.Target,
+function()
+{
+  qx.core.Target.call(this, false);
+
+  // Object Wrapper to Events (Needed for DOM-Events)
+  var o = this;
+
+  /**
+   * private
+   * @param e {Object}
+   */
+  this.__onload = function(e) { return o._onload(e); }
+  /**
+   * private
+   * @param e {Object}
+   */
+  this.__onbeforeunload = function(e) { return o._onbeforeunload(e); }
+  /**
+   * private
+   * @param e {Object}
+   */
+  this.__onunload = function(e) { return o._onunload(e); }
+
+  // Attach events
+  qx.dom.EventRegistration.addEventListener(window, "load", this.__onload);
+  qx.dom.EventRegistration.addEventListener(window, "beforeunload", this.__onbeforeunload);
+  qx.dom.EventRegistration.addEventListener(window, "unload", this.__onunload);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("component", "qx.component.init.InterfaceInitComponent");
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Instance of the component initializer.
+ */
+qx.OO.addProperty({ name : "component", type : "object", instance : "qx.component.init.BasicInitComponent" });
+
+/**
+ * Reference to the constructor of the main application.
+ *
+ * Set this before the onload event is fired.
+ */
+qx.OO.addProperty({ name : "application", type : "function" });
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyApplication = function(propValue, propOldValue, propData)
+{
+  if (propValue) {
+    this._applicationInstance = new propValue;
+  }
+
+  return true;
+};
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INTERNAL PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Rreturns an instance of the current qooxdoo Application
+ *
+ * @return {qx.component.AbstractApplication} instance of the current qooxdoo application
+ */
+qx.Proto.getApplicationInstance = function()
+{
+  if (!this.getApplication()) {
+    this.setApplication(qx.component.DummyApplication);
+  }
+
+  return this._applicationInstance;
+};
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  COMPONENT BINDING
+---------------------------------------------------------------------------
+*/
+
+/**
+ * define the initialisation function
+ * Don't use this method directly. Use setApplication instead!
+ *
+ * @param vFunc {Function} callback function
+ */
+qx.Proto.defineInitialize = function(vFunc) {
+  this.getApplicationInstance().initialize = vFunc;
+}
+
+/**
+ * define the main function
+ * Don't use this method directly. Use setApplication instead!
+ *
+ * @param vFunc {Function} callback function
+ */
+qx.Proto.defineMain = function(vFunc) {
+  this.getApplicationInstance().main = vFunc;
+}
+
+/**
+ * define the finalize function
+ * Don't use this method directly. Use setApplication instead!
+ *
+ * @param vFunc {Function} callback function
+ */
+qx.Proto.defineFinalize = function(vFunc) {
+  this.getApplicationInstance().finalize = vFunc;
+}
+
+/**
+ * define the close function
+ * Don't use this method directly. Use setApplication instead!
+ *
+ * @param vFunc {Function} callback function
+ */
+qx.Proto.defineClose = function(vFunc) {
+  this.getApplicationInstance().close = vFunc;
+}
+
+/**
+ * define the terminate function
+ * Don't use this method directly. Use setApplication instead!
+ *
+ * @param vFunc {Function} callback function
+ */
+qx.Proto.defineTerminate = function(vFunc) {
+  this.getApplicationInstance().terminate = vFunc;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+/**
+ * load event handler
+ *
+ * @param e {Object}
+ */
+qx.Proto._onload = function(e)
+{
+  this.debug("qooxdoo " + qx.core.Version.toString());
+
+  // Print out class information
+  this.debug("loaded " + qx.lang.Object.getLength(qx.OO.classes) + " classes");
+
+  // Print browser information
+  var cl = qx.sys.Client.getInstance();
+  this.debug("client: " + cl.getEngine() + "-" + cl.getMajor() + "."
+    + cl.getMinor() + "/" + cl.getPlatform() + "/" + cl.getLocale());
+
+  if (cl.isMshtml() && !cl.isInQuirksMode()) {
+    this.warn("Wrong box sizing: Please modify the document's DOCTYPE!");
+  }
+
+  // Init component from settings
+  this.setComponent(new qx.OO.classes[this.getSetting("component")](this));
+
+  // Send onload
+  return this.getComponent()._onload(e);
+}
+
+
+/**
+ * beforeunload event handler
+ *
+ * @param e {Object}
+ */
+qx.Proto._onbeforeunload = function(e)
+{
+  // Send onbeforeunload event (can be cancelled)
+  return this.getComponent()._onbeforeunload(e);
+}
+
+
+/**
+ * unload event handler
+ *
+ * @param e {Object}
+ */
+qx.Proto._onunload = function(e)
+{
+  // Send onunload event (last event)
+  this.getComponent()._onunload(e);
+
+  // Dispose all qooxdoo objects
+  qx.core.Object.dispose();
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Destructor
+ */
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  // Detach Events
+  qx.dom.EventRegistration.removeEventListener(window, "load", this.__onload);
+  qx.dom.EventRegistration.removeEventListener(window, "beforeunload", this.__onbeforeunload);
+  qx.dom.EventRegistration.removeEventListener(window, "unload", this.__onunload);
+
+  // Reset inline functions
+  this.__onload = this.__onbeforeunload = this.__onunload = null;
+
+  if (this._applicationInstance) {
+    this._applicationInstance.dispose();
+    this._applicationInstance = null;
+  }
+
+  qx.core.Target.prototype.dispose.call(this);
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DIRECT SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
+
+// Force direct creation
+qx.Class.getInstance();
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Object.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Object.js
new file mode 100644 (file)
index 0000000..26453f8
--- /dev/null
@@ -0,0 +1,525 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+#load(qx.core.Init)
+
+************************************************************************ */
+
+/**
+ * The qooxdoo base object. All qooxdoo classes extend this one
+ *
+ * This class contains functions for:
+ * <ul>
+ *   <li> logging </li>
+ *   <li> common getter/setter </li>
+ *   <li> user data </li>
+ *   <li> object destruction </li>
+ * </ul>
+ *
+ * @param vAutoDispose {boolean ? true} wether the object should be disposed automatically by qooxdoo
+ */
+qx.OO.defineClass("qx.core.Object", Object,
+function(vAutoDispose)
+{
+  this._hashCode = qx.core.Object._counter++;
+
+  if (vAutoDispose !== false) {
+    qx.core.Object._db.push(this);
+  }
+});
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("enableDisposerDebug", false);
+
+
+
+
+
+/* ************************************************************************
+   Class data, properties and methods
+************************************************************************ */
+
+qx.Class._counter = 0;
+qx.Class._db = [];
+
+/**
+ * Generate an unique key for the given object and return it.
+ * Sets object._hashCode to the generated key.
+ *
+ * @param o {Object}
+ * @return {int} unique key for the given object
+ */
+qx.Class.toHashCode = function(o)
+{
+  if(o._hashCode != null) {
+    return o._hashCode;
+  }
+
+  return o._hashCode = qx.core.Object._counter++;
+}
+
+
+/**
+ * Class function which returns an object given its hash code
+ *
+ * @param hash {string} hash code of an object
+ *
+ * @returns {Object} the object whose hash is specified
+ */
+qx.Class.fromHashCode = function(hash) {
+  return qx.core.Object._db[hash];
+}
+
+
+/**
+ * Destructor. This method is called by qooxdoo on object destruction.
+ *
+ * Any class that holds ressources like links to DOM nodes must overwrite
+ * this method and free theese ressources.
+ */
+qx.Class.dispose = function()
+{
+  // var logger = qx.dev.log.Logger.getClassLogger(qx.core.Object);
+  // logger.debug("Disposing Application");
+
+  // var vStart = (new Date).valueOf();
+  var vObject;
+
+  for (var i=qx.core.Object._db.length-1; i>=0; i--)
+  {
+    vObject = qx.core.Object._db[i];
+
+    if (vObject && vObject._disposed === false)
+    {
+      // logger.debug("Disposing: " + vObject);
+      vObject.dispose();
+    }
+  }
+
+  // logger.debug("Done in: " + ((new Date).valueOf() - vStart) + "ms");
+}
+
+
+/**
+ * Summary of allocated objects
+ *
+ * @return {string} summary of allocated objects.
+ */
+qx.Class.summary = function()
+{
+  var vData = {};
+  var vCounter = 0;
+
+  for (var i=qx.core.Object._db.length-1; i>=0; i--)
+  {
+    vObject = qx.core.Object._db[i];
+
+    if (vObject && vObject._disposed === false)
+    {
+      if (vData[vObject.classname] == null)
+      {
+        vData[vObject.classname] = 1;
+      }
+      else
+      {
+        vData[vObject.classname]++;
+      }
+
+      vCounter++;
+    }
+  }
+
+  var vArrData = [];
+
+  for (var vClassName in vData) {
+    vArrData.push({ classname : vClassName, number : vData[vClassName] });
+  }
+
+  vArrData.sort(function(a, b) {
+    return b.number - a.number;
+  });
+
+  var vMsg = "Summary: (" + vCounter + " Objects)\n\n";
+
+  for (var i=0; i<vArrData.length; i++) {
+    vMsg += vArrData[i].number + ": " + vArrData[i].classname + "\n";
+  }
+
+  alert(vMsg);
+}
+
+/**
+ * Enable or disable the Object.
+ *
+ * The actual semantic of this property depends on concrete subclass of qx.core.Object.
+ */
+qx.OO.addProperty({ name : "enabled", type : "boolean", defaultValue : true, getAlias : "isEnabled" });
+
+
+
+
+
+
+/* ************************************************************************
+   Instance data, properties and methods
+************************************************************************ */
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Returns a string represantation of the qooxdoo object.
+ *
+ * @returns {string} string representation of the object
+ */
+qx.Proto.toString = function()
+{
+  if(this.classname) {
+    return "[object " + this.classname + "]";
+  }
+
+  return "[object Object]";
+}
+
+
+/**
+ * Return unique hash code of object
+ *
+ * @return {int} unique hash code of the object
+ */
+qx.Proto.toHashCode = function() {
+  return this._hashCode;
+}
+
+
+/**
+ * Returns true if the object is disposed.
+ *
+ * @return {boolean} wether the object has been disposed
+ */
+qx.Proto.getDisposed = function() {
+  return this._disposed;
+}
+
+
+/**
+ * Returns true if the object is disposed.
+ *
+ * @return {boolean} wether the object has been disposed
+ */
+qx.Proto.isDisposed = function() {
+  return this._disposed;
+}
+
+
+/**
+ * Returns a settings from global setting definition
+ *
+ * @param vKey {string}
+ * @return {Object} value of the global setting
+ */
+qx.Proto.getSetting = function(vKey) {
+  return qx.Settings.getValueOfClass(this.classname, vKey);
+}
+
+
+/*
+---------------------------------------------------------------------------
+  LOGGING INTERFACE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Returns the logger of this class.
+ *
+ * @return {qx.dev.log.Logger} the logger of this class.
+ */
+qx.Proto.getLogger = function() {
+  return qx.dev.log.Logger.getClassLogger(this.constructor);
+}
+
+
+/**
+ * Logs a debug message.
+ *
+ * @param msg {var} the message to log. If this is not a string, the
+ *        object dump will be logged.
+ * @param exc {var ? null} the exception to log.
+ */
+qx.Proto.debug = function(msg, exc) {
+  this.getLogger().debug(msg, this._hashCode, exc);
+}
+
+
+/**
+ * Logs an info message.
+ *
+ * @param msg {var} the message to log. If this is not a string, the
+ *    object dump will be logged.
+ * @param exc {var ? null} the exception to log.
+ */
+qx.Proto.info = function(msg, exc) {
+  this.getLogger().info(msg, this._hashCode, exc);
+}
+
+
+/**
+ * Logs a warning message.
+ *
+ * @param msg {var} the message to log. If this is not a string, the
+ *    object dump will be logged.
+ * @param exc {var ? null} the exception to log.
+ */
+qx.Proto.warn = function(msg, exc) {
+  this.getLogger().warn(msg, this._hashCode, exc);
+}
+
+
+/**
+ * Logs an error message.
+ *
+ * @param msg {var} the message to log. If this is not a string, the
+ *    object dump will be logged.
+ * @param exc {var ? null} the exception to log.
+ */
+qx.Proto.error = function(msg, exc) {
+  this.getLogger().error(msg, this._hashCode, exc);
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  COMMON SETTER/GETTER SUPPORT
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Sets multiple properties at once by using a property list
+ *
+ * @param propertyValues {Object} A hash of key-value pairs.
+ */
+qx.Proto.set = function(propertyValues)
+{
+  if (typeof propertyValues !== "object") {
+    throw new Error("Please use a valid hash of property key-values pairs.");
+  }
+
+  for (var prop in propertyValues)
+  {
+    try
+    {
+      this[qx.OO.setter[prop]](propertyValues[prop]);
+    }
+    catch(ex)
+    {
+      this.error("Setter of property " + prop + " returned with an error", ex);
+    }
+  }
+
+  return this;
+}
+
+/**
+ * Gets multiple properties at once by using a property list
+ *
+ * @param propertyNames {string | array | hash} list of the properties to get
+ * @param outputHint {string ? "array"} how should the values be returned. Possible values are "hash" and "array".
+*/
+qx.Proto.get = function(propertyNames, outputHint)
+{
+  switch(typeof propertyNames)
+  {
+    case "string":
+      return this["get" + qx.lang.String.toFirstUp(propertyNames)]();
+
+    case "object":
+      if (typeof propertyNames.length === "number")
+      {
+        if (outputHint == "hash")
+        {
+          var h = {};
+
+          propertyLength = propertyNames.length;
+          for (var i=0; i<propertyLength; i++)
+          {
+            try{
+              h[propertyNames[i]] = this["get" + qx.lang.String.toFirstUp(propertyNames[i])]();
+            }
+            catch(ex)
+            {
+              throw new Error("Could not get a valid value from property: " + propertyNames[i] + "! Is the property existing? (" + ex + ")");
+            }
+          }
+
+          return h;
+        }
+        else
+        {
+          propertyLength = propertyNames.length;
+          for (var i=0; i<propertyLength; i++)
+          {
+            try{
+              propertyNames[i] = this["get" + qx.lang.String.toFirstUp(propertyNames[i])]();
+            }
+            catch(ex)
+            {
+              throw new Error("Could not get a valid value from property: " + propertyNames[i] + "! Is the property existing? (" + ex + ")");
+            }
+          }
+
+          return propertyNames;
+        }
+      }
+      else
+      {
+        for (var i in propertyNames) {
+          propertyNames[i] = this["get" + qx.lang.String.toFirstUp(i)]();
+        }
+
+        return propertyNames;
+      }
+
+    default:
+      throw new Error("Please use a valid array, hash or string as parameter!");
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  USER DATA
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Store user defined data inside the object.
+ *
+ * @param vKey {string}
+ * @param vValue {Object}
+ */
+qx.Proto.setUserData = function(vKey, vValue)
+{
+  if (!this._userData) {
+    this._userData = {};
+  }
+
+  this._userData[vKey] = vValue;
+}
+
+
+/**
+ * Load user defined data from the object
+ *
+ * @param vKey {string}
+ * @return {Object} the user data
+ */
+qx.Proto.getUserData = function(vKey)
+{
+  if (!this._userData) {
+    return null;
+  }
+
+  return this._userData[vKey];
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._disposed = false;
+
+/**
+ * Dispose this object
+ */
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  // Dispose user data
+  if (this._userData)
+  {
+    for(var vKey in this._userData) {
+      this._userData[vKey] = null;
+    }
+
+    this._userData = null;
+  }
+
+  // Finally cleanup properties
+  if (this._objectproperties)
+  {
+    var a = this._objectproperties.split(",");
+    var d = qx.OO.values;
+
+    for (var i=0, l=a.length; i<l; i++) {
+      this[d[a[i]]] = null;
+    }
+
+    this._objectproperties = null;
+  }
+
+  if (this.getSetting("enableDisposerDebug"))
+  {
+    for (var vKey in this)
+    {
+      if (this[vKey] !== null && typeof this[vKey] === "object")
+      {
+        this.debug("Missing class implementation to dispose: " + vKey);
+        delete this[vKey];
+      }
+    }
+  }
+
+  /*
+  if (typeof CollectGarbage === "function") {
+    CollectGarbage();
+  }
+  */
+
+  // Delete Entry from Object DB
+  qx.core.Object._db[this._hashCode] = null;
+
+  // Mark as disposed
+  this._disposed = true;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Target.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Target.js
new file mode 100644 (file)
index 0000000..891ac44
--- /dev/null
@@ -0,0 +1,299 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+/**
+ * This is the main constructor for all objects that need to be connected to qx.event.type.Event objects.
+ *
+ * In objects created with this constructor, you find functions to addEventListener or
+ * removeEventListener to or from the created object. Each event to connect to has a type in
+ * form of an identification string. This type could be the name of a regular dom event like "click" or
+ * something self-defined like "ready".
+ *
+ * @param vAutoDispose {boolean ? true} wether the object should be disposed automatically by qooxdoo
+ */
+qx.OO.defineClass("qx.core.Target", qx.core.Object,
+function(vAutoDispose) {
+  qx.core.Object.call(this, vAutoDispose);
+});
+
+/**
+ * @private
+ */
+qx.Class.EVENTPREFIX = "evt";
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT CONNECTION
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Add event listener to an object.
+ *
+ * @param vType {string} name of the event type
+ * @param vFunction {Function} event callback function
+ * @param vObject {object ? window} reference to the 'this' variable inside the callback
+ */
+qx.Proto.addEventListener = function(vType, vFunction, vObject)
+{
+  if(this._disposed) {
+    return;
+  }
+
+  if(typeof vFunction !== "function") {
+    throw new Error("qx.core.Target: addEventListener(" + vType + "): '" + vFunction + "' is not a function!");
+  }
+
+  // If this is the first event of given type, we need to create a subobject
+  // that contains all the actions that will be assigned to this type
+  if (typeof this._listeners === "undefined")
+  {
+    this._listeners = {};
+    this._listeners[vType] = {};
+  }
+  else if(typeof this._listeners[vType] === "undefined")
+  {
+    this._listeners[vType] = {};
+  }
+
+  // Create a special vKey string to allow identification of each bound action
+  var vKey = qx.core.Target.EVENTPREFIX + qx.core.Object.toHashCode(vFunction) + (vObject ? "_" + qx.core.Object.toHashCode(vObject) : "");
+
+  // Finally set up the listeners object
+  this._listeners[vType][vKey] =
+  {
+    handler : vFunction,
+    object : vObject
+  }
+}
+
+
+/**
+ * Remove event listener from object
+ *
+ * @param vType {string} name of the event type
+ * @param vFunction {Function} event callback function
+ * @param vObject {object ? window} reference to the 'this' variable inside the callback
+ */
+qx.Proto.removeEventListener = function(vType, vFunction, vObject)
+{
+  if(this._disposed) {
+    return;
+  }
+
+  var vListeners = this._listeners;
+  if (!vListeners || typeof vListeners[vType] === "undefined") {
+    return;
+  }
+
+  if(typeof vFunction !== "function") {
+    throw new Error("qx.core.Target: removeEventListener(" + vType + "): '" + vFunction + "' is not a function!");
+  }
+
+  // Create a special vKey string to allow identification of each bound action
+  var vKey = qx.core.Target.EVENTPREFIX + qx.core.Object.toHashCode(vFunction) + (vObject ? "_" + qx.core.Object.toHashCode(vObject) : "");
+
+  // Delete object entry for this action
+  delete this._listeners[vType][vKey];
+}
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT CONNECTION UTILITIES
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Check if there are one or more listeners for an event type.
+ *
+ * @param vType {string} name of the event type
+ */
+qx.Proto.hasEventListeners = function(vType) {
+  return this._listeners && typeof this._listeners[vType] !== "undefined" && !qx.lang.Object.isEmpty(this._listeners[vType]);
+}
+
+
+/**
+ * Checks if the event is registered. If so it creates an event object and dispatches it.
+ *
+ * @param vType {string} name of the event type
+ */
+qx.Proto.createDispatchEvent = function(vType)
+{
+  if (this.hasEventListeners(vType)) {
+    this.dispatchEvent(new qx.event.type.Event(vType), true);
+  }
+}
+
+
+/**
+ * Checks if the event is registered. If so it creates an event object and dispatches it.
+ *
+ * @param vType {string} name of the event type
+ * @param vData {Object} user defined data attached to the event object
+ */
+qx.Proto.createDispatchDataEvent = function(vType, vData)
+{
+  if (this.hasEventListeners(vType)) {
+    this.dispatchEvent(new qx.event.type.DataEvent(vType, vData), true);
+  }
+}
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT DISPATCH
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Dispatch an event
+ *
+ * @param vEvent {qx.event.type.Event} event to dispatch
+ * @param vEnableDispose {boolean} wether the event object should be disposed after all event handlers run.
+ * @return {boolean} wether the event default was prevented or not. Returns true, when the event was NOT prevented.
+ */
+qx.Proto.dispatchEvent = function(vEvent, vEnableDispose)
+{
+  // Ignore event if eventTarget is disposed
+  if(this.getDisposed() && this.getEnabled()) {
+    return;
+  }
+
+  if (vEvent.getTarget() == null) {
+    vEvent.setTarget(this);
+  }
+
+  if (vEvent.getCurrentTarget() == null) {
+    vEvent.setCurrentTarget(this);
+  }
+
+  // Dispatch Event
+  this._dispatchEvent(vEvent, vEnableDispose);
+
+  // Read default prevented
+  var defaultPrevented = vEvent._defaultPrevented;
+
+  // enable dispose for event?
+  vEnableDispose && vEvent.dispose();
+
+  return !defaultPrevented;
+}
+
+
+/**
+ * Internal event dispatch method
+ *
+ * @param vEvent {qx.event.type.Event} event to dispatch
+ */
+qx.Proto._dispatchEvent = function(vEvent)
+{
+  var vListeners = this._listeners;
+  if (vListeners)
+  {
+    // Setup current target
+    vEvent.setCurrentTarget(this);
+
+    // Shortcut for listener data
+    var vTypeListeners = vListeners[vEvent.getType()];
+
+    if(vTypeListeners)
+    {
+      var vFunction, vObject;
+
+      // Handle all events for the specified type
+      for (var vHashCode in vTypeListeners)
+      {
+        // Shortcuts for handler and object
+        vFunction = vTypeListeners[vHashCode].handler;
+        vObject = vTypeListeners[vHashCode].object;
+
+        // Call object function
+        try
+        {
+          if(typeof vFunction === "function") {
+            vFunction.call(qx.util.Validation.isValid(vObject) ? vObject : this, vEvent);
+          }
+        }
+        catch(ex)
+        {
+          this.error("Could not dispatch event of type \"" + vEvent.getType() + "\"", ex);
+        }
+      }
+    }
+  }
+
+  // Bubble event to parents
+  // TODO: Move this to Parent or Widget?
+  if(vEvent.getBubbles() && !vEvent.getPropagationStopped() && this.getParent)
+  {
+    var vParent = this.getParent();
+    if (vParent && !vParent.getDisposed() && vParent.getEnabled()) {
+      vParent._dispatchEvent(vEvent);
+    }
+  }
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Destructor.
+ */
+qx.Proto.dispose = function()
+{
+  if(this.getDisposed()) {
+    return;
+  }
+
+  if (typeof this._listeners === "object")
+  {
+    for (var vType in this._listeners)
+    {
+      var listener = this._listeners[vType];
+      for (var vKey in listener)
+      {
+        listener[vKey] = null;
+      }
+
+      this._listeners[vType] = null;
+    }
+  }
+
+  this._listeners = null;
+
+  return qx.core.Object.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Version.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Version.js
new file mode 100755 (executable)
index 0000000..c5b094e
--- /dev/null
@@ -0,0 +1,67 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+#random(386)
+
+************************************************************************ */
+
+/**
+ * qooxdoo version number information
+ */
+qx.OO.defineClass("qx.core.Version",
+{
+  /**
+   * qooxdoo major version number
+   */
+  major : 0,
+
+  /**
+   * qooxdoo minor version number
+   */
+  minor : 6,
+
+  /**
+   * qooxdoo revision number
+   */
+  revision : 3,
+
+  /**
+   * qooxdoo revision state
+   */
+  state : "",
+
+  /**
+   * qooxdoo subversion revision number
+   */
+  svn : Number("$Rev: 5000 $".match(/[0-9]+/)[0]),
+
+  /**
+   * returns the qooxdoo version string
+   *
+   * @return {string} qooxdoo version string
+   */
+  toString: function()
+  {
+    with(qx.core.Version) {
+      return major + "." + minor + (revision==0 ? "" : "." + revision) + (state == "" ? "" : "-" + state) + " (r" + svn + ")";
+    }
+  }
+});
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/Pollution.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/Pollution.js
new file mode 100644 (file)
index 0000000..9377a76
--- /dev/null
@@ -0,0 +1,249 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(dev)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.dev.Pollution");
+
+qx.Class.names =
+{
+  "window" : window,
+  "document" : document,
+  "body" : document.body
+}
+
+qx.Class.ignore =
+{
+  "window" :
+  [
+    // Firefox
+    "__firebug__",
+    "Components",
+    "controllers",
+
+    // Firefox extension: Firebug
+    "console",
+
+    // IE
+    "event",
+    "offscreenBuffering",
+    "clipboardData",
+    "clientInformation",
+    "Option",
+    "Image",
+    "external",
+    "screenTop",
+    "screenLeft",
+
+    // Standard
+    "length",
+    "window",
+    "document",
+    "location",
+    "navigator",
+    "netscape",
+    "parent",
+    "frames",
+    "top",
+    "scrollbars",
+    "name",
+    "scrollX",
+    "scrollY",
+    "self",
+    "screen",
+    "history",
+    "content",
+    "menubar",
+    "toolbar",
+    "locationbar",
+    "personalbar",
+    "statusbar",
+    "directories",
+    "closed",
+    "crypto",
+    "pkcs11",
+    "opener",
+    "status",
+    "defaultStatus",
+    "innerWidth",
+    "innerHeight",
+    "outerWidth",
+    "outerHeight",
+    "screenX",
+    "screenY",
+    "pageXOffset",
+    "pageYOffset",
+    "scrollMaxX",
+    "scrollMaxY",
+    "fullScreen",
+    "frameElement"
+  ],
+
+  "document" :
+  [
+    "domConfig",
+    "location",
+    "compatMode",
+    "implementation",
+    "defaultView",
+    "title",
+    "body",
+    "styleSheets",
+    "documentElement",
+    "nodeName",
+    "nodeType",
+    "firstChild",
+    "lastChild",
+    "doctype",
+    "images",
+    "applets",
+    "links",
+    "forms",
+    "anchors",
+    "cookie",
+    "embeds",
+    "plugins",
+    "designMode",
+    "childNodes"
+  ],
+
+  "body" :
+  [
+    "textContent",
+    "innerHTML",
+    "outerHTML",
+    "innerText",
+    "outerText",
+    "scopeName",
+    "parentElement",
+    "tagName",
+    "filters",
+    "contentEditable",
+    "document",
+    "currentStyle",
+    "isMultiLine",
+    "clientHeight",
+    "clientWidth",
+
+    "lastChild",
+    "firstChild",
+    "offsetTop",
+    "offsetLeft",
+    "offsetWidth",
+    "offsetHeight",
+    "tabIndex",
+    "className",
+    "attributes",
+    "previousSibling",
+    "nextSibling",
+    "ownerDocument",
+    "localName",
+    "childNodes",
+    "parentNode",
+    "nodeType",
+    "nodeName",
+    "style",
+
+    "scrollTop",
+    "scrollLeft",
+    "scrollWidth",
+    "scrollHeight"
+  ]
+}
+
+qx.Class.consoleInfo = function(object)
+{
+  alert("Global namespace is polluted by:\n\n" + qx.dev.Pollution.getTextList(object));
+}
+
+qx.Class.extract = function(object)
+{
+  var ext = [];
+  var ign = qx.dev.Pollution.ignore[object];
+  var obj = qx.dev.Pollution.names[object];
+
+  for (var key in obj)
+  {
+    try
+    {
+      // Ignore null or undefined values
+      if (typeof obj[key] == "undefined" || obj[key] === null) {
+        continue;
+      }
+
+      // Ignore native code
+      if (typeof obj[key] == "function" && obj[key].toString().indexOf("[native code]") != -1) {
+        continue;
+      }
+
+      // Ignore if configured
+      if (qx.lang.Array.contains(ign, key)) {
+        continue;
+      }
+    }
+    catch(ex)
+    {
+      continue;
+    }
+
+    ext.push({ "key" : key, "value" : obj[key] });
+  }
+
+  return ext;
+}
+
+qx.Class.getHtmlTable = function(object)
+{
+  var all = [];
+
+  var rowStart = "<tr style='vertical-align:top'><td>";
+  var cellSplit = "</td><td>";
+  var rowEnd = "</td></tr>";
+
+  all.push("<table>");
+
+  var ext = this.extract(object);
+
+  for (var i=0; i<ext.length; i++) {
+    all.push(rowStart + ext[i].key + cellSplit + ext[i].value + rowEnd);
+  }
+
+  all.push("</table>");
+
+  return all.join("");
+}
+
+qx.Class.getTextList = function(object)
+{
+  var all = [];
+
+  var cellSplit = ": ";
+  var rowEnd = "\n";
+
+  var ext = this.extract(object);
+
+  for (var i=0; i<ext.length; i++) {
+    all.push(ext[i].key + cellSplit + ext[i].value + rowEnd);
+  }
+
+  return all.join("");
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/TimeTracker.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/TimeTracker.js
new file mode 100755 (executable)
index 0000000..a185026
--- /dev/null
@@ -0,0 +1,320 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(dev)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.dev.TimeTracker", qx.core.Object,
+function()
+{
+  qx.core.Object.call(this);
+
+  this._functions = qx.lang.Array.fromArguments(arguments);
+
+  this.buttonSets();
+});
+
+qx.dev.TimeTracker.compare = function(a, b) {
+  return a-b;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.buttonSets = function()
+{
+  var btnLayout = new qx.ui.layout.HorizontalBoxLayout;
+
+  btnLayout.setLocation(20, 48);
+  btnLayout.setSpacing(5);
+
+  var loopLabel = new qx.ui.basic.Atom("Method Loops: ");
+  loopLabel.setAllowStretchY(false);
+  loopLabel.setVerticalAlign("middle");
+
+  var loopInput = new qx.ui.form.TextField("100");
+  loopInput.setAllowStretchY(false);
+  loopInput.setWidth(50);
+  loopInput.setVerticalAlign("middle");
+
+  var repeatLabel = new qx.ui.basic.Atom("Repeat Number: ");
+  repeatLabel.setAllowStretchY(false);
+  repeatLabel.setVerticalAlign("middle");
+  repeatLabel.setMarginLeft(30);
+
+  var btnStart1 = new qx.ui.form.Button("Start 3x", "icon/16/button-ok.png");
+  var btnStart2 = new qx.ui.form.Button("Start 7x", "icon/16/button-ok.png");
+  var btnStart3 = new qx.ui.form.Button("Start 15x", "icon/16/button-ok.png");
+  var btnStart4 = new qx.ui.form.Button("Start 25x", "icon/16/button-ok.png");
+
+  btnStart1.addEventListener("execute", function() { this.start(3, parseInt(loopInput.getValue())); }, this);
+  btnStart2.addEventListener("execute", function() { this.start(7, parseInt(loopInput.getValue())); }, this);
+  btnStart3.addEventListener("execute", function() { this.start(15, parseInt(loopInput.getValue())); }, this);
+  btnStart4.addEventListener("execute", function() { this.start(25, parseInt(loopInput.getValue())); }, this);
+
+  var htmlOutput = this._output = new qx.ui.embed.HtmlEmbed();
+
+  htmlOutput.setHtml("");
+  htmlOutput.setLocation(20, 78);
+  htmlOutput.setRight(335);
+  htmlOutput.setBottom(48);
+  htmlOutput.setBorder("1px solid black");
+  htmlOutput.setBackgroundColor("white");
+  htmlOutput.setPadding(10);
+  htmlOutput.setOverflow("auto");
+  htmlOutput.addToDocument();
+
+  btnLayout.add(loopLabel, loopInput, repeatLabel, btnStart1, btnStart2, btnStart3, btnStart4);
+  btnLayout.addToDocument();
+}
+
+qx.Proto.start = function(vRounds, vLoops)
+{
+  var vFuncs = this._functions;
+  var vLength = vFuncs.length;
+  var vStart;
+  var vLocalTimes;
+  var vAllTimes = [];
+  var vHtmlMeasured = [];
+  var vHtmlResults = [];
+  var vCellWidth = Math.round(100 / (vLength+1)) + "%";
+
+  vHtmlMeasured.push("<h3>Measured Values</h3>");
+
+  vHtmlMeasured.push("<style type='text/css'>.output{border: 1px solid black; width:100%; margin-bottom: 20px } .output thead{ font-weight: bold; } .output td, .output th{ text-align:left; width: " + vCellWidth + "; } .output td{padding:4px}</style>");
+
+  vHtmlMeasured.push("<table class='output'>");
+
+  vHtmlMeasured.push("<thead>");
+
+  vHtmlMeasured.push("<tr><td>&#160;</td>");
+
+  for (var j=0; j<vLength; j++) {
+    vHtmlMeasured.push("<td>Method " + (j+1) + "</td>");
+  }
+
+  vHtmlMeasured.push("</thead><tbody>");
+
+  for (var i=0; i<vRounds; i++)
+  {
+    vLocalTimes = [];
+
+    for (var j=0; j<vLength; j++)
+    {
+      vStart = (new Date).valueOf();
+
+      vFuncs[j](vLoops);
+
+      vLocalTimes.push((new Date).valueOf()-vStart);
+    }
+
+    vHtmlMeasured.push("<tr><th>Round " + i + "</th>");
+
+    for (var j=0; j<vLocalTimes.length; j++) {
+      vHtmlMeasured.push("<td>" + vLocalTimes[j] + "</td>");
+    }
+
+    vHtmlMeasured.push("</tr>");
+    vAllTimes.push(vLocalTimes);
+  }
+
+  vHtmlMeasured.push("</tbody></table>");
+
+
+
+
+
+  var vSum, vMeanValue, vMeanAll=[], vMeanMin=1e7, vMeanMax=0;
+
+  for (var j=0; j<vLength; j++)
+  {
+    vSum = 0;
+
+    for (var i=0; i<vRounds; i++)
+    {
+      vSum += vAllTimes[i][j];
+    }
+
+    vMeanValue = Math.round(vSum / vRounds);
+
+    vMeanAll.push(vMeanValue);
+
+    vMeanMin = Math.min(vMeanMin, vMeanValue);
+    vMeanMax = Math.max(vMeanMax, vMeanValue);
+  }
+
+
+
+  var vMedian, vMedianValue, vMedianAll=[], vMedianMin=1e7, vMedianMax=0;
+
+  for (var j=0; j<vLength; j++)
+  {
+    vMedian = [];
+
+    for (var i=0; i<vRounds; i++)
+    {
+      vMedian.push(vAllTimes[i][j]);
+    }
+
+    vMedian.sort(qx.dev.TimeTracker.compare);
+    vMedianValue = vMedian[Math.floor(vRounds / 2)].toString();
+
+    vMedianAll.push(vMedianValue);
+
+    vMedianMin = Math.min(vMedianValue, vMedianMin);
+    vMedianMax = Math.max(vMedianValue, vMedianMax);
+  }
+
+
+
+
+
+  vHtmlResults.push("<h3>Results Summary</h3>");
+
+  vHtmlResults.push("<table class='output'>");
+
+  vHtmlResults.push("<thead>");
+
+  vHtmlResults.push("<tr><td>&#160;</td>");
+
+  for (var j=0; j<vLength; j++) {
+    vHtmlResults.push("<td>Method " + (j+1) + "</td>");
+  }
+
+  vHtmlResults.push("</thead><tbody>");
+
+
+  vHtmlResults.push("<tr>");
+
+  vHtmlResults.push("<th>Median</th>");
+
+  for (var j=0; j<vLength; j++) {
+    vHtmlResults.push("<td>" + vMedianAll[j] + "</td>");
+  }
+
+  vHtmlResults.push("</tr>");
+
+
+
+  vHtmlResults.push("<tr>");
+
+  vHtmlResults.push("<th>Median Factor</th>");
+
+  for (var j=0; j<vLength; j++)
+  {
+    vHtmlResults.push("<td>");
+    vHtmlResults.push(vMedianMin > 0 ? Math.round(vMedianAll[j] / vMedianMin) : "1");
+    vHtmlResults.push("x</td>");
+  }
+
+  vHtmlResults.push("</tr>");
+
+
+
+  vHtmlResults.push("<tr>");
+
+  vHtmlResults.push("<th>Mean</th>");
+
+  for (var j=0; j<vLength; j++) {
+    vHtmlResults.push("<td>" + vMeanAll[j] + "</td>");
+  }
+
+  vHtmlResults.push("</tr>");
+
+
+
+  vHtmlResults.push("<tr>");
+
+  vHtmlResults.push("<th>Mean Factor</th>");
+
+  for (var j=0; j<vLength; j++)
+  {
+    vHtmlResults.push("<td>");
+    vHtmlResults.push(vMeanMin > 0 ? Math.round(vMeanAll[j] / vMeanMin) : 1);
+    vHtmlResults.push("x</td>");
+  }
+
+  vHtmlResults.push("</tr>");
+
+
+
+  vHtmlResults.push("<tr>");
+
+  vHtmlResults.push("<th>Winner</th>");
+
+  for (var j=0; j<vLength; j++)
+  {
+    vHtmlResults.push("<td>");
+
+    if (vMedianMin == vMedianAll[j] && vMeanMin == vMeanAll[j])
+    {
+      vHtmlResults.push("BOTH");
+    }
+
+    else if (vMedianMin == vMedianAll[j])
+    {
+      vHtmlResults.push("MEDIAN");
+    }
+
+    else if (vMeanMin == vMeanAll[j])
+    {
+      vHtmlResults.push("MEAN");
+    }
+
+    vHtmlResults.push("</td>");
+  }
+
+  vHtmlResults.push("</tr>");
+
+  vHtmlResults.push("</tbody></table>");
+
+  this._output.setHtml(vHtmlResults.join("") + vHtmlMeasured.join(""));
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._functions = null;
+
+  return qx.core.Object.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/AlertAppender.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/AlertAppender.js
new file mode 100644 (file)
index 0000000..d800ac1
--- /dev/null
@@ -0,0 +1,65 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Andreas Ecker (ecker)
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(log)
+
+************************************************************************ */
+
+/**
+ * An appender that writes each message to a native alert().
+ * <p>
+ * This class does not depend on qooxdoo widgets, so it also works when there
+ * are problems with widgets or when the widgets are not yet initialized.
+ * <p>
+ * It allows to go through the log messages step-by-step, since the alert
+ * window temporarily halts the regular program execution. That way even
+ * the dispose process can easily be debugged.
+ */
+qx.OO.defineClass("qx.dev.log.AlertAppender", qx.dev.log.Appender,
+function() {
+  qx.dev.log.Appender.call(this);
+});
+
+
+// overridden
+qx.OO.changeProperty({ name:"useLongFormat", type:"boolean", defaultValue:false, allowNull:false });
+
+// overridden
+qx.Proto.appendLogEvent = function(evt) {
+
+  // Append the message
+  var text = evt.logger.getName();
+  if (evt.instanceId != null) {
+     text += " (" + evt.instanceId + ")";
+  }
+
+  alert("\n" + text + "\n" + this.formatLogEvent(evt));
+}
+
+
+// overridden
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+      return true;
+  }
+
+  return qx.dev.log.Appender.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/Appender.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/Appender.js
new file mode 100644 (file)
index 0000000..b1645a8
--- /dev/null
@@ -0,0 +1,181 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+#module(log)
+
+************************************************************************ */
+
+/**
+ * An appender. Does the actual logging.
+ */
+qx.OO.defineClass("qx.dev.log.Appender", qx.dev.log.LogEventProcessor,
+function() {
+  qx.dev.log.LogEventProcessor.call(this);
+});
+
+
+/** Whether the logger name and log level should be included in the formatted log message. */
+qx.OO.addProperty({ name:"useLongFormat", type:"boolean", defaultValue:true, allowNull:false });
+
+
+// overridden
+qx.Proto.handleLogEvent = function(evt) {
+  if (this.decideLogEvent(evt) != qx.dev.log.Filter.DENY) {
+    this.appendLogEvent(evt);
+  }
+}
+
+
+/**
+ * Appends a log event to the log.
+ *
+ * @param evt {Map} The event to append.
+ */
+qx.Proto.appendLogEvent = function(evt) {
+  throw new Error("appendLogEvent is abstract");
+}
+
+
+/**
+ * Formats a log event.
+ *
+ * @param evt {Map} The log event to format.
+ * @return {string} The formatted event.
+ */
+qx.Proto.formatLogEvent = function(evt) {
+  var Logger = qx.dev.log.Logger;
+
+  var text = "";
+
+  // Append the time stamp
+  var time = new String(new Date().getTime() - qx._LOADSTART);
+  while (time.length < 6) {
+    time = "0" + time;
+  }
+  text += time;
+
+  // Append the level
+  if (this.getUseLongFormat()) {
+    switch (evt.level) {
+      case Logger.LEVEL_DEBUG: text += " DEBUG: "; break;
+      case Logger.LEVEL_INFO:  text += " INFO:  "; break;
+      case Logger.LEVEL_WARN:  text += " WARN:  "; break;
+      case Logger.LEVEL_ERROR: text += " ERROR: "; break;
+      case Logger.LEVEL_FATAL: text += " FATAL: "; break;
+    }
+  } else {
+    text += ": ";
+  }
+
+  // Append the indent
+  var indent = "";
+  for (var i = 0; i < evt.indent; i++) {
+    indent += "  ";
+  }
+  text += indent;
+
+  // Append the logger name and instance
+  if (this.getUseLongFormat()) {
+    text += evt.logger.getName();
+    if (evt.instanceId != null) {
+      text += "[" + evt.instanceId + "]";
+    }
+    text += ": ";
+  }
+
+  // Append the message
+  if (typeof evt.message == "string") {
+    text += evt.message;
+  } else {
+    // The message is an object -> Log a dump of the object
+    var obj = evt.message;
+    if (obj == null) {
+      text += "Object is null";
+    } else {
+      text += "--- Object: " + obj + " ---\n";
+      var attrArr = new Array();
+      try {
+        for (var attr in obj) {
+          attrArr.push(attr);
+        }
+      } catch (exc) {
+        text += indent + "  [not readable: " + exc + "]\n";
+      }
+      attrArr.sort();
+      for (var i = 0; i < attrArr.length; i++) {
+        try {
+          text += indent + "  " + attrArr[i] + "=" + obj[attrArr[i]] + "\n";
+        }
+        catch (exc) {
+          text += indent + "  " + attrArr[i] + "=[not readable: " + exc + "]\n";
+        }
+      }
+      text += indent + "--- End of object ---";
+    }
+  }
+
+  // Append the throwable
+  if (evt.throwable != null) {
+    var thr = evt.throwable;
+
+    if (thr.name == null) {
+      text += ": " + thr;
+    } else {
+      text += ": " + thr.name;
+    }
+    if (thr.message != null) {
+      text += " - " + thr.message;
+    }
+    if (thr.number != null) {
+      text += " (#" + thr.number + ")";
+    }
+
+    if (thr.stack != null) {
+      text += "\n" + this._beautyStackTrace(thr.stack);
+    }
+  }
+
+  return text;
+}
+
+
+/**
+ * Beautifies a stack trace.
+ *
+ * @param stack {string} the stack trace to beautify.
+ * @return {string} the beautified stack trace.
+ */
+qx.Proto._beautyStackTrace = function(stack) {
+  // e.g. "()@http://localhost:8080/webcomponent-test-SNAPSHOT/webcomponent/js/com/ptvag/webcomponent/common/log/Logger:253"
+  var lineRe = /@(.+):(\d+)$/gm;
+  var hit;
+  var out = "";
+  var scriptDir = "/script/";
+  while ((hit = lineRe.exec(stack)) != null) {
+    var url = hit[1];
+
+    var jsPos = url.indexOf(scriptDir);
+    var className = (jsPos == -1) ? url : url.substring(jsPos + scriptDir.length).replace(/\//g, ".");
+
+    var lineNumber = hit[2];
+    out += "  at " + className + ":" + lineNumber + "\n";
+  }
+  return out;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/DefaultFilter.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/DefaultFilter.js
new file mode 100644 (file)
index 0000000..411a631
--- /dev/null
@@ -0,0 +1,57 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+#module(log)
+
+************************************************************************ */
+
+/**
+ * The default filter. Has a minimum level and can be enabled or disabled.
+ */
+qx.OO.defineClass("qx.dev.log.DefaultFilter", qx.dev.log.Filter,
+function() {
+  qx.dev.log.Filter.call(this);
+});
+
+
+/**
+ * Whether the filter should be enabled. If set to false all log events
+ * will be denied.
+ */
+qx.OO.addProperty({ name:"enabled", type:"boolean", defaultValue:true, allowNull:false, getAlias:"isEnabled" });
+
+/**
+ * The minimum log level. If set only log messages with a level greater or equal
+ * to the set level will be accepted.
+ */
+qx.OO.addProperty({ name:"minLevel", type:"number", defaultValue:null });
+
+
+// overridden
+qx.Proto.decide = function(evt) {
+  var Filter = qx.dev.log.Filter;
+  if (! this.isEnabled()) {
+    return Filter.DENY;
+  } else if (this.getMinLevel() == null) {
+    return Filter.NEUTRAL;
+  } else {
+    return (evt.level >= this.getMinLevel()) ? Filter.ACCEPT : Filter.DENY;
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/DivAppender.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/DivAppender.js
new file mode 100644 (file)
index 0000000..1f7376f
--- /dev/null
@@ -0,0 +1,164 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(log)
+
+************************************************************************ */
+
+/**
+ * An appender that writes all messages to a div element.
+ *
+ * This class does not depend on qooxdoo widgets, so it also works when there
+ * are problems with widgets or when the widgets are not yet initialized.
+ *
+ * @param divId {string ? "qx_log"} the ID of the div element to write the
+ *        messages to.
+ */
+qx.OO.defineClass("qx.dev.log.DivAppender", qx.dev.log.Appender,
+function(divId) {
+  qx.dev.log.Appender.call(this);
+
+  this._divId = divId ? divId : "qx_log";
+});
+
+
+/**
+ * The maximum number of messages to show. If null the number of messages is not
+ * limited.
+ */
+qx.OO.addProperty({ name:"maxMessages", type:"number", defaultValue:500 });
+
+// overridden
+qx.OO.changeProperty({ name:"useLongFormat", type:"boolean", defaultValue:false, allowNull:false });
+
+/** The CSS class name for the head div {containing the clear button}. */
+qx.OO.addProperty({ name:"headClassName", type:"string", defaultValue:"log-head" });
+
+/** The CSS class name for the body div {containing the log messages}. */
+qx.OO.addProperty({ name:"bodyClassName", type:"string", defaultValue:"log-body" });
+
+/** The CSS class name for a div showing the name of the current group. */
+qx.OO.addProperty({ name:"groupClassName", type:"string", defaultValue:"log-group" });
+
+/** The CSS class name for a div showing a debug message. */
+qx.OO.addProperty({ name:"debugClassName", type:"string", defaultValue:"log-debug" });
+
+/** The CSS class name for a div showing a info message. */
+qx.OO.addProperty({ name:"infoClassName", type:"string", defaultValue:"log-info" });
+
+/** The CSS class name for a div showing a warn message. */
+qx.OO.addProperty({ name:"warnClassName", type:"string", defaultValue:"log-warn" });
+
+/** The CSS class name for a div showing a error message. */
+qx.OO.addProperty({ name:"errorClassName", type:"string", defaultValue:"log-error" });
+
+
+/**
+ * Creates an onclick handler that clears a div element. This method is used to
+ * create a minimum closure.
+ *
+ * @param logElem {Element} the element to clear when the handler is called.
+ * @return {Function} the handler.
+ */
+qx.Proto._createClearButtonHandler = function(logElem) {
+  return function(evt) {
+    logElem.innerHTML = "";
+  }
+}
+
+
+// overridden
+qx.Proto.appendLogEvent = function(evt) {
+  var Logger = qx.dev.log.Logger;
+
+  // Initialize the log element if nessesary
+  if (this._logElem == null) {
+    var divElem = document.getElementById(this._divId);
+    if (divElem == null) {
+      throw new Error("Logging div with ID " + this._divId + " not found");
+    }
+    divElem.innerHTML = '<div class="' + this.getHeadClassName() + '"><button>Clear</button></div>'
+      + '<div class="' + this.getBodyClassName() + '"></div>';
+
+    this._clearBt = divElem.firstChild.firstChild;
+    this._logElem = divElem.lastChild;
+
+    this._clearBt.onclick = this._createClearButtonHandler(this._logElem);
+  }
+
+  // Append the group when needed
+  var group = evt.logger.getName();
+  if (evt.instanceId != null) {
+    group += "[" + evt.instanceId + "]";
+  }
+
+  if (group != this._lastGroup) {
+    var elem = document.createElement("div");
+    elem.className = this.getGroupClassName();
+    elem.innerHTML = group;
+
+    this._logElem.appendChild(elem);
+    this._lastGroup = group;
+  }
+
+  // Append the message
+  var elem = document.createElement("div");
+  switch (evt.level) {
+    case Logger.LEVEL_DEBUG: elem.className = this.getDebugClassName(); break;
+    case Logger.LEVEL_INFO:  elem.className = this.getInfoClassName();  break;
+    case Logger.LEVEL_WARN:  elem.className = this.getWarnClassName();  break;
+    case Logger.LEVEL_ERROR: elem.className = this.getErrorClassName(); break;
+  }
+  elem.innerHTML = this.formatLogEvent(evt).replace(/&/g, "&amp;")
+    .replace(/</g, "&lt;").replace(/  /g, " &#160;").replace(/[\n]/g, "<br>");
+  this._logElem.appendChild(elem);
+
+  // Remove superflous messages
+  while (this._logElem.childNodes.length > this.getMaxMessages()) {
+    this._logElem.removeChild(this._logElem.firstChild);
+
+    if (this._removedMessageCount == null) {
+      this._removedMessageCount = 1;
+    } else {
+      this._removedMessageCount++;
+    }
+  }
+
+  if (this._removedMessageCount != null) {
+    this._logElem.firstChild.className = "";
+    this._logElem.firstChild.innerHTML = "(" + this._removedMessageCount
+      + " messages removed)";
+  }
+}
+
+
+// overridden
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+      return true;
+  }
+
+  if (this._clearBt) {
+    this._clearBt.onclick = null;
+    this._clearBt = null;
+  }
+  this._logElem = null;
+
+  return qx.dev.log.Appender.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/Filter.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/Filter.js
new file mode 100644 (file)
index 0000000..60cee7a
--- /dev/null
@@ -0,0 +1,51 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+#module(log)
+
+************************************************************************ */
+
+/**
+ * A filter for log events.
+ */
+qx.OO.defineClass("qx.dev.log.Filter", qx.core.Object,
+function() {
+  qx.core.Object.call(this);
+});
+
+/**
+ * Decidies whether a log event is accepted.
+ *
+ * @param evt {Map} The event to check.
+ * @return {int} {@link #ACCEPT}, {@link #DENY} or {@link #NEUTRAL}.
+ */
+qx.Proto.decide = function(evt) {
+  throw new Error("decide is abstract");
+}
+
+
+/** {int} Specifies that the log event is accepted. */
+qx.Class.ACCEPT = 1;
+
+/** {int} Specifies that the log event is denied. */
+qx.Class.DENY = 2;
+
+/** {int} Specifies that the filter is neutral to the log event. */
+qx.Class.NEUTRAL = 3;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/FireBugAppender.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/FireBugAppender.js
new file mode 100644 (file)
index 0000000..34d6623
--- /dev/null
@@ -0,0 +1,72 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by David Perez
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * David Perez (david-perez)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+#module(log)
+
+************************************************************************ */
+
+/**
+ * An appender that writes all messages to FireBug, a nice extension for debugging and developing under Firefox.
+ * <p>
+ * This class does not depend on qooxdoo widgets, so it also works when there
+ * are problems with widgets or when the widgets are not yet initialized.
+ * </p>
+ */
+qx.OO.defineClass('qx.dev.log.FireBugAppender', qx.dev.log.Appender, function() {
+  qx.dev.log.Appender.call(this);
+});
+
+qx.Proto.appendLogEvent = function(evt)
+{
+  if (typeof console != 'undefined')
+  {
+    var log = qx.dev.log.Logger;
+    var msg = this.formatLogEvent(evt);
+
+    switch (evt.level)
+    {
+      case log.LEVEL_DEBUG:
+        if (console.debug) {
+          console.debug(msg);
+        }
+        break;
+      case log.LEVEL_INFO:
+        if (console.info) {
+          console.info(msg);
+        }
+        break;
+      case log.LEVEL_WARN:
+        if (console.warn) {
+          console.warn(msg);
+        }
+        break;
+      default:
+        if (console.error) {
+          console.error(msg);
+        }
+        break;
+    }
+    // Force a stack dump, for helping locating the error
+    if (evt.level > log.LEVEL_WARN && (!evt.throwable || !evt.throwable.stack) && console.trace)
+    {
+        console.trace();
+    }
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/ForwardAppender.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/ForwardAppender.js
new file mode 100644 (file)
index 0000000..5268f87
--- /dev/null
@@ -0,0 +1,41 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(log)
+
+************************************************************************ */
+
+/**
+ * An appender that forwards all log events to a log event processor.
+ *
+ * @param targetProcessor {LogEventProcessor} The log event processor Where to
+ *    pass the log events.
+ */
+qx.OO.defineClass("qx.dev.log.ForwardAppender", qx.dev.log.Appender,
+function(targetProcessor) {
+  qx.dev.log.Appender.call(this);
+
+  this._targetProcessor = targetProcessor;
+});
+
+
+// overridden
+qx.Proto.appendLogEvent = function(evt) {
+  this._targetProcessor.handleLogEvent(evt);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/LogEventProcessor.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/LogEventProcessor.js
new file mode 100644 (file)
index 0000000..c6c4a8e
--- /dev/null
@@ -0,0 +1,141 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+/**
+ * Processes log events. May be configured with filters in order to specify
+ * which log events should be processed.
+ */
+qx.OO.defineClass("qx.dev.log.LogEventProcessor", qx.core.Object,
+function() {
+  qx.core.Object.call(this);
+});
+
+
+/**
+ * Appends a filter to the filter chain.
+ *
+ * @param filter {Filter} The filter to append.
+ */
+qx.Proto.addFilter = function(filter) {
+  if (this._filterArr == null) {
+    this._filterArr = []
+  }
+  this._filterArr.push(filter);
+}
+
+
+/**
+ * Clears the filter chain.
+ */
+qx.Proto.clearFilters = function() {
+  this._filterArr = null;
+}
+
+
+/**
+ * Returns the head filter from the chain. Returns null if there are no filters.
+ *
+ * @return {Filter} the head filter from the chain.
+ */
+qx.Proto.getHeadFilter = function() {
+  return (this._filterArr == null || this._filterArr.length == 0) ? null : this._filterArr[0];
+}
+
+
+/**
+ * Returns the default filter from the chain. If the head filter is no default
+ * filter, the chain will be cleared and a default filter will be created.
+ *
+ * @return {Filter} the default filter.
+ */
+qx.Proto._getDefaultFilter = function() {
+  var headFilter = this.getHeadFilter();
+  if (! (headFilter instanceof qx.dev.log.DefaultFilter)) {
+    // The head filter of the appender is no DefaultFilter
+    // (or the appender has no filters at all)
+    // -> Create a default handler and append it
+    this.clearFilters();
+    headFilter = new qx.dev.log.DefaultFilter();
+    this.addFilter(headFilter);
+  }
+
+  return headFilter;
+}
+
+
+/**
+ * Sets whether event processing should be enabled.
+ * <p>
+ * Note: This will clear all custom filters.
+ *
+ * @param enabled {boolean} whether event processing should be enabled.
+ */
+qx.Proto.setEnabled = function(enabled) {
+  this._getDefaultFilter().setEnabled(enabled);
+}
+
+
+/**
+ * Sets the min level an event must have in order to be processed.
+ * <p>
+ * Note: This will clear all custom filters.
+ *
+ * @param minLevel {int} the new min level.
+ */
+qx.Proto.setMinLevel = function(minLevel) {
+  this._getDefaultFilter().setMinLevel(minLevel);
+}
+
+
+/**
+ * Decides whether a log event is processed.
+ *
+ * @param evt {Map} the event to check.
+ * @return {int} {@link Filter#ACCEPT}, {@link Filter#DENY} or
+ *     {@link Filter#NEUTRAL}.
+ */
+qx.Proto.decideLogEvent = function(evt) {
+  var NEUTRAL = qx.dev.log.Filter.NEUTRAL;
+
+  if (this._filterArr != null) {
+    for (var i = 0; i < this._filterArr.length; i++) {
+      var decision = this._filterArr[i].decide(evt);
+      if (decision != NEUTRAL) {
+        return decision;
+      }
+    }
+  }
+
+  // All filters are neutral, so are we
+  return NEUTRAL;
+}
+
+
+/**
+ * Processes a log event.
+ *
+ * @param evt {Map} The log event to process.
+ */
+qx.Proto.handleLogEvent = function(evt) {
+  throw new Error("handleLogEvent is abstract");
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/Logger.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/Logger.js
new file mode 100644 (file)
index 0000000..b5cd3d6
--- /dev/null
@@ -0,0 +1,374 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+#module(log)
+#require(qx.dev.log.WindowAppender)
+
+************************************************************************ */
+
+/**
+ * A logger. Logs messages of one log category.
+ *
+ * @param name {string} The category name of this logger. (Normally a class or
+ *    package name)
+ * @param parentLogger {Logger} The parent logger.
+ */
+qx.OO.defineClass("qx.dev.log.Logger", qx.dev.log.LogEventProcessor,
+function(name, parentLogger) {
+  qx.dev.log.LogEventProcessor.call(this);
+
+  this._name = name;
+  this._parentLogger = parentLogger;
+});
+
+
+/**
+ * Returns the name of this logger. (Normally a class or package name)
+ *
+ * @return {string} the name.
+ */
+qx.Proto.getName = function() {
+  return this._name;
+}
+
+
+/**
+ * Returns the parent logger.
+ *
+ * @return {Logger} the parent logger.
+ */
+qx.Proto.getParentLogger = function() {
+  return this._parentLogger;
+}
+
+
+/**
+ * Indents all following log messages by one.
+ * <p>
+ * This affects all log messages. Even those of other loggers.
+ */
+qx.Proto.indent = function() {
+  qx.dev.log.Logger._indent++;
+}
+
+
+/**
+ * Unindents all following log messages by one.
+ * <p>
+ * This affects all log messages. Even those of other loggers.
+ */
+qx.Proto.unindent = function() {
+  qx.dev.log.Logger._indent--;
+}
+
+
+/**
+ * Adds an appender.
+ * <p>
+ * If a logger has an appender, log events will not be passed to the
+ * appenders of parent loggers. If you want this behaviour, also append a
+ * {@link ForwardAppender}.
+ *
+ * @param appender {Appender} the appender to add.
+ */
+qx.Proto.addAppender = function(appender) {
+  if (this._appenderArr == null) {
+    this._appenderArr = [];
+  }
+
+  this._appenderArr.push(appender);
+}
+
+
+/**
+ * Removes an appender.
+ *
+ * @param appender {Appender} the appender to remove.
+ */
+qx.Proto.removeAppender = function(appender) {
+  if (this._appenderArr != null) {
+    this._appenderArr.remove(appender);
+  }
+}
+
+
+/**
+ * Removes all appenders.
+ */
+qx.Proto.removeAllAppenders = function() {
+  this._appenderArr = null;
+}
+
+
+// overridden
+qx.Proto.handleLogEvent = function(evt) {
+  var Filter = qx.dev.log.Filter;
+
+  var decision = Filter.NEUTRAL;
+  var logger = this;
+  while (decision == Filter.NEUTRAL && logger != null) {
+    decision = logger.decideLogEvent(evt);
+    logger = logger.getParentLogger();
+  }
+
+  if (decision != Filter.DENY) {
+    this.appendLogEvent(evt);
+  }
+}
+
+
+/**
+ * Passes a log event to the appenders. If the logger has no appenders the
+ * event will be passed to the appenders of the parent logger, and so on.
+ *
+ * @param evt {Map} The event to append.
+ */
+qx.Proto.appendLogEvent = function(evt) {
+  if (this._appenderArr != null && this._appenderArr.length != 0) {
+    for (var i = 0; i < this._appenderArr.length; i++) {
+      this._appenderArr[i].handleLogEvent(evt);
+    }
+  } else if (this._parentLogger != null) {
+    this._parentLogger.appendLogEvent(evt);
+  }
+}
+
+
+/**
+ * Logs a message.
+ *
+ * @param level {int} the log level.
+ * @param msg {var} the message to log. If this is not a string, the
+ *    object dump will be logged.
+ * @param instanceId {var ? null} the ID of the instance the log message comes from.
+ * @param exc {var ? null} the exception to log.
+ */
+qx.Proto.log = function(level, msg, instanceId, exc) {
+  var evt = { logger:this, level:level, message:msg, throwable:exc,
+              indent:qx.dev.log.Logger._indent, instanceId:instanceId }
+  this.handleLogEvent(evt);
+}
+
+
+/**
+ * Logs a debug message.
+ *
+ * @param msg {var} the message to log. If this is not a string, the
+ *    object dump will be logged.
+ * @param instanceId {var ? null} the ID of the instance the log message comes from.
+ * @param exc {var ? null} the exception to log.
+ */
+qx.Proto.debug = function(msg, instanceId, exc) {
+  this.log(qx.dev.log.Logger.LEVEL_DEBUG, msg, instanceId, exc);
+}
+
+
+/**
+ * Logs an info message.
+ *
+ * @param msg {var} the message to log. If this is not a string, the
+ *    object dump will be logged.
+ * @param instanceId {var ? null} the ID of the instance the log message comes from.
+ * @param exc {var ? null} the exception to log.
+ */
+qx.Proto.info = function(msg, instanceId, exc) {
+  this.log(qx.dev.log.Logger.LEVEL_INFO, msg, instanceId, exc);
+}
+
+
+/**
+ * Logs a warning message.
+ *
+ * @param msg {var} the message to log. If this is not a string, the
+ *    object dump will be logged.
+ * @param instanceId {var ? null} the ID of the instance the log message comes from.
+ * @param exc {var ? null} the exception to log.
+ */
+qx.Proto.warn = function(msg, instanceId, exc) {
+  this.log(qx.dev.log.Logger.LEVEL_WARN, msg, instanceId, exc);
+}
+
+
+/**
+ * Logs an error message.
+ *
+ * @param msg {var} the message to log. If this is not a string, the
+ *    object dump will be logged.
+ * @param instanceId {var ? null} the ID of the instance the log message comes from.
+ * @param exc {var ? null} the exception to log.
+ */
+qx.Proto.error = function(msg, instanceId, exc) {
+  this.log(qx.dev.log.Logger.LEVEL_ERROR, msg, instanceId, exc);
+}
+
+
+/**
+ * Logs a fatal message.
+ *
+ * @param msg {var} the message to log. If this is not a string, its
+ *    object dump will be logged.
+ * @param instanceId {var ? null} the ID of the instance the log message comes from.
+ * @param exc {var ? null} the exception to log.
+ */
+qx.Proto.fatal = function(msg, instanceId, exc) {
+  this.log(qx.dev.log.Logger.LEVEL_FATAL, msg, instanceId, exc);
+}
+
+
+/**
+ * Resets the measure timer.
+ *
+ * @see #measure{}
+ */
+qx.Proto.measureReset = function() {
+  if (this._totalMeasureTime != null) {
+    this.debug("Measure reset. Total measure time: " + this._totalMeasureTime + " ms");
+  }
+
+  this._lastMeasureTime = null;
+  this._totalMeasureTime = null;
+}
+
+
+/**
+ * Logs a debug message and measures the time since the last call of measure.
+ *
+ * @param msg {string} the message to log.
+ * @param instanceId {var ? null} the ID of the instance the log message comes from.
+ * @param exc {var ? null} the exception to log.
+ */
+qx.Proto.measure = function(msg, instanceId, exc) {
+  if (this._lastMeasureTime == null) {
+    msg = "(measure start) " + msg;
+  } else {
+    var delta = new Date().getTime() - this._lastMeasureTime;
+
+    if (this._totalMeasureTime == null) {
+      this._totalMeasureTime = 0;
+    }
+
+    this._totalMeasureTime += delta;
+    msg = "(passed time: " + delta + " ms) " + msg;
+  }
+
+  this.debug(msg, instanceId, exc);
+
+  this._lastMeasureTime = new Date().getTime();
+}
+
+
+/**
+ * Logs the current stack trace as a debug message.
+ */
+qx.Proto.printStackTrace = function() {
+  try {
+    forced_exception.go;
+  } catch (exc) {
+    this.debug("Current stack trace", "", exc);
+  }
+}
+
+
+/**
+ * Returns the logger of a class.
+ *
+ * @param clazz {Function} The class of which to return the logger.
+ */
+qx.Class.getClassLogger = function(clazz) {
+  var logger = clazz._logger;
+  if (logger == null) {
+    // Get the parent logger
+    var classname = clazz.classname;
+    var splits = classname.split(".");
+    var currPackage = window;
+    var currPackageName = "";
+    var parentLogger = qx.dev.log.Logger.ROOT_LOGGER;
+    for (var i = 0; i < splits.length - 1; i++) {
+      currPackage = currPackage[splits[i]];
+      currPackageName += ((i != 0) ? "." : "") + splits[i];
+
+      if (currPackage._logger == null) {
+        // This package has no logger -> Create one
+        currPackage._logger = new qx.dev.log.Logger(currPackageName, parentLogger);
+      }
+      parentLogger = currPackage._logger;
+    }
+
+    // Create the class logger
+    logger = new qx.dev.log.Logger(classname, parentLogger);
+    clazz._logger = logger;
+  }
+  return logger;
+}
+
+
+/** {int} The current indent. */
+qx.Class._indent = 0;
+
+/**
+ * (int) The ALL level has the lowest possible rank and is intended to turn on
+ * all logging.
+ */
+qx.Class.LEVEL_ALL = 0;
+
+/**
+ * (int) The DEBUG Level designates fine-grained informational events that are
+ * most useful to debug an application.
+ */
+qx.Class.LEVEL_DEBUG = 200;
+
+/**
+ * (int) The INFO level designates informational messages that highlight the
+ * progress of the application at coarse-grained level.
+ */
+qx.Class.LEVEL_INFO = 500;
+
+/** {int} The WARN level designates potentially harmful situations. */
+qx.Class.LEVEL_WARN = 600;
+
+/**
+ * (int) The ERROR level designates error events that might still allow the
+ * application to continue running.
+ */
+qx.Class.LEVEL_ERROR = 700;
+
+/**
+ * (int) The FATAL level designates very severe error events that will
+ * presumably lead the application to abort.
+ */
+qx.Class.LEVEL_FATAL = 800;
+
+/**
+ * (int) The OFF has the highest possible rank and is intended to turn off
+ * logging.
+ */
+qx.Class.LEVEL_OFF = 1000;
+
+
+/**
+ * {Logger} The root logger. This is the root of the logger tree. All loggers
+ * should be a child or grand child of this root logger.
+ * <p>
+ * This logger logs by default everything greater than level INFO to a log
+ * window.
+ */
+qx.Class.ROOT_LOGGER = new qx.dev.log.Logger("root", null);
+qx.Class.ROOT_LOGGER.setMinLevel(qx.dev.log.Logger.LEVEL_DEBUG);
+qx.Class.ROOT_LOGGER.addAppender(new qx.dev.log.WindowAppender);
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/RingBufferAppender.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/RingBufferAppender.js
new file mode 100644 (file)
index 0000000..32d24c6
--- /dev/null
@@ -0,0 +1,122 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Carsten Lergenmueller (carstenl)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(log)
+
+************************************************************************ */
+
+/**
+ * An appender that writes all messages to a memory container. The messages
+ * can be retrieved later, f. i. when an error dialog pops up and the question
+ * arises what actions have caused the error.
+ *
+ */
+qx.OO.defineClass("qx.dev.log.RingBufferAppender", qx.dev.log.Appender,
+function() {
+  qx.dev.log.Appender.call(this);
+
+  this._history = [];
+  this._nextIndexToStoreTo = 0;
+  this._appenderToFormatStrings = null;
+});
+
+
+/**
+ * The maximum number of messages to hold. If null the number of messages is not
+ * limited. Warning: Changing this property will clear the events logged so far.
+ */
+qx.OO.addProperty({ name:"maxMessages", type:"number", defaultValue:50 });
+
+qx.Proto._modifyMaxMessages = function(propValue, propOldValue, propData){
+  this._history = [];
+  this._nextIndexToStoreTo = 0;
+};
+
+// overridden
+qx.Proto.appendLogEvent = function(evt) {
+  var maxMessages = this.getMaxMessages();
+  if (this._history.length < maxMessages){
+    this._history.push(evt);
+  } else {
+    this._history[this._nextIndexToStoreTo++] = evt;
+    if (this._nextIndexToStoreTo >= maxMessages){
+      this._nextIndexToStoreTo = 0;
+    }
+  }
+};
+
+/**
+ * Returns log events which have been logged previously.
+ *
+ * @param count {int} The number of events to retreive. If there are more events than the
+ *                    given count, the oldest ones will not be returned.
+ * @return {array} array of stored log events
+ */
+qx.Proto.retrieveLogEvents = function(count) {
+  if (count > this._history.length){
+    count = this._history.length;
+  }
+
+  var indexOfYoungestElementInHistory
+    = this._history.length == this.getMaxMessages() ? this._nextIndexToStoreTo - 1
+                                                    : this._history.length - 1;
+  var startIndex = indexOfYoungestElementInHistory - count + 1;
+  if (startIndex < 0){
+    startIndex += this._history.length;
+  }
+
+  var result;
+  if (startIndex <= indexOfYoungestElementInHistory){
+    result = this._history.slice(startIndex, indexOfYoungestElementInHistory + 1);
+  } else {
+    result = this._history.slice(startIndex, this._history.length).concat(
+                this._history.slice(0, indexOfYoungestElementInHistory + 1)
+              );
+  }
+  return result;
+};
+
+/**
+ * Returns a string holding the information of log events which have been logged previously.
+ *
+ * @param count {int} The number of events to retreive. If there are more events than the
+ *                    given count, the oldest ones will not be returned.
+ * @return {string} string
+ */
+qx.Proto.formatLogEvents = function(count) {
+  if (this._appenderToFormatStrings == null){
+    this._appenderToFormatStrings = new qx.dev.log.Appender();
+  }
+
+  var events = this.retrieveLogEvents(count);
+  var string = "";
+  for(var idx=0; idx < events.length; idx++) {
+    string += this._appenderToFormatStrings.formatLogEvent(events[idx]) + "\n";
+  }
+  return string;
+};
+
+// overridden
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  return qx.dev.log.Appender.prototype.dispose.call(this);
+};
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/WindowAppender.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/WindowAppender.js
new file mode 100644 (file)
index 0000000..e62efe4
--- /dev/null
@@ -0,0 +1,225 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+#module(log)
+
+************************************************************************ */
+
+/**
+ * An appender that writes all messages to a log window.
+ * <p>
+ * This class does not depend on qooxdoo widgets, so it also works when there
+ * are problems with widgets or when the widgets are not yet initialized.
+ *
+ * @param name {string ? "qx_log"} the name of the log window.
+ */
+qx.OO.defineClass("qx.dev.log.WindowAppender", qx.dev.log.Appender,
+function(name) {
+  qx.dev.log.Appender.call(this);
+
+  this._id = qx.dev.log.WindowAppender.register(this);
+  this._name = (name == null) ? "qx_log" : name;
+
+  this._logWindowOpened = false;
+});
+
+
+/**
+ * The maximum number of messages to show. If null the number of messages is not
+ * limited.
+ */
+qx.OO.addProperty({ name:"maxMessages", type:"number", defaultValue:500 });
+
+/** Whether the window should appear under the main window. */
+qx.OO.addProperty({ name:"popUnder", type:"boolean", defaultValue:false, allowNull:false });
+
+
+/**
+ * Creates and opens the log window if it doesn't alread exist.
+ */
+qx.Proto.openWindow = function() {
+  if (this._logWindowOpened) {
+    // The window is already open -> Nothing to do
+    return;
+  }
+
+  // Open the logger window
+  var winWidth = 600;
+  var winHeight = 350;
+  var winLeft = window.screen.width - winWidth;
+  var winTop = window.screen.height - winHeight;
+  var params = "toolbar=no,scrollbars=yes,resizable=yes,"
+    + "width=" + winWidth + ",height=" + winHeight
+    + ",left=" + winLeft + ",top=" + winTop;
+
+  // NOTE: In window.open the browser will process the event queue.
+  //     Which means that other log events may arrive during this time.
+  //     The log window is then in an inconsistent state, because the
+  //     this._logElem is not created yet. These events will be added to the
+  //     this._logEventQueue and logged after this._logElem is created.
+  this._logWindow = window.open("", this._name, params);
+
+  if (!this._logWindow || this._logWindow.closed)
+  {
+    if (!this._popupBlockerWarning) {
+      alert("Couldn't open debug window. Please disable your popup blocker!");
+    }
+
+    this._popupBlockerWarning = true;
+    return;
+  }
+
+  // Seems to be OK now.
+  this._popupBlockerWarning = false;
+
+  // Store that window is open
+  this._logWindowOpened = true;
+
+  if (this.getPopUnder()) {
+    this._logWindow.blur();
+    window.focus();
+  }
+
+  var logDocument = this._logWindow.document;
+  // NOTE: We have to use a static onunload handler, because an onunload
+  //     that is set later using DOM is ignored completely.
+  //     (at least in Firefox, but maybe in IE, too)
+  logDocument.open();
+  logDocument.write("<html><head><title>" + this._name + "</title></head>"
+    + '<body onload="qx = opener.qx;" onunload="try{qx.dev.log.WindowAppender._registeredAppenders[' + this._id + '].closeWindow()}catch(e){}">'
+    + '<pre id="log" wrap="wrap" style="font-size:11"></pre></body></html>');
+  logDocument.close();
+
+  this._logElem = logDocument.getElementById("log");
+
+  // Log the events from the queue
+  if (this._logEventQueue != null) {
+    for (var i = 0; i < this._logEventQueue.length; i++) {
+      this.appendLogEvent(this._logEventQueue[i]);
+    }
+    this._logEventQueue = null;
+  }
+}
+
+
+/**
+ * Closes the log window.
+ */
+qx.Proto.closeWindow = function() {
+  if (this._logWindow != null) {
+    this._logWindow.close();
+    this._logWindow = null;
+    this._logElem = null;
+    this._logWindowOpened = false;
+  }
+}
+
+
+// overridden
+qx.Proto.appendLogEvent = function(evt) {
+  if (!this._logWindowOpened) {
+    this._logEventQueue = [];
+    this._logEventQueue.push(evt);
+
+    this.openWindow();
+
+    // Popup-Blocker was active!
+    if (!this._logWindowOpened) {
+      return;
+    }
+  } else if (this._logElem == null) {
+    // The window is currenlty opening, but not yet finished
+    // -> Put the event in the queue
+    this._logEventQueue.push(evt);
+  } else {
+    var divElem = this._logWindow.document.createElement("div");
+    if (evt.level == qx.dev.log.Logger.LEVEL_ERROR) {
+      divElem.style.backgroundColor = "#FFEEEE";
+    } else if (evt.level == qx.dev.log.Logger.LEVEL_DEBUG) {
+      divElem.style.color = "gray";
+    }
+    divElem.innerHTML = this.formatLogEvent(evt).replace(/&/g, "&amp;")
+      .replace(/</g, "&lt;").replace(/  /g, " &#160;").replace(/[\n]/g, "<br>");
+    this._logElem.appendChild(divElem);
+
+    while (this._logElem.childNodes.length > this.getMaxMessages()) {
+      this._logElem.removeChild(this._logElem.firstChild);
+
+      if (this._removedMessageCount == null) {
+        this._removedMessageCount = 1;
+      } else {
+        this._removedMessageCount++;
+      }
+    }
+
+    if (this._removedMessageCount != null) {
+      this._logElem.firstChild.innerHTML = "(" + this._removedMessageCount
+        + " messages removed)";
+    }
+
+    // Scroll to bottom
+    this._logWindow.scrollTo(0, this._logElem.offsetHeight);
+  }
+}
+
+
+// overridden
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  this.closeWindow();
+
+  return qx.dev.log.Appender.prototype.dispose.call(this);
+}
+
+
+qx.Class._nextId = 1;
+qx.Class._registeredAppenders = {};
+
+
+/**
+ * Registers a WindowAppender. This is used by the WindowAppender internally.
+ * You don't have to call this.
+ *
+ * @param appender {WindowAppender} the WindowAppender to register.
+ * @return {int} the ID.
+ */
+qx.Class.register = function(appender) {
+  var WindowAppender = qx.dev.log.WindowAppender;
+
+  var id = WindowAppender._nextId++;
+  WindowAppender._registeredAppenders[id] = appender;
+
+  return id;
+}
+
+
+/**
+ * Returns a prviously registered WindowAppender.
+ *
+ * @param id {int} the ID of the wanted WindowAppender.
+ * @return {WindowAppender} the WindowAppender or null if no
+ *     WindowAppender with this ID is registered.
+ */
+qx.Class.getAppender = function(id) {
+  return qx.dev.log.WindowAppender._registeredAppenders[id];
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Dimension.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Dimension.js
new file mode 100644 (file)
index 0000000..7b6b6c7
--- /dev/null
@@ -0,0 +1,222 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.dom.Dimension");
+
+/*
++-Outer----------------------------------------+
+|  Margin                                      |
+|  +-Box------------------------------+        |
+|  |  Border (+ Scrollbar)            |        |
+|  |  +-Area--------------------+     |        |
+|  |  |  Padding                |     |        |
+|  |  |  +-Inner----------+     |     |        |
+|  |  |  |                |     |     |        |
+|  |  |  +----------------+     |     |        |
+|  |  +-------------------------+     |        |
+|  +----------------------------------+        |
++----------------------------------------------+
+*/
+
+// Dimensions
+qx.dom.Dimension.getOuterWidth  = function(el) { return qx.dom.Dimension.getBoxWidth(el)  + qx.dom.Style.getMarginLeft(el) + qx.dom.Style.getMarginRight(el); }
+qx.dom.Dimension.getOuterHeight = function(el) { return qx.dom.Dimension.getBoxHeight(el) + qx.dom.Style.getMarginTop(el)  + qx.dom.Style.getMarginBottom(el); }
+
+qx.dom.Dimension.getBoxWidthForZeroHeight = function(el)
+{
+  var h = el.offsetHeight;
+  if (h == 0) {
+    var o = el.style.height;
+    el.style.height = "1px";
+  }
+
+  var v = el.offsetWidth;
+
+  if (h == 0) {
+    el.style.height = o;
+  }
+
+  return v;
+}
+
+qx.dom.Dimension.getBoxHeightForZeroWidth = function(el)
+{
+  var w = el.offsetWidth;
+  if (w == 0) {
+    var o = el.style.width;
+    el.style.width = "1px";
+  }
+
+  var v = el.offsetHeight;
+
+  if (w == 0) {
+    el.style.width = o;
+  }
+
+  return v;
+}
+
+qx.dom.Dimension.getBoxWidth = function(el) {
+  return el.offsetWidth;
+}
+
+qx.dom.Dimension.getBoxHeight = function(el) {
+  return el.offsetHeight;
+}
+
+if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.dom.Dimension.getAreaWidth = function(el)
+  {
+    // 0 in clientWidth could mean both: That it is really 0 or
+    // that the element is not rendered by the browser and
+    // therefore it is 0, too
+
+    // In Gecko based browsers there is sometimes another
+    // behaviour: The clientHeight is equal to the border
+    // sum. This is normally not correct and so we
+    // fix this value with a more complex calculation.
+
+    // (Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.6) Gecko/20050223 Firefox/1.0.1)
+
+    if (el.clientWidth != 0 && el.clientWidth != (qx.dom.Style.getBorderLeft(el) + qx.dom.Style.getBorderRight(el)))
+    {
+      return el.clientWidth;
+    }
+    else
+    {
+      return qx.dom.Dimension.getBoxWidth(el) - qx.dom.Dimension.getInsetLeft(el) - qx.dom.Dimension.getInsetRight(el);
+    }
+  }
+
+  qx.dom.Dimension.getAreaHeight = function(el)
+  {
+    // 0 in clientHeight could mean both: That it is really 0 or
+    // that the element is not rendered by the browser and
+    // therefore it is 0, too
+
+    // In Gecko based browsers there is sometimes another
+    // behaviour: The clientHeight is equal to the border
+    // sum. This is normally not correct and so we
+    // fix this value with a more complex calculation.
+
+    // (Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.6) Gecko/20050223 Firefox/1.0.1)
+
+    if (el.clientHeight != 0 && el.clientHeight != (qx.dom.Style.getBorderTop(el) + qx.dom.Style.getBorderBottom(el)))
+    {
+      return el.clientHeight;
+    }
+    else
+    {
+      return qx.dom.Dimension.getBoxHeight(el) - qx.dom.Dimension.getInsetTop(el) - qx.dom.Dimension.getInsetBottom(el);
+    }
+  }
+}
+else
+{
+  qx.dom.Dimension.getAreaWidth = function(el)
+  {
+    // 0 in clientWidth could mean both: That it is really 0 or
+    // that the element is not rendered by the browser and
+    // therefore it is 0, too
+
+    return el.clientWidth != 0 ? el.clientWidth : (qx.dom.Dimension.getBoxWidth(el) - qx.dom.Dimension.getInsetLeft(el) - qx.dom.Dimension.getInsetRight(el));
+  }
+
+  qx.dom.Dimension.getAreaHeight = function(el)
+  {
+    // 0 in clientHeight could mean both: That it is really 0 or
+    // that the element is not rendered by the browser and
+    // therefore it is 0, too
+
+    return el.clientHeight != 0 ? el.clientHeight : (qx.dom.Dimension.getBoxHeight(el) - qx.dom.Dimension.getInsetTop(el) - qx.dom.Dimension.getInsetBottom(el));
+  }
+}
+
+qx.dom.Dimension.getInnerWidth  = function(el) { return qx.dom.Dimension.getAreaWidth(el) - qx.dom.Style.getPaddingLeft(el) - qx.dom.Style.getPaddingRight(el); }
+qx.dom.Dimension.getInnerHeight = function(el) { return qx.dom.Dimension.getAreaHeight(el) - qx.dom.Style.getPaddingTop(el)  - qx.dom.Style.getPaddingBottom(el); }
+
+
+
+
+// Insets
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.dom.Dimension.getInsetLeft   = function(el) { return el.clientLeft; }
+  qx.dom.Dimension.getInsetTop    = function(el) { return el.clientTop; }
+  qx.dom.Dimension.getInsetRight  = function(el) {
+    if(qx.dom.Style.getStyleProperty(el, "overflowY") == "hidden" || el.clientWidth == 0) {
+      return qx.dom.Style.getBorderRight(el);
+    }
+
+    return Math.max(0, el.offsetWidth - el.clientLeft - el.clientWidth);
+  }
+
+  qx.dom.Dimension.getInsetBottom = function(el) {
+    if(qx.dom.Style.getStyleProperty(el, "overflowX") == "hidden" || el.clientHeight == 0) {
+      return qx.dom.Style.getBorderBottom(el);
+    }
+
+    return Math.max(0, el.offsetHeight - el.clientTop - el.clientHeight);
+  }
+}
+else
+{
+  qx.dom.Dimension.getInsetLeft   = function(el) { return qx.dom.Style.getBorderLeft(el); }
+  qx.dom.Dimension.getInsetTop    = function(el) { return qx.dom.Style.getBorderTop(el); }
+
+  qx.dom.Dimension.getInsetRight  = function(el) {
+    // Alternative method if clientWidth is unavailable
+    // clientWidth == 0 could mean both: unavailable or really 0
+    if (el.clientWidth == 0) {
+      var ov = qx.dom.Style.getStyleProperty(el, "overflow");
+      var sbv = ov == "scroll" || ov == "-moz-scrollbars-vertical" ? 16 : 0;
+      return Math.max(0, qx.dom.Style.getBorderRight(el) + sbv);
+    }
+
+    return Math.max(0, el.offsetWidth - el.clientWidth - qx.dom.Style.getBorderLeft(el));
+  }
+
+  qx.dom.Dimension.getInsetBottom = function(el) {
+    // Alternative method if clientHeight is unavailable
+    // clientHeight == 0 could mean both: unavailable or really 0
+    if (el.clientHeight == 0) {
+      var ov = qx.dom.Style.getStyleProperty(el, "overflow");
+      var sbv = ov == "scroll" || ov == "-moz-scrollbars-horizontal" ? 16 : 0;
+      return Math.max(0, qx.dom.Style.getBorderBottom(el) + sbv);
+    }
+
+    return Math.max(0, el.offsetHeight - el.clientHeight - qx.dom.Style.getBorderTop(el));
+  }
+}
+
+
+// Scrollbar
+qx.dom.Dimension.getScrollBarSizeLeft   = function(el) { return 0; }
+qx.dom.Dimension.getScrollBarSizeTop    = function(el) { return 0; }
+qx.dom.Dimension.getScrollBarSizeRight  = function(el) { return qx.dom.Dimension.getInsetRight(el)  - qx.dom.Style.getBorderRight(el); }
+qx.dom.Dimension.getScrollBarSizeBottom = function(el) { return qx.dom.Dimension.getInsetBottom(el) - qx.dom.Style.getBorderBottom(el); }
+
+qx.dom.Dimension.getScrollBarVisibleX   = function(el) { return qx.dom.Dimension.getScrollBarSizeRight(el)  > 0; }
+qx.dom.Dimension.getScrollBarVisibleY   = function(el) { return qx.dom.Dimension.getScrollBarSizeBottom(el) > 0; }
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Element.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Element.js
new file mode 100644 (file)
index 0000000..fa851e1
--- /dev/null
@@ -0,0 +1,74 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/**
+ * Crossbrowser operations on DOM Nodes
+ */
+qx.OO.defineClass("qx.dom.Element");
+
+
+/**
+ * Removes whitespace-only text node children
+ *
+ * @param vElement {Element} DOM element
+ */
+qx.dom.Element.cleanWhitespace = function(vElement)
+{
+  for (var i=0; i<vElement.childNodes.length; i++)
+  {
+    var node = vElement.childNodes[i];
+
+    if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) {
+      vElement.removeChild(node);
+    }
+  }
+}
+
+
+/**
+ * Checks if a element has no content
+ *
+ * @param vElement {Element} DOM element
+ */
+qx.dom.Element.isEmpty = function(vElement) {
+  return vElement.innerHTML.match(/^\s*$/);
+}
+
+
+/**
+ * Sets the textValue of the given DOM element.
+ * Wrapper for element.innerText and element.textContent.
+ *
+ * @param vElement {Element} DOM node
+ * @param sValue {string}
+ */
+qx.dom.Element.setTextContent = function(vElement, sValue) {};
+
+if (qx.sys.Client.getInstance().supportsTextContent()) {
+  qx.dom.Element.setTextContent = function(vElement, sValue) {
+    vElement.textContent = sValue;
+  };
+} else if (qx.sys.Client.getInstance().supportsInnerText()) {
+  qx.dom.Element.setTextContent = function(vElement, sValue) {
+    vElement.innerText = sValue;
+  };
+} else {
+  qx.dom.Element.setTextContent = function(vElement, sValue) {
+    vElement.innerHTML = sValue;
+  };
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/ElementFromPoint.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/ElementFromPoint.js
new file mode 100644 (file)
index 0000000..8d8e4c0
--- /dev/null
@@ -0,0 +1,122 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.dom.ElementFromPoint");
+
+qx.dom.ElementFromPoint.getElementFromPoint = function(x, y) {
+  return qx.dom.ElementFromPoint.getElementFromPointHandler(document.body, x, y);
+}
+
+qx.dom.ElementFromPoint.getElementFromPointHandler = function(node, x, y, recursive)
+{
+  var ch = node.childNodes;
+  var chl = ch.length-1;
+
+  if (chl < 0) {
+    return null;
+  }
+
+  var chc, subres, ret;
+
+  do
+  {
+    chc = ch[chl];
+    ret = qx.dom.ElementFromPoint.getElementFromPointChecker(chc, x, y);
+
+    if (ret)
+    {
+      if (typeof recursive === "boolean" && recursive == false)
+      {
+        return chc;
+      }
+      else
+      {
+        subres = qx.dom.ElementFromPoint.getElementFromPointHandler(chc, x-ret[0]-qx.dom.Style.getBorderLeft(chc), y-ret[2]-qx.dom.Style.getBorderTop(chc));
+        return subres ? subres : chc;
+      }
+    }
+  }
+  while(chl--);
+
+  return null;
+}
+
+qx.dom.ElementFromPoint.getElementFromPointChecker = function(chc, x, y)
+{
+  var xstart, ystart, xstop, ystop;
+
+  if (chc.nodeType != 1) {
+    return false;
+  }
+
+  xstart = qx.dom.Offset.getLeft(chc);
+  if (x > xstart)
+  {
+    ystart = qx.dom.Offset.getTop(chc);
+    if (y > ystart)
+    {
+      xstop = xstart + chc.offsetWidth;
+
+      if (x < xstop)
+      {
+        ystop = ystart + chc.offsetHeight;
+        if (y < ystop)
+        {
+          return [ xstart, xstop, ystart, ystop ];
+        }
+      }
+    }
+  }
+
+  return false;
+}
+
+qx.dom.ElementFromPoint.getElementAbsolutePointChecker = function(chc, x, y)
+{
+  var xstart, ystart, xstop, ystop;
+
+  if (!chc || chc.nodeType != 1) {
+    return false;
+  }
+
+  xstart = qx.dom.Location.getPageBoxLeft(chc);
+  if (x > xstart)
+  {
+    ystart = qx.dom.Location.getPageBoxTop(chc);
+    if (y > ystart)
+    {
+      xstop = xstart + chc.offsetWidth;
+
+      if (x < xstop)
+      {
+        ystop = ystart + chc.offsetHeight;
+        if (y < ystop)
+        {
+          return [ xstart, xstop, ystart, ystop ];
+        }
+      }
+    }
+  }
+
+  return false;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/EventRegistration.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/EventRegistration.js
new file mode 100644 (file)
index 0000000..9f42b2e
--- /dev/null
@@ -0,0 +1,47 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+#require(qx.sys.Client)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.dom.EventRegistration");
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.dom.EventRegistration.addEventListener = function(vElement, vType, vFunction) {
+    vElement.attachEvent("on" + vType, vFunction);
+  }
+
+  qx.dom.EventRegistration.removeEventListener = function(vElement, vType, vFunction) {
+    vElement.detachEvent("on" + vType, vFunction);
+  }
+}
+else
+{
+  qx.dom.EventRegistration.addEventListener = function(vElement, vType, vFunction) {
+    vElement.addEventListener(vType, vFunction, false);
+  }
+
+  qx.dom.EventRegistration.removeEventListener = function(vElement, vType, vFunction) {
+    vElement.removeEventListener(vType, vFunction, false);
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Iframe.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Iframe.js
new file mode 100644 (file)
index 0000000..51cd673
--- /dev/null
@@ -0,0 +1,87 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(io_remote)
+#require(qx.sys.Client)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.dom.Iframe");
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.dom.Iframe.getWindow = function(vIframe)
+  {
+    try
+    {
+      return vIframe.contentWindow;
+    }
+    catch(ex)
+    {
+      return null;
+    }
+  }
+
+  qx.dom.Iframe.getDocument = function(vIframe)
+  {
+    try
+    {
+      var vWin = qx.dom.Iframe.getWindow(vIframe);
+      return vWin ? vWin.document : null;
+    }
+    catch(ex)
+    {
+      return null;
+    }
+  }
+}
+else
+{
+  qx.dom.Iframe.getWindow = function(vIframe)
+  {
+    try
+    {
+      var vDoc = qx.dom.Iframe.getDocument(vIframe);
+      return vDoc ? vDoc.defaultView : null;
+    }
+    catch(ex)
+    {
+      return null;
+    }
+  }
+
+  qx.dom.Iframe.getDocument = function(vIframe)
+  {
+    try
+    {
+      return vIframe.contentDocument;
+    }
+    catch(ex)
+    {
+      return null;
+    }
+  }
+}
+
+qx.dom.Iframe.getBody = function(vIframe)
+{
+  var vDoc = qx.dom.Iframe.getDocument(vIframe);
+  return vDoc ? vDoc.getElementsByTagName("body")[0] : null;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Location.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Location.js
new file mode 100644 (file)
index 0000000..479a3aa
--- /dev/null
@@ -0,0 +1,259 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#require(qx.sys.Client)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.dom.Location");
+
+qx.dom.Location.getPageOuterLeft     = function(el) { return qx.dom.Location.getPageBoxLeft(el)     - qx.dom.Style.getMarginLeft(el); }
+qx.dom.Location.getPageOuterTop      = function(el) { return qx.dom.Location.getPageBoxTop(el)      - qx.dom.Style.getMarginTop(el); }
+qx.dom.Location.getPageOuterRight    = function(el) { return qx.dom.Location.getPageBoxRight(el)    + qx.dom.Style.getMarginRight(el); }
+qx.dom.Location.getPageOuterBottom   = function(el) { return qx.dom.Location.getPageBoxBottom(el)   + qx.dom.Style.getMarginBottom(el); }
+
+qx.dom.Location.getClientOuterLeft   = function(el) { return qx.dom.Location.getClientBoxLeft(el)   - qx.dom.Style.getMarginLeft(el); }
+qx.dom.Location.getClientOuterTop    = function(el) { return qx.dom.Location.getClientBoxTop(el)    - qx.dom.Style.getMarginTop(el); }
+qx.dom.Location.getClientOuterRight  = function(el) { return qx.dom.Location.getClientBoxRight(el)  + qx.dom.Style.getMarginRight(el); }
+qx.dom.Location.getClientOuterBottom = function(el) { return qx.dom.Location.getClientBoxBottom(el) + qx.dom.Style.getMarginBottom(el); }
+
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.dom.Location.getClientBoxLeft   = function(el) { return el.getBoundingClientRect().left; }
+  qx.dom.Location.getClientBoxTop    = function(el) { return el.getBoundingClientRect().top; }
+
+  qx.dom.Location.getPageBoxLeft     = function(el) { return qx.dom.Location.getClientBoxLeft(el)  + qx.dom.Scroll.getLeftSum(el); }
+  qx.dom.Location.getPageBoxTop      = function(el) { return qx.dom.Location.getClientBoxTop(el)   + qx.dom.Scroll.getTopSum(el); }
+}
+else if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.dom.Location.getClientBoxLeft   = function(el) { return qx.dom.Location.getClientAreaLeft(el) - qx.dom.Style.getBorderLeft(el); }
+  qx.dom.Location.getClientBoxTop    = function(el) { return qx.dom.Location.getClientAreaTop(el)  - qx.dom.Style.getBorderTop(el); }
+
+  qx.dom.Location.getPageBoxLeft     = function(el) { return qx.dom.Location.getPageAreaLeft(el)   - qx.dom.Style.getBorderLeft(el); }
+  qx.dom.Location.getPageBoxTop      = function(el) { return qx.dom.Location.getPageAreaTop(el)    - qx.dom.Style.getBorderTop(el); }
+}
+else
+{
+  qx.dom.Location.getPageBoxLeft = function(el)
+  {
+    var sum = el.offsetLeft;
+    while (el.tagName.toLowerCase() != "body")
+    {
+      el = el.offsetParent;
+      sum += el.offsetLeft;
+    }
+
+    return sum;
+  }
+
+  qx.dom.Location.getPageBoxTop = function(el)
+  {
+    var sum = el.offsetTop;
+    while (el.tagName.toLowerCase() != "body")
+    {
+      el = el.offsetParent;
+      sum += el.offsetTop;
+    }
+
+    return sum;
+  }
+
+  qx.dom.Location.getClientBoxLeft = function(el)
+  {
+    var sum = el.offsetLeft;
+    while (el.tagName.toLowerCase() != "body")
+    {
+      el = el.offsetParent;
+      sum += el.offsetLeft - el.scrollLeft;
+    }
+
+    return sum;
+  }
+
+  qx.dom.Location.getClientBoxTop = function(el)
+  {
+    var sum = el.offsetTop;
+    while (el.tagName.toLowerCase() != "body")
+    {
+      el = el.offsetParent;
+      sum += el.offsetTop - el.scrollTop;
+    }
+
+    return sum;
+  }
+}
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.dom.Location.getClientBoxRight  = function(el) { return el.getBoundingClientRect().right; }
+  qx.dom.Location.getClientBoxBottom = function(el) { return el.getBoundingClientRect().bottom; }
+
+  qx.dom.Location.getPageBoxRight    = function(el) { return qx.dom.Location.getClientBoxRight(el)  + qx.dom.Scroll.getLeftSum(el); }
+  qx.dom.Location.getPageBoxBottom   = function(el) { return qx.dom.Location.getClientBoxBottom(el) + qx.dom.Scroll.getTopSum(el);  }
+}
+else
+{
+  qx.dom.Location.getClientBoxRight  = function(el) { return qx.dom.Location.getClientBoxLeft(el) + qx.dom.Dimension.getBoxWidth(el); }
+  qx.dom.Location.getClientBoxBottom = function(el) { return qx.dom.Location.getClientBoxTop(el)  + qx.dom.Dimension.getBoxHeight(el); }
+
+  qx.dom.Location.getPageBoxRight    = function(el) { return qx.dom.Location.getPageBoxLeft(el)   + qx.dom.Dimension.getBoxWidth(el); }
+  qx.dom.Location.getPageBoxBottom   = function(el) { return qx.dom.Location.getPageBoxTop(el)    + qx.dom.Dimension.getBoxHeight(el); }
+}
+
+if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.dom.Location.getPageAreaLeft = function(el) {
+    return el.ownerDocument.getBoxObjectFor(el).x;
+  }
+
+  qx.dom.Location.getPageAreaTop = function(el) {
+    return el.ownerDocument.getBoxObjectFor(el).y;
+  }
+
+  // We need to subtract the scroll position of all parent containers (bug #186229).
+  qx.dom.Location.getClientAreaLeft = function(el) {
+    return qx.dom.Location.getPageAreaLeft(el) - qx.dom.Scroll.getLeftSum(el);
+  }
+
+  // We need to subtract the scroll position of all parent containers (bug #186229).
+  qx.dom.Location.getClientAreaTop = function(el) {
+    return qx.dom.Location.getPageAreaTop(el) - qx.dom.Scroll.getTopSum(el);
+  }
+}
+else
+{
+  qx.dom.Location.getClientAreaLeft = function(el) { return qx.dom.Location.getClientBoxLeft(el) + qx.dom.Style.getBorderLeft(el); }
+  qx.dom.Location.getClientAreaTop  = function(el) { return qx.dom.Location.getClientBoxTop(el)  + qx.dom.Style.getBorderTop(el); }
+
+  qx.dom.Location.getPageAreaLeft = function(el) { return qx.dom.Location.getPageBoxLeft(el) + qx.dom.Style.getBorderLeft(el); }
+  qx.dom.Location.getPageAreaTop  = function(el) { return qx.dom.Location.getPageBoxTop(el)  + qx.dom.Style.getBorderTop(el); }
+}
+
+
+
+qx.dom.Location.getClientAreaRight   = function(el) { return qx.dom.Location.getClientAreaLeft(el)  + qx.dom.Dimension.getAreaWidth(el);  }
+qx.dom.Location.getClientAreaBottom  = function(el) { return qx.dom.Location.getClientAreaTop(el)   + qx.dom.Dimension.getAreaHeight(el); }
+
+qx.dom.Location.getPageAreaRight     = function(el) { return qx.dom.Location.getPageAreaLeft(el)    + qx.dom.Dimension.getAreaWidth(el);  }
+qx.dom.Location.getPageAreaBottom    = function(el) { return qx.dom.Location.getPageAreaTop(el)     + qx.dom.Dimension.getAreaHeight(el); }
+
+
+
+
+qx.dom.Location.getClientInnerLeft   = function(el) { return qx.dom.Location.getClientAreaLeft(el)  + qx.dom.Style.getPaddingLeft(el); }
+qx.dom.Location.getClientInnerTop    = function(el) { return qx.dom.Location.getClientAreaTop(el)   + qx.dom.Style.getPaddingTop(el);  }
+qx.dom.Location.getClientInnerRight  = function(el) { return qx.dom.Location.getClientInnerLeft(el) + qx.dom.Dimension.getInnerWidth(el);  }
+qx.dom.Location.getClientInnerBottom = function(el) { return qx.dom.Location.getClientInnerTop(el)  + qx.dom.Dimension.getInnerHeight(el); }
+
+qx.dom.Location.getPageInnerLeft     = function(el) { return qx.dom.Location.getPageAreaLeft(el)    + qx.dom.Style.getPaddingLeft(el); }
+qx.dom.Location.getPageInnerTop      = function(el) { return qx.dom.Location.getPageAreaTop(el)     + qx.dom.Style.getPaddingTop(el);  }
+qx.dom.Location.getPageInnerRight    = function(el) { return qx.dom.Location.getPageInnerLeft(el)   + qx.dom.Dimension.getInnerWidth(el);  }
+qx.dom.Location.getPageInnerBottom   = function(el) { return qx.dom.Location.getPageInnerTop(el)    + qx.dom.Dimension.getInnerHeight(el); }
+
+
+// Screen
+if (qx.sys.Client.getInstance().isGecko())
+{
+  /*
+    screenX and screenY seem to return the distance to the box
+    and not to the area. Confusing, especially as the x and y properties
+    of the BoxObject return the distance to the area.
+  */
+
+  qx.dom.Location.getScreenBoxLeft = function(el)
+  {
+    // We need to subtract the scroll position of all
+    // parent containers (bug #186229).
+    var sum = 0;
+    var p = el.parentNode;
+    while (p.nodeType == 1) {
+      sum += p.scrollLeft;
+      p = p.parentNode;
+    }
+
+    return el.ownerDocument.getBoxObjectFor(el).screenX - sum;
+  }
+
+  qx.dom.Location.getScreenBoxTop = function(el)
+  {
+    // We need to subtract the scroll position of all
+    // parent containers (bug #186229).
+    var sum = 0;
+    var p = el.parentNode;
+    while (p.nodeType == 1) {
+      sum += p.scrollTop;
+      p = p.parentNode;
+    }
+
+    return el.ownerDocument.getBoxObjectFor(el).screenY - sum;
+  }
+}
+else
+{
+  // Hope this works in khtml, too (opera 7.6p3 seems to be ok)
+  qx.dom.Location.getScreenBoxLeft = function(el) { return qx.dom.Location.getScreenDocumentLeft(el) + qx.dom.Location.getPageBoxLeft(el); }
+  qx.dom.Location.getScreenBoxTop  = function(el) { return qx.dom.Location.getScreenDocumentTop(el) + qx.dom.Location.getPageBoxTop(el); }
+}
+
+qx.dom.Location.getScreenBoxRight    = function(el) { return qx.dom.Location.getScreenBoxLeft(el)    + qx.dom.Dimension.getBoxWidth(el); }
+qx.dom.Location.getScreenBoxBottom   = function(el) { return qx.dom.Location.getScreenBoxTop(el)     + qx.dom.Dimension.getBoxHeight(el); }
+
+qx.dom.Location.getScreenOuterLeft   = function(el) { return qx.dom.Location.getScreenBoxLeft(el)    - qx.dom.Style.getMarginLeft(el); }
+qx.dom.Location.getScreenOuterTop    = function(el) { return qx.dom.Location.getScreenBoxTop(el)     - qx.dom.Style.getMarginTop(el); }
+qx.dom.Location.getScreenOuterRight  = function(el) { return qx.dom.Location.getScreenBoxRight(el)   + qx.dom.Style.getMarginRight(el); }
+qx.dom.Location.getScreenOuterBottom = function(el) { return qx.dom.Location.getScreenBoxBottom(el)  + qx.dom.Style.getMarginBottom(el); }
+
+qx.dom.Location.getScreenAreaLeft    = function(el) { return qx.dom.Location.getScreenBoxLeft(el)    + qx.dom.Dimension.getInsetLeft(el); }
+qx.dom.Location.getScreenAreaTop     = function(el) { return qx.dom.Location.getScreenBoxTop(el)     + qx.dom.Dimension.getInsetTop(el); }
+qx.dom.Location.getScreenAreaRight   = function(el) { return qx.dom.Location.getScreenBoxRight(el)   - qx.dom.Dimension.getInsetRight(el); }
+qx.dom.Location.getScreenAreaBottom  = function(el) { return qx.dom.Location.getScreenBoxBottom(el)  - qx.dom.Dimension.getInsetBottom(el); }
+
+qx.dom.Location.getScreenInnerLeft   = function(el) { return qx.dom.Location.getScreenAreaLeft(el)   + qx.dom.Style.getPaddingLeft(el); }
+qx.dom.Location.getScreenInnerTop    = function(el) { return qx.dom.Location.getScreenAreaTop(el)    + qx.dom.Style.getPaddingTop(el); }
+qx.dom.Location.getScreenInnerRight  = function(el) { return qx.dom.Location.getScreenAreaRight(el)  - qx.dom.Style.getPaddingRight(el); }
+qx.dom.Location.getScreenInnerBottom = function(el) { return qx.dom.Location.getScreenAreaBottom(el) - qx.dom.Style.getPaddingBottom(el); }
+
+
+if (qx.sys.Client.getInstance().isGecko())
+{
+  /*
+    Notice:
+      This doesn't work like the mshtml method:
+      el.ownerDocument.defaultView.screenX;
+  */
+
+  // Tested in Gecko 1.7.5
+  qx.dom.Location.getScreenDocumentLeft = function(el) { return qx.dom.Location.getScreenOuterLeft(el.ownerDocument.body); }
+  qx.dom.Location.getScreenDocumentTop = function(el) { return qx.dom.Location.getScreenOuterTop(el.ownerDocument.body); }
+  qx.dom.Location.getScreenDocumentRight = function(el) { return qx.dom.Location.getScreenOuterRight(el.ownerDocument.body); }
+  qx.dom.Location.getScreenDocumentBottom = function(el) { return qx.dom.Location.getScreenOuterBottom(el.ownerDocument.body); }
+}
+else
+{
+  // Tested in Opera 7.6b3 and Mshtml 6.0 (XP-SP2)
+  // What's up with khtml (Safari/Konq)?
+  qx.dom.Location.getScreenDocumentLeft = function(el) { return el.document.parentWindow.screenLeft; }
+  qx.dom.Location.getScreenDocumentTop = function(el) { return el.document.parentWindow.screenTop; }
+  qx.dom.Location.getScreenDocumentRight = function(el) {}
+  qx.dom.Location.getScreenDocumentBottom = function(el) {}
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Node.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Node.js
new file mode 100644 (file)
index 0000000..c4b02ea
--- /dev/null
@@ -0,0 +1,38 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.dom.Node",
+{
+  ELEMENT : 1,
+  ATTRIBUTE : 2,
+  TEXT : 3,
+  CDATA_SECTION : 4,
+  ENTITY_REFERENCE : 5,
+  ENTITY : 6,
+  PROCESSING_INSTRUCTION : 7,
+  COMMENT : 8,
+  DOCUMENT : 9,
+  DOCUMENT_TYPE : 10,
+  DOCUMENT_FRAGMENT : 11,
+  NOTATION : 12
+});
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Offset.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Offset.js
new file mode 100644 (file)
index 0000000..74e653b
--- /dev/null
@@ -0,0 +1,119 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#require(qx.sys.Client)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.dom.Offset");
+
+/*
+Mozilla seems to be a little buggy here.
+Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.5) Gecko/20041108 Firefox/1.0
+
+It calculates some borders and/or paddings to the offsetProperties.
+*/
+if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.dom.Offset.getLeft = function(el)
+  {
+    var val = el.offsetLeft;
+    var pa = el.parentNode;
+
+    var pose = qx.dom.Style.getStyleProperty(el, "position");
+    var posp = qx.dom.Style.getStyleProperty(pa, "position");
+
+    // If element is positioned non-static: Substract the border of the element
+    if (pose != "absolute" && pose != "fixed") {
+      val -= qx.dom.Style.getBorderLeft(pa);
+    }
+
+    // If parent is positioned static: Substract the border of the first
+    // parent element which is ab positioned non-static.
+    if (posp != "absolute" && posp != "fixed")
+    {
+      while(pa)
+      {
+        pa = pa.parentNode;
+
+        if (!pa || qx.util.Validation.isInvalidString(pa.tagName)) {
+          break;
+        }
+
+        var posi = qx.dom.Style.getStyleProperty(pa, "position");
+
+        if (posi == "absolute" || posi == "fixed") {
+          val -= qx.dom.Style.getBorderLeft(pa) + qx.dom.Style.getPaddingLeft(pa);
+          break;
+        }
+      }
+    }
+
+    return val;
+  }
+
+  qx.dom.Offset.getTop = function(el)
+  {
+    var val = el.offsetTop;
+    var pa = el.parentNode;
+
+    var pose = qx.dom.Style.getStyleProperty(el, "position");
+    var posp = qx.dom.Style.getStyleProperty(pa, "position");
+
+    // If element is positioned non-static: Substract the border of the element
+    if (pose != "absolute" && pose != "fixed") {
+      val -= qx.dom.Style.getBorderTop(pa);
+    }
+
+    // If parent is positioned static: Substract the border of the first
+    // parent element which is ab positioned non-static.
+    if (posp != "absolute" && posp != "fixed")
+    {
+      while(pa)
+      {
+        pa = pa.parentNode;
+
+        if (!pa || qx.util.Validation.isInvalidString(pa.tagName)) {
+          break;
+        }
+
+        var posi = qx.dom.Style.getStyleProperty(pa, "position");
+
+        if (posi == "absolute" || posi == "fixed") {
+          val -= qx.dom.Style.getBorderTop(pa) + qx.dom.Style.getPaddingTop(pa);
+          break;
+        }
+      }
+    }
+
+    return val;
+  }
+}
+else
+{
+  qx.dom.Offset.getLeft = function(el) {
+    return el.offsetLeft;
+  }
+
+  qx.dom.Offset.getTop = function(el) {
+    return el.offsetTop;
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Scroll.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Scroll.js
new file mode 100644 (file)
index 0000000..5c38084
--- /dev/null
@@ -0,0 +1,53 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.dom.Scroll");
+
+qx.dom.Scroll.getLeftSum = function(el)
+{
+  var sum = 0;
+  var p = el.parentNode;
+
+  while (p.nodeType == 1)
+  {
+    sum += p.scrollLeft;
+    p = p.parentNode;
+  }
+
+  return sum;
+}
+
+qx.dom.Scroll.getTopSum = function(el)
+{
+  var sum = 0;
+  var p = el.parentNode;
+
+  while (p.nodeType == 1)
+  {
+    sum += p.scrollTop;
+    p = p.parentNode;
+  }
+
+  return sum;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/ScrollIntoView.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/ScrollIntoView.js
new file mode 100644 (file)
index 0000000..d045524
--- /dev/null
@@ -0,0 +1,175 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#require(qx.dom.Style)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.dom.ScrollIntoView");
+
+// Internet Explorer has invented scrollIntoView, but does not behave the same like in Mozilla (which would be better)
+// Mozilla has a native well working method scrollIntoView
+// Safari does not support scrollIntoView (but it can be found in Webkit since May 2005)
+// Opera does not support scrollIntoView
+
+qx.dom.BODY_TAG_NAME = "body";
+
+qx.dom.ScrollIntoView.scrollX = function(vElement, vAlignLeft)
+{
+  var vParentWidth, vParentScrollLeft, vWidth, vHasScroll;
+
+  var vParent = vElement.parentNode;
+  var vOffset = vElement.offsetLeft;
+  var vWidth = vElement.offsetWidth;
+
+  while(vParent)
+  {
+    switch(qx.dom.Style.getStyleProperty(vParent, "overflow"))
+    {
+      case "scroll":
+      case "auto":
+      case "-moz-scrollbars-horizontal":
+        vHasScroll = true;
+        break;
+
+      default:
+        switch(qx.dom.Style.getStyleProperty(vParent, "overflowX"))
+        {
+          case "scroll":
+          case "auto":
+            vHasScroll = true;
+            break;
+
+          default:
+            vHasScroll = false;
+        }
+    }
+
+    if (vHasScroll)
+    {
+      vParentWidth = vParent.clientWidth;
+      vParentScrollLeft = vParent.scrollLeft;
+
+      if (vAlignLeft)
+      {
+        vParent.scrollLeft = vOffset;
+      }
+      else if (vAlignLeft == false)
+      {
+        vParent.scrollLeft = vOffset + vWidth - vParentWidth;
+      }
+      else if (vWidth > vParentWidth || vOffset < vParentScrollLeft)
+      {
+        vParent.scrollLeft = vOffset;
+      }
+      else if ((vOffset + vWidth) > (vParentScrollLeft + vParentWidth))
+      {
+        vParent.scrollLeft = vOffset + vWidth - vParentWidth;
+      }
+
+      vOffset = vParent.offsetLeft;
+      vWidth = vParent.offsetWidth;
+    }
+    else
+    {
+      vOffset += vParent.offsetLeft;
+    }
+
+    if (vParent.tagName.toLowerCase() == qx.dom.BODY_TAG_NAME) {
+      break;
+    }
+
+    vParent = vParent.parentNode;
+  }
+
+  return true;
+}
+
+qx.dom.ScrollIntoView.scrollY = function(vElement, vAlignTop)
+{
+  var vParentHeight, vParentScrollTop, vHeight, vHasScroll;
+
+  var vParent = vElement.parentNode;
+  var vOffset = vElement.offsetTop;
+  var vHeight = vElement.offsetHeight;
+
+  while(vParent)
+  {
+    switch(qx.dom.Style.getStyleProperty(vParent, "overflow"))
+    {
+      case "scroll":
+      case "auto":
+      case "-moz-scrollbars-vertical":
+        vHasScroll = true;
+        break;
+
+      default:
+        switch(qx.dom.Style.getStyleProperty(vParent, "overflowY"))
+        {
+          case "scroll":
+          case "auto":
+            vHasScroll = true;
+            break;
+
+          default:
+            vHasScroll = false;
+        }
+    }
+
+    if (vHasScroll)
+    {
+      vParentHeight = vParent.clientHeight;
+      vParentScrollTop = vParent.scrollTop;
+
+      if (vAlignTop)
+      {
+        vParent.scrollTop = vOffset;
+      }
+      else if (vAlignTop == false)
+      {
+        vParent.scrollTop = vOffset + vHeight - vParentHeight;
+      }
+      else if (vHeight > vParentHeight || vOffset < vParentScrollTop)
+      {
+        vParent.scrollTop = vOffset;
+      }
+      else if ((vOffset + vHeight) > (vParentScrollTop + vParentHeight))
+      {
+        vParent.scrollTop = vOffset + vHeight - vParentHeight;
+      }
+
+      vOffset = vParent.offsetTop;
+      vHeight = vParent.offsetHeight;
+    }
+    else
+    {
+      vOffset += vParent.offsetTop;
+    }
+
+    if (vParent.tagName.toLowerCase() == qx.dom.BODY_TAG_NAME) {
+      break;
+    }
+
+    vParent = vParent.parentNode;
+  }
+
+  return true;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Style.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Style.js
new file mode 100644 (file)
index 0000000..b003f0e
--- /dev/null
@@ -0,0 +1,122 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#require(qx.sys.Client)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.dom.Style");
+
+if (Boolean(document.defaultView) && Boolean(document.defaultView.getComputedStyle))
+{
+  qx.dom.Style.getStylePropertySure = function(el, prop) { return !el ? null : el.ownerDocument ? el.ownerDocument.defaultView.getComputedStyle(el, "")[prop] : el.style[prop]; }
+
+  qx.dom.Style.getStyleProperty = function(el, prop)
+  {
+    try
+    {
+      return el.ownerDocument.defaultView.getComputedStyle(el, "")[prop];
+    }
+    catch(ex)
+    {
+      throw new Error("Could not evaluate computed style: " + el + "[" + prop + "]: " + ex);
+    }
+  }
+}
+else if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.dom.Style.getStyleProperty = function(el, prop)
+  {
+    try
+    {
+      return el.currentStyle[prop];
+    }
+    catch(ex)
+    {
+      throw new Error("Could not evaluate computed style: " + el + "[" + prop + "]: " + ex);
+    }
+  }
+
+  qx.dom.Style.getStylePropertySure = function(el, prop)
+  {
+    try
+    {
+      if (!el) {
+        return null;
+      }
+
+      if (el.parentNode && el.currentStyle)
+      {
+        return el.currentStyle[prop];
+      }
+      else
+      {
+        var v1 = el.runtimeStyle[prop];
+
+        if (v1 != null && typeof v1 != "undefined" && v1 != "") {
+          return v1;
+        }
+
+        return el.style[prop];
+      }
+    }
+    catch(ex)
+    {
+      throw new Error("Could not evaluate computed style: " + el + "[" + prop + "]: " + ex);
+    }
+  }
+}
+else
+{
+  qx.dom.Style.getStylePropertySure = function(el, prop) { return !el ? null : el.style[prop]; }
+
+  qx.dom.Style.getStyleProperty = function(el, prop)
+  {
+    try
+    {
+      return el.style[prop];
+    }
+    catch(ex)
+    {
+      throw new Error("Could not evaluate computed style: " + el + "[" + prop + "]");
+    }
+  }
+}
+
+
+qx.dom.Style.getStyleSize = function(el, prop) { return parseInt(qx.dom.Style.getStyleProperty(el, prop)) || 0; }
+
+
+// Properties
+qx.dom.Style.getMarginLeft    = function(el) { return qx.dom.Style.getStyleSize(el, "marginLeft"); }
+qx.dom.Style.getMarginTop     = function(el) { return qx.dom.Style.getStyleSize(el, "marginTop"); }
+qx.dom.Style.getMarginRight   = function(el) { return qx.dom.Style.getStyleSize(el, "marginRight"); }
+qx.dom.Style.getMarginBottom  = function(el) { return qx.dom.Style.getStyleSize(el, "marginBottom"); }
+
+qx.dom.Style.getPaddingLeft   = function(el) { return qx.dom.Style.getStyleSize(el, "paddingLeft"); }
+qx.dom.Style.getPaddingTop    = function(el) { return qx.dom.Style.getStyleSize(el, "paddingTop"); }
+qx.dom.Style.getPaddingRight  = function(el) { return qx.dom.Style.getStyleSize(el, "paddingRight"); }
+qx.dom.Style.getPaddingBottom = function(el) { return qx.dom.Style.getStyleSize(el, "paddingBottom"); }
+
+qx.dom.Style.getBorderLeft    = function(el) { return qx.dom.Style.getStyleProperty(el, "borderLeftStyle")   == "none" ? 0 : qx.dom.Style.getStyleSize(el, "borderLeftWidth"); }
+qx.dom.Style.getBorderTop     = function(el) { return qx.dom.Style.getStyleProperty(el, "borderTopStyle")    == "none" ? 0 : qx.dom.Style.getStyleSize(el, "borderTopWidth"); }
+qx.dom.Style.getBorderRight   = function(el) { return qx.dom.Style.getStyleProperty(el, "borderRightStyle")  == "none" ? 0 : qx.dom.Style.getStyleSize(el, "borderRightWidth"); }
+qx.dom.Style.getBorderBottom  = function(el) { return qx.dom.Style.getStyleProperty(el, "borderBottomStyle") == "none" ? 0 : qx.dom.Style.getStyleSize(el, "borderBottomWidth"); }
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/StyleSheet.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/StyleSheet.js
new file mode 100644 (file)
index 0000000..be51ad5
--- /dev/null
@@ -0,0 +1,308 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * Andreas Junghans (lucidcake)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#require(qx.sys.Client)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.dom.StyleSheet");
+
+
+/**
+ * create a new Stylesheet node and append it to the document
+ *
+ * @param vCssText {string} optional string of css rules
+ */
+qx.dom.StyleSheet.createElement = function(vCssText) {};
+if (document.createStyleSheet) // IE 4+
+{
+  qx.dom.StyleSheet.createElement = function(vCssText)
+  {
+    var vSheet = document.createStyleSheet();
+
+    if (vCssText) {
+      vSheet.cssText = vCssText;
+    }
+
+    return vSheet;
+  }
+}
+else // FF, Opera, Safari
+{
+  qx.dom.StyleSheet.createElement = function(vCssText)
+  {
+    var vElement = document.createElement("style");
+    vElement.type = "text/css";
+
+    // Safari 2.0 doesn't like empty stylesheets
+    vElement.appendChild(document.createTextNode(vCssText || "body {}"));
+
+    document.getElementsByTagName("head")[0].appendChild(vElement);
+
+    if (vElement.sheet) {
+      return vElement.sheet;
+    } else {
+      // Safari 2.0 doesn't support element.sheet so we neet a workaround
+      var styles = document.styleSheets;
+      for (var i=styles.length-1; i>=0; i--) {
+        if (styles[i].ownerNode == vElement) {
+          return styles[i];
+        }
+      }
+    }
+    throw "Error: Could not get a reference to the sheet object";
+  }
+}
+
+
+/**
+ * insert a new CSS rule into a given Stylesheet
+ *
+ * @param vSheet     {Object} the target Stylesheet object
+ * @param vSelector {string}
+ * @param vStyle     {string}
+ */
+qx.dom.StyleSheet.addRule = function(vSheet, vSelector, vStyle) {};
+if (document.createStyleSheet) // IE 4+
+{
+  qx.dom.StyleSheet.addRule = function(vSheet, vSelector, vStyle) {
+    vSheet.addRule(vSelector, vStyle);
+  };
+}
+else if (qx.sys.Client.getInstance().isSafari2()) // insertRule in Safari 2 doesn't work
+{
+  qx.dom.StyleSheet.addRule = function(vSheet, vSelector, vStyle) {
+    if (!vSheet._qxRules) {
+      vSheet._qxRules = {};
+    }
+    if (!vSheet._qxRules[vSelector]) {
+      var ruleNode = document.createTextNode(vSelector + "{" + vStyle + "}");
+      vSheet.ownerNode.appendChild(ruleNode);
+      vSheet._qxRules[vSelector] = ruleNode;
+    }
+  };
+}
+else // FF, Opera
+{
+  qx.dom.StyleSheet.addRule = function(vSheet, vSelector, vStyle) {
+    vSheet.insertRule(vSelector + "{" + vStyle + "}", vSheet.cssRules.length);
+  };
+}
+
+
+/**
+ * remove a CSS rule from a stylesheet
+ *
+ * @param vSheet     {Object} the Stylesheet
+ * @param vSelector {string} the Selector of the rule to remove
+ */
+qx.dom.StyleSheet.removeRule = function(vSheet, vSelector) {};
+if (document.createStyleSheet) // IE 4+
+{
+  qx.dom.StyleSheet.removeRule = function(vSheet, vSelector)
+  {
+    var vRules = vSheet.rules;
+    var vLength = vRules.length;
+
+    for (var i=vLength-1; i>=0; i--)
+    {
+      if (vRules[i].selectorText == vSelector) {
+        vSheet.removeRule(i);
+      }
+    }
+  }
+}
+else if (qx.sys.Client.getInstance().isSafari2()) // removeRule in Safari 2 doesn't work
+{
+  qx.dom.StyleSheet.removeRule = function(vSheet, vSelector)
+  {
+    var warn = function() {
+      qx.dev.log.Logger.ROOT_LOGGER.warn("In Safari/Webkit you can only remove rules that are created using qx.dom.StyleSheet.addRule");
+    }
+    if (!vSheet._qxRules) {
+      warn();
+    }
+    var ruleNode = vSheet._qxRules[vSelector];
+    if (ruleNode) {
+      vSheet.ownerNode.removeChild(ruleNode);
+      vSheet._qxRules[vSelector] = null;
+    } else {
+      warn();
+    }
+  }
+}
+else
+{
+  qx.dom.StyleSheet.removeRule = function(vSheet, vSelector)
+  {
+    var vRules = vSheet.cssRules;
+    var vLength = vRules.length;
+
+    for (var i=vLength-1; i>=0; i--)
+    {
+      if (vRules[i].selectorText == vSelector) {
+        vSheet.deleteRule(i);
+      }
+    }
+  }
+}
+
+
+/**
+ * remove all CSS rules from a stylesheet
+ *
+ * @param vSheet {Object}
+ */
+qx.dom.StyleSheet.removeAllRules = function(vSheet) {};
+if (document.createStyleSheet) // IE 4+
+{
+  qx.dom.StyleSheet.removeAllRules = function(vSheet)
+  {
+    var vRules = vSheet.rules;
+    var vLength = vRules.length;
+
+    for (var i=vLength-1; i>=0; i--) {
+      vSheet.removeRule(i);
+    }
+  }
+}
+else if (qx.sys.Client.getInstance().isSafari2()) // removeRule in Safari 2 doesn't work
+{
+  qx.dom.StyleSheet.removeAllRules = function(vSheet)
+  {
+    var node = vSheet.ownerNode;
+    var rules = node.childNodes;
+    while (rules.length > 0) {
+      node.removeChild(rules[0]);
+    }
+  }
+}
+else // FF, etc
+{
+  qx.dom.StyleSheet.removeAllRules = function(vSheet)
+  {
+    var vRules = vSheet.cssRules;
+    var vLength = vRules.length;
+
+    for (var i=vLength-1; i>=0; i--) {
+      vSheet.deleteRule(i);
+    }
+  }
+}
+
+
+
+// TODO import functions are not working crossbrowser (Safari) !!
+// see CSS_1.html test
+
+/**
+ * add an import of an external CSS file to a stylesheet
+ * @param vSheet {Object}
+ * @param vUrl   {string}
+ */
+qx.dom.StyleSheet.addImport = function(vSheet, vUrl) {};
+if (document.createStyleSheet) // IE 4+
+{
+  qx.dom.StyleSheet.addImport = function(vSheet, vUrl) {
+    vSheet.addImport(vUrl);
+  }
+}
+else  if (qx.sys.Client.getInstance().isSafari2()) // insertRule in Safari 2 doesn't work
+{
+  qx.dom.StyleSheet.addImport = function(vSheet, vUrl) {
+    vSheet.ownerNode.appendChild(document.createTextNode('@import "' + vUrl + '";'));
+  }
+}
+else // FF, etc
+{
+  qx.dom.StyleSheet.addImport = function(vSheet, vUrl) {
+    vSheet.insertRule('@import "' + vUrl + '";', vSheet.cssRules.length);
+  }
+}
+
+
+/**
+ * removes an import from a stylesheet
+ *
+ * @param vSheet {Object}
+ * @param vUrl    {string}  URL of the importet CSS file
+ */
+qx.dom.StyleSheet.removeImport = function(vSheet, vUrl) {};
+if (document.createStyleSheet) // IE 4+
+{
+  qx.dom.StyleSheet.removeImport = function(vSheet, vUrl) {
+    var vImports = vSheet.imports;
+    var vLength = vImports.length;
+
+    for (var i=vLength-1; i>=0; i--) {
+      if (vImports[i].href == vUrl) {
+        vSheet.removeImport(i);
+      }
+    }
+  }
+}
+else // FF, etc
+{
+  qx.dom.StyleSheet.removeImport = function(vSheet, vUrl) {
+    var vRules = vSheet.cssRules;
+    var vLength = vRules.length;
+
+    for (var i=vLength-1; i>=0; i--) {
+      if (vRules[i].href == vUrl) {
+        vSheet.deleteRule(i);
+      }
+    }
+  }
+}
+
+
+/**
+ * remove all imports from a stylesheet
+ *
+ * @param vSheet {Object}
+ */
+qx.dom.StyleSheet.removeAllImports = function(vSheet) {};
+if (document.createStyleSheet) // IE 4+
+{
+  qx.dom.StyleSheet.removeAllImports = function(vSheet) {
+    var vImports = vSheet.imports;
+    var vLength = vImports.length;
+
+    for (var i=vLength-1; i>=0; i--) {
+      vSheet.removeImport(i);
+    }
+  }
+}
+else // FF, etc
+{
+  qx.dom.StyleSheet.removeAllImports = function(vSheet) {
+    var vRules = vSheet.cssRules;
+    var vLength = vRules.length;
+
+    for (var i=vLength-1; i>=0; i--) {
+      if (vRules[i].type == vRules[i].IMPORT_RULE) {
+        vSheet.deleteRule(i);
+      }
+    }
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Window.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Window.js
new file mode 100644 (file)
index 0000000..21f94d1
--- /dev/null
@@ -0,0 +1,102 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#require(qx.sys.Client)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.dom.Window");
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.dom.Window.getInnerWidth = function(w)
+  {
+    if (w.document.documentElement && w.document.documentElement.clientWidth)
+    {
+      return w.document.documentElement.clientWidth;
+    }
+    else if (w.document.body)
+    {
+      return w.document.body.clientWidth;
+    }
+
+    return 0;
+  }
+
+  qx.dom.Window.getInnerHeight = function(w)
+  {
+    if (w.document.documentElement && w.document.documentElement.clientHeight)
+    {
+      return w.document.documentElement.clientHeight;
+    }
+    else if (w.document.body)
+    {
+      return w.document.body.clientHeight;
+    }
+
+    return 0;
+  }
+
+  qx.dom.Window.getScrollLeft = function(w)
+  {
+    if (w.document.documentElement && w.document.documentElement.scrollLeft)
+    {
+      return w.document.documentElement.scrollLeft;
+    }
+    else if (w.document.body)
+    {
+      return w.document.body.scrollTop;
+    }
+
+    return 0;
+  }
+
+  qx.dom.Window.getScrollTop = function(w)
+  {
+    if (w.document.documentElement && w.document.documentElement.scrollTop)
+    {
+      return w.document.documentElement.scrollTop;
+    }
+    else if (w.document.body)
+    {
+      return w.document.body.scrollTop;
+    }
+
+    return 0;
+  }
+}
+else
+{
+  qx.dom.Window.getInnerWidth = function(w) {
+    return w.innerWidth;
+  }
+
+  qx.dom.Window.getInnerHeight = function(w) {
+    return w.innerHeight;
+  }
+
+  qx.dom.Window.getScrollLeft = function(w) {
+    return w.document.body.scrollLeft;
+  }
+
+  qx.dom.Window.getScrollTop = function(w) {
+    return w.document.body.scrollTop;
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/DragAndDropHandler.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/DragAndDropHandler.js
new file mode 100644 (file)
index 0000000..d1f5ba4
--- /dev/null
@@ -0,0 +1,846 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_dragdrop)
+
+************************************************************************ */
+
+/**
+ * This manager (singleton) manage all drag and drop handling of a qx.core.Init instance.
+ *
+ * @event dragdrop {qx.event.type.DragEvent}
+ * @event dragout {qx.event.type.DragEvent}
+ * @event dragover {qx.event.type.DragEvent}
+ * @event dragmove {qx.event.type.DragEvent}
+ * @event dragstart {qx.event.type.DragEvent}
+ * @event dragend {qx.event.type.DragEvent}
+ */
+qx.OO.defineClass("qx.event.handler.DragAndDropHandler", qx.manager.object.ObjectManager,
+function()
+{
+  qx.core.Target.call(this);
+
+  this._data = {};
+  this._actions = {};
+  this._cursors = {};
+
+  var vCursor;
+  for (var vAction in this._actionNames)
+  {
+    vCursor = this._cursors[vAction] = new qx.ui.basic.Image(this._cursorPath + vAction + "." + this._cursorFormat);
+    vCursor.setZIndex(1e8);
+  }
+});
+
+qx.OO.addProperty({ name : "sourceWidget", type : "object" });
+qx.OO.addProperty({ name : "destinationWidget", type : "object" });
+qx.OO.addProperty({ name : "cursor", type : "object" });
+qx.OO.addProperty({ name : "currentAction", type : "string" });
+
+qx.Proto._actionNames =
+{
+  move : "move",
+  copy : "copy",
+  alias : "alias",
+  nodrop : "nodrop"
+}
+
+qx.Proto._cursorPath = "widget/cursors/";
+qx.Proto._cursorFormat = "gif";
+qx.Proto._lastDestinationEvent = null;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  COMMON MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyDestinationWidget = function(propValue, propOldValue, propData)
+{
+  if (propValue)
+  {
+    propValue.dispatchEvent(new qx.event.type.DragEvent("dragdrop", this._lastDestinationEvent, propValue, this.getSourceWidget()));
+    this._lastDestinationEvent = null;
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DATA HANDLING
+---------------------------------------------------------------------------
+*/
+
+/*!
+Add data of mimetype.
+
+#param vMimeType[String]: A valid mimetype
+#param vData[Any]: Any value for the mimetype
+*/
+qx.Proto.addData = function(vMimeType, vData) {
+  this._data[vMimeType] = vData;
+}
+
+qx.Proto.getData = function(vMimeType) {
+  return this._data[vMimeType];
+}
+
+qx.Proto.clearData = function() {
+  this._data = {};
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MIME TYPE HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getDropDataTypes = function()
+{
+  var vDestination = this.getDestinationWidget();
+  var vDropTypes = [];
+
+  // If there is not any destination, simple return
+  if (!vDestination) {
+    return vDropTypes;
+  }
+
+  // Search for matching mimetypes
+  var vDropDataTypes = vDestination.getDropDataTypes();
+
+  for (var i=0, l=vDropDataTypes.length; i<l; i++) {
+    if (vDropDataTypes[i] in this._data) {
+      vDropTypes.push(vDropDataTypes[i]);
+    }
+  }
+
+  return vDropTypes;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  START DRAG
+---------------------------------------------------------------------------
+*/
+
+/*!
+This needed be called from any "dragstart" event to really start drag session.
+*/
+qx.Proto.startDrag = function()
+{
+  if (!this._dragCache) {
+    throw new Error("Invalid usage of startDrag. Missing dragInfo!");
+  }
+
+  // Update status flag
+  this._dragCache.dragHandlerActive = true;
+
+  // Internal storage of source widget
+  this.setSourceWidget(this._dragCache.sourceWidget);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  FIRE IMPLEMENTATION FOR USER EVENTS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._fireUserEvents = function(fromWidget, toWidget, e)
+{
+  if (fromWidget && fromWidget != toWidget && fromWidget.hasEventListeners("dragout")) {
+    fromWidget.dispatchEvent(new qx.event.type.DragEvent("dragout", e, fromWidget, toWidget), true);
+  }
+
+  if (toWidget)
+  {
+    if (fromWidget != toWidget && toWidget.hasEventListeners("dragover")) {
+      toWidget.dispatchEvent(new qx.event.type.DragEvent("dragover", e, toWidget, fromWidget), true);
+    }
+
+    if (toWidget.hasEventListeners("dragmove")) {
+      toWidget.dispatchEvent(new qx.event.type.DragEvent("dragmove", e, toWidget, null), true);
+    }
+  }
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HANDLER FOR MOUSE EVENTS
+---------------------------------------------------------------------------
+*/
+
+/*!
+This wraps the mouse events to custom handlers.
+*/
+qx.Proto.handleMouseEvent = function(e)
+{
+  switch (e.getType())
+  {
+    case "mousedown":
+      return this._handleMouseDown(e);
+
+    case "mouseup":
+      return this._handleMouseUp(e);
+
+    case "mousemove":
+      return this._handleMouseMove(e);
+  }
+}
+
+/*!
+This starts the core drag and drop session.
+
+To really get drag and drop working you need to define
+a function which you attach to "dragstart"-event, which
+invokes at least this.startDrag()
+*/
+qx.Proto._handleMouseDown = function(e)
+{
+  if (e.getDefaultPrevented()) {
+    return;
+  }
+
+  // Store initial dragCache
+  this._dragCache =
+  {
+    startScreenX : e.getScreenX(),
+    startScreenY : e.getScreenY(),
+
+    pageX : e.getPageX(),
+    pageY : e.getPageY(),
+
+    sourceWidget : e.getTarget(),
+    sourceTopLevel : e.getTarget().getTopLevelWidget(),
+
+    dragHandlerActive : false,
+    hasFiredDragStart : false
+  }
+}
+
+
+/*!
+Handler for mouse move events
+*/
+
+qx.Proto._handleMouseMove = function(e)
+{
+  // Return if dragCache was not filled before
+  if (!this._dragCache) {
+    return;
+  }
+
+  /*
+    Default handling if drag handler is activated
+  */
+
+  if (this._dragCache.dragHandlerActive)
+  {
+    // Update page coordinates
+    this._dragCache.pageX = e.getPageX();
+    this._dragCache.pageY = e.getPageY();
+
+    // Get current target
+    var currentDropTarget = this.getDropTarget(e);
+
+    // Update action
+    this.setCurrentAction(currentDropTarget ? this._evalNewAction(e.getShiftKey(), e.getCtrlKey(), e.getAltKey()) : null);
+
+    // Fire user events
+    this._fireUserEvents(this._dragCache.currentDropWidget, currentDropTarget, e);
+
+    // Store current widget
+    this._dragCache.currentDropWidget = currentDropTarget;
+
+    // Update cursor icon
+    this._renderCursor();
+  }
+
+  /*
+    Initial activation and fire of dragstart
+  */
+  else if (!this._dragCache.hasFiredDragStart)
+  {
+    if (Math.abs(e.getScreenX() - this._dragCache.startScreenX) > 5 || Math.abs(e.getScreenY() - this._dragCache.startScreenY) > 5)
+    {
+      // Fire dragstart event to finally allow the above if to handle next events
+      this._dragCache.sourceWidget.dispatchEvent(new qx.event.type.DragEvent("dragstart", e, this._dragCache.sourceWidget), true);
+
+      // Update status flag
+      this._dragCache.hasFiredDragStart = true;
+
+      // Look if handler become active
+      if (this._dragCache.dragHandlerActive)
+      {
+        // Fire first user events
+        this._fireUserEvents(this._dragCache.currentDropWidget, this._dragCache.sourceWidget, e);
+
+        // Update status flags
+        this._dragCache.currentDropWidget = this._dragCache.sourceWidget;
+
+        // Activate capture for clientDocument
+        qx.ui.core.ClientDocument.getInstance().setCapture(true);
+      }
+    }
+  }
+}
+
+/*!
+Handle mouse up event. Normally this finalize the drag and drop event.
+*/
+qx.Proto._handleMouseUp = function(e)
+{
+  // Return if dragCache was not filled before
+  if (!this._dragCache) {
+    return;
+  }
+
+  if (this._dragCache.dragHandlerActive)
+  {
+    this._endDrag(this.getDropTarget(e), e);
+  }
+  else
+  {
+    // Clear drag cache
+    this._dragCache = null;
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HANDLER FOR KEY EVENTS
+---------------------------------------------------------------------------
+*/
+
+/*!
+This wraps the key events to custom handlers.
+*/
+qx.Proto.handleKeyEvent = function(e)
+{
+  if (!this._dragCache) {
+    return;
+  }
+
+  switch (e.getType())
+  {
+    case "keydown":
+      this._handleKeyDown(e);
+      return;
+
+    case "keyup":
+      this._handleKeyUp(e);
+      return;
+  }
+}
+
+qx.Proto._handleKeyDown = function(e)
+{
+  // Stop Drag on Escape
+  if (e.getKeyIdentifier() == "Escape")
+  {
+    this.cancelDrag(e);
+  }
+
+  // Update cursor and action on press of modifier keys
+  else if (this.getCurrentAction() != null)
+  {
+    // TODO this doesn't work in WebKit because WebKit doesn't fire keyevents for modifier keys
+    switch(e.getKeyIdentifier())
+    {
+      case "Shift":
+      case "Control":
+      case "Alt":
+        this.setAction(this._evalNewAction(e.getShiftKey(), e.getCtrlKey(), e.getAltKey()));
+        this._renderCursor();
+
+        e.preventDefault();
+    }
+  }
+}
+
+qx.Proto._handleKeyUp = function(e)
+{
+  // TODO this doesn't work in WebKit because WebKit doesn't fire keyevents for modifier keys
+  var bShiftPressed = e.getKeyIdentifier() == "Shift";
+  var bCtrlPressed = e.getKeyIdentifier() == "Control";
+  var bAltPressed = e.getKeyIdentifier() == "Alt";
+
+  if (bShiftPressed || bCtrlPressed || bAltPressed)
+  {
+    if (this.getCurrentAction() != null)
+    {
+      this.setAction(this._evalNewAction(!bShiftPressed && e.getShiftKey(), ! bCtrlPressed && e.getCtrlKey(), !bAltPressed && e.getAltKey()));
+      this._renderCursor();
+
+      e.preventDefault();
+    }
+  }
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  IMPLEMENTATION OF DRAG&DROP SESSION FINALISATION
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Cancel current drag and drop session
+*/
+qx.Proto.cancelDrag = function(e) {
+  this._endDrag(null, e);
+}
+
+qx.Proto.globalCancelDrag = function()
+{
+  if (this._dragCache && this._dragCache.dragHandlerActive) {
+    this._endDragCore();
+  }
+}
+
+/*!
+  This will be called to the end of each drag and drop session
+*/
+qx.Proto._endDrag = function(currentDestinationWidget, e)
+{
+  // Use given destination widget
+  if (currentDestinationWidget)
+  {
+    this._lastDestinationEvent = e;
+    this.setDestinationWidget(currentDestinationWidget);
+  }
+
+  // Dispatch dragend event
+  this.getSourceWidget().dispatchEvent(new qx.event.type.DragEvent("dragend", e, this.getSourceWidget(), currentDestinationWidget), true);
+
+  // Fire dragout event
+  this._fireUserEvents(this._dragCache && this._dragCache.currentDropWidget, null, e);
+
+  // Call helper
+  this._endDragCore();
+}
+
+qx.Proto._endDragCore = function()
+{
+  // Remove cursor
+  var oldCursor = this.getCursor();
+  if (oldCursor)
+  {
+    oldCursor._style.display = "none";
+    this.forceCursor(null);
+  }
+
+  // Reset drag cache for next drag and drop session
+  if (this._dragCache)
+  {
+    this._dragCache.currentDropWidget = null;
+    this._dragCache = null;
+  }
+
+  // Deactivate capture for clientDocument
+  qx.ui.core.ClientDocument.getInstance().setCapture(false);
+
+  // Cleanup data and actions
+  this.clearData();
+  this.clearActions();
+
+  // Cleanup widgets
+  this.setSourceWidget(null);
+  this.setDestinationWidget(null);
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  IMPLEMENTATION OF CURSOR UPDATES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Select and setup the current used cursor
+*/
+qx.Proto._renderCursor = function()
+{
+  var vNewCursor;
+  var vOldCursor = this.getCursor();
+
+  switch(this.getCurrentAction())
+  {
+    case this._actionNames.move:
+      vNewCursor = this._cursors.move;
+      break;
+
+    case this._actionNames.copy:
+      vNewCursor = this._cursors.copy;
+      break;
+
+    case this._actionNames.alias:
+      vNewCursor = this._cursors.alias;
+      break;
+
+    default:
+      vNewCursor = this._cursors.nodrop;
+  }
+
+  // Hide old cursor
+  if (vNewCursor != vOldCursor && vOldCursor != null) {
+    vOldCursor._style.display = "none";
+  }
+
+  // Ensure that the cursor is created
+  if (!vNewCursor._initialLayoutDone)
+  {
+    qx.ui.core.ClientDocument.getInstance().add(vNewCursor);
+    qx.ui.core.Widget.flushGlobalQueues();
+  }
+
+  // Apply position with runtime style (fastest qooxdoo method)
+  vNewCursor._applyRuntimeLeft(this._dragCache.pageX + 5);
+  vNewCursor._applyRuntimeTop(this._dragCache.pageY + 15);
+
+  // Finally show new cursor
+  if (vNewCursor != vOldCursor) {
+    vNewCursor._style.display = "";
+  }
+
+  // Store new cursor
+  this.forceCursor(vNewCursor);
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  IMPLEMENTATION OF DROP TARGET VALIDATION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.supportsDrop = function(vWidget)
+{
+  var vTypes = vWidget.getDropDataTypes();
+
+  if (!vTypes) {
+    return false;
+  }
+
+  for (var i=0; i<vTypes.length; i++)
+  {
+    if (vTypes[i] in this._data) {
+      return true;
+    }
+  }
+
+  return false;
+}
+
+/*!
+#param e[qx.event.type.MouseEvent]: Current MouseEvent for dragdrop action
+*/
+if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.Proto.getDropTarget = function(e)
+  {
+    var vCurrent = e.getTarget();
+
+    // work around gecko bug (all other browsers are correct)
+    // clicking on a free space and drag prohibit the get of
+    // a valid event target. The target is always the element
+    // which was the one with the mousedown event before.
+    if (vCurrent == this._dragCache.sourceWidget)
+    {
+      // vCurrent = qx.event.handler.EventHandler.getTargetObject(qx.dom.ElementFromPoint.getElementFromPoint(e.getPageX(), e.getPageY()));
+
+      // this is around 8-12 times faster as the above method
+      vCurrent = this._dragCache.sourceTopLevel.getWidgetFromPoint(e.getPageX(), e.getPageY());
+    }
+    else
+    {
+      vCurrent = qx.event.handler.EventHandler.getTargetObject(null, vCurrent);
+    }
+
+    while (vCurrent != null && vCurrent != this._dragCache.sourceWidget)
+    {
+      if (!vCurrent.supportsDrop(this._dragCache)) {
+        return null;
+      }
+
+      if (this.supportsDrop(vCurrent)) {
+        return vCurrent;
+      }
+
+      vCurrent = vCurrent.getParent();
+    }
+
+    return null;
+  }
+}
+else
+{
+  qx.Proto.getDropTarget = function(e)
+  {
+    var vCurrent = e.getTarget();
+
+    while (vCurrent != null)
+    {
+      if (!vCurrent.supportsDrop(this._dragCache)) {
+        return null;
+      }
+
+      if (this.supportsDrop(vCurrent)) {
+        return vCurrent;
+      }
+
+      vCurrent = vCurrent.getParent();
+    }
+
+    return null;
+  }
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ACTION HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.addAction = function(vAction, vForce)
+{
+  this._actions[vAction] = true;
+
+  // Defaults to first added action
+  if (vForce || this.getCurrentAction() == null) {
+    this.setCurrentAction(vAction);
+  }
+}
+
+qx.Proto.clearActions = function()
+{
+  this._actions = {};
+  this.setCurrentAction(null);
+}
+
+qx.Proto.removeAction = function(vAction)
+{
+  delete this._actions[vAction];
+
+  // Reset current action on remove
+  if (this.getCurrentAction() == vAction) {
+    this.setCurrentAction(null);
+  }
+}
+
+qx.Proto.setAction = function(vAction)
+{
+  if (vAction != null && !(vAction in this._actions)) {
+    this.addAction(vAction, true);
+  }
+  else
+  {
+    this.setCurrentAction(vAction);
+  }
+}
+
+qx.Proto._evalNewAction = function(vKeyShift, vKeyCtrl, vKeyAlt)
+{
+  if (vKeyShift && vKeyCtrl && this._actionNames.alias in this._actions)
+  {
+    return this._actionNames.alias;
+  }
+  else if (vKeyShift && vKeyAlt && this._actionNames.copy in this._actions)
+  {
+    return this._actionNames.copy;
+  }
+  else if (vKeyShift && this._actionNames.move in this._actions)
+  {
+    return this._actionNames.move;
+  }
+  else if (vKeyAlt && this._actionNames.alias in this._actions)
+  {
+    return this._actionNames.alias;
+  }
+  else if (vKeyCtrl && this._actionNames.copy in this._actions)
+  {
+    return this._actionNames.copy;
+  }
+  else
+  {
+    // Return the first action found
+    for (var vAction in this._actions) {
+      return vAction;
+    }
+  }
+
+  return null;
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  // Reset drag cache for next drag and drop session
+  if (this._dragCache)
+  {
+    this._dragCache.currentDropWidget = null;
+    this._dragCache = null;
+  }
+
+  // Cleanup data and actions
+  this._data = null;
+  this._actions = null;
+  this._actionNames = null;
+
+  this._lastDestinationEvent = null;
+
+  if (this._cursors)
+  {
+    if (this._cursors.move)
+    {
+      this._cursors.move.dispose();
+      delete this._cursors.move;
+    }
+
+    if (this._cursors.copy)
+    {
+      this._cursors.copy.dispose();
+      delete this._cursors.copy;
+    }
+
+    if (this._cursors.alias)
+    {
+      this._cursors.alias.dispose();
+      delete this._cursors.alias;
+    }
+
+    if (this._cursors.nodrop)
+    {
+      this._cursors.nodrop.dispose();
+      delete this._cursors.nodrop;
+    }
+
+    this._cursors = null;
+  }
+
+  return qx.manager.object.ObjectManager.prototype.dispose.call(this);
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/EventHandler.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/EventHandler.js
new file mode 100644 (file)
index 0000000..311f731
--- /dev/null
@@ -0,0 +1,1172 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#require(qx.event.type.KeyEvent)
+#require(qx.event.handler.KeyEventHandler)
+#optional(qx.event.handler.DragAndDropHandler)
+#optional(qx.manager.object.MenuManager)
+#optional(qx.event.handler.FocusHandler)
+#optional(qx.manager.object.PopupManager)
+#optional(qx.manager.object.ToolTipManager)
+
+************************************************************************ */
+
+/*!
+  This manager registers and manage all incoming key and mouse events.
+*/
+qx.OO.defineClass("qx.event.handler.EventHandler", qx.core.Target,
+function()
+{
+  qx.core.Target.call(this);
+
+  // Object Wrapper to Events (Needed for DOM-Events)
+  var o = this;
+
+  // User Events
+  this.__onmouseevent = function(e) { return o._onmouseevent(e); };
+  this.__ondragevent = function(e) { return o._ondragevent(e); };
+  this.__onselectevent = function(e) { return o._onselectevent(e); };
+
+  // Window Events
+  this.__onwindowblur = function(e) { return o._onwindowblur(e); };
+  this.__onwindowfocus = function(e) { return o._onwindowfocus(e); };
+  this.__onwindowresize = function(e) { return o._onwindowresize(e); };
+
+  // Init Command Interface
+  this._commands = {};
+});
+
+
+
+
+
+
+qx.OO.addProperty({ name : "allowClientContextMenu", type : "boolean", defaultValue : false });
+qx.OO.addProperty({ name : "allowClientSelectAll", type : "boolean", defaultValue : false });
+
+qx.OO.addProperty({ name : "captureWidget", type : "object", instance : "qx.ui.core.Widget", allowNull : true });
+qx.OO.addProperty({ name : "focusRoot", type : "object", instance : "qx.ui.core.Parent", allowNull : true });
+
+
+
+
+
+
+qx.Class.mouseEventTypes = [ "mouseover", "mousemove", "mouseout", "mousedown", "mouseup", "click", "dblclick", "contextmenu", qx.sys.Client.getInstance().isMshtml() ? "mousewheel" : "DOMMouseScroll" ];
+qx.Class.keyEventTypes = [ "keydown", "keypress", "keyup" ];
+
+if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.Class.dragEventTypes = [ "dragdrop", "dragover", "dragenter", "dragexit", "draggesture" ];
+}
+else if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Class.dragEventTypes = [ "dragend", "dragover", "dragstart", "drag", "dragenter", "dragleave" ];
+}
+else
+{
+  qx.Class.dragEventTypes = [ "dragstart", "dragdrop", "dragover", "drag", "dragleave", "dragenter", "dragexit", "draggesture" ];
+}
+
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STATE FLAGS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._lastMouseEventType = null;
+qx.Proto._lastMouseDown = false;
+qx.Proto._lastMouseEventDate = 0;
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyCaptureWidget = function(propValue, propOldValue, propData)
+{
+  if (propOldValue) {
+    propOldValue.setCapture(false);
+  }
+
+  if (propValue) {
+    propValue.setCapture(true);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyFocusRoot = function(propValue, propOldValue, propData)
+{
+  // this.debug("FocusRoot: " + propValue + "(from:" + propOldValue + ")");
+
+  if (propOldValue) {
+    propOldValue.setFocusedChild(null);
+  }
+
+  if (propValue)
+  {
+    if (propValue.getFocusedChild() == null) {
+      propValue.setFocusedChild(propValue);
+    }
+  }
+
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  COMMAND INTERFACE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.addCommand = function(vCommand) {
+  this._commands[vCommand.toHashCode()] = vCommand;
+}
+
+qx.Proto.removeCommand = function(vCommand) {
+  delete this._commands[vCommand.toHashCode()];
+}
+
+qx.Proto._checkKeyEventMatch = function(e)
+{
+  var vCommand;
+
+  for (var vHash in this._commands)
+  {
+    vCommand = this._commands[vHash];
+
+    if (vCommand.getEnabled() && vCommand._matchesKeyEvent(e))
+    {
+      // allow the user to stop the event
+      // through the execute event.
+      if (!vCommand.execute()) {
+        e.preventDefault();
+      }
+
+      break;
+    }
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT-MAPPING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.attachEvents = function()
+{
+  // Register dom events
+  this.attachEventTypes(qx.event.handler.EventHandler.mouseEventTypes, this.__onmouseevent);
+  this.attachEventTypes(qx.event.handler.EventHandler.dragEventTypes, this.__ondragevent);
+
+  // Unregister separate handler events
+  qx.event.handler.KeyEventHandler.getInstance()._attachEvents();
+
+  // Register window events
+  qx.dom.EventRegistration.addEventListener(window, "blur", this.__onwindowblur);
+  qx.dom.EventRegistration.addEventListener(window, "focus", this.__onwindowfocus);
+  qx.dom.EventRegistration.addEventListener(window, "resize", this.__onwindowresize);
+
+  // Register selection events
+  document.body.onselect = document.onselectstart = document.onselectionchange = this.__onselectevent;
+}
+
+qx.Proto.detachEvents = function()
+{
+  // Unregister dom events
+  this.detachEventTypes(qx.event.handler.EventHandler.mouseEventTypes, this.__onmouseevent);
+  this.detachEventTypes(qx.event.handler.EventHandler.dragEventTypes, this.__ondragevent);
+
+  // Unregister separate handler events
+  qx.event.handler.KeyEventHandler.getInstance()._detachEvents();
+
+  // Unregister window events
+  qx.dom.EventRegistration.removeEventListener(window, "blur", this.__onwindowblur);
+  qx.dom.EventRegistration.removeEventListener(window, "focus", this.__onwindowfocus);
+  qx.dom.EventRegistration.removeEventListener(window, "resize", this.__onwindowresize);
+
+  // Unregister selection events
+  document.body.onselect = document.onselectstart = document.onselectionchange = null;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT-MAPPING HELPER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.attachEventTypes = function(vEventTypes, vFunctionPointer)
+{
+  try
+  {
+    // Gecko is a bit buggy to handle key events on document if not previously focused
+    // I think they will fix this sometimes, and we should add a version check here.
+    // Internet Explorer has problems to use 'window', so there we use the 'body' element
+    // as previously.
+    var el = qx.sys.Client.getInstance().isGecko() ? window : document.body;
+
+    for (var i=0, l=vEventTypes.length; i<l; i++) {
+      qx.dom.EventRegistration.addEventListener(el, vEventTypes[i], vFunctionPointer);
+    }
+  }
+  catch(ex)
+  {
+    throw new Error("qx.event.handler.EventHandler: Failed to attach window event types: " + vEventTypes + ": " + ex);
+  }
+}
+
+qx.Proto.detachEventTypes = function(vEventTypes, vFunctionPointer)
+{
+  try
+  {
+    var el = qx.sys.Client.getInstance().isGecko() ? window : document.body;
+
+    for (var i=0, l=vEventTypes.length; i<l; i++) {
+      qx.dom.EventRegistration.removeEventListener(el, vEventTypes[i], vFunctionPointer);
+    }
+  }
+  catch(ex)
+  {
+    throw new Error("qx.event.handler.EventHandler: Failed to detach window event types: " + vEventTypes + ": " + ex);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HELPER METHODS
+---------------------------------------------------------------------------
+*/
+
+// BUG: http://xscroll.mozdev.org/
+// If your Mozilla was built with an option `--enable-default-toolkit=gtk2',
+// it can not return the correct event target for DOMMouseScroll.
+
+qx.Class.getOriginalTargetObject = function(vNode)
+{
+  // Events on the HTML element, when using absolute locations which
+  // are outside the HTML element. Opera does not seem to fire events
+  // on the HTML element.
+  if (vNode == document.documentElement) {
+    vNode = document.body;
+  }
+
+  // Walk up the tree and search for an qx.ui.core.Widget
+  while(vNode != null && vNode.qx_Widget == null)
+  {
+    try {
+      vNode = vNode.parentNode;
+    }
+    catch(vDomEvent)
+    {
+      vNode = null;
+    }
+  }
+
+  return vNode ? vNode.qx_Widget : null;
+}
+
+if (qx.sys.Client.getInstance().isWebkit())
+{
+  /**
+   * extract the target node from a DOM event
+   * http://www.quirksmode.org/js/events_properties.html
+   *
+   * @param vDomEvent {Event}
+   * @return {Element} the target node
+   */
+  qx.Class.getDomTarget = function(vDomEvent)
+  {
+    var vNode = vDomEvent.target || vDomEvent.srcElement;
+
+    // Safari takes text nodes as targets for events
+    if (vNode && (vNode.nodeType == qx.dom.Node.TEXT)) {
+      vNode = vNode.parentNode;
+    }
+
+    return vNode;
+  };
+}
+else if (qx.sys.Client.getInstance().isMshtml())
+{
+  /**
+   * extract the target node from a DOM event
+   * http://www.quirksmode.org/js/events_properties.html
+   *
+   * @param vDomEvent {Event}
+   * @return {Element} the target node
+   */
+  qx.Class.getDomTarget = function(vDomEvent) {
+    return vDomEvent.target || vDomEvent.srcElement;
+  };
+}
+else
+{
+  /**
+   * extract the target node from a DOM event
+   * http://www.quirksmode.org/js/events_properties.html
+   *
+   * @param vDomEvent {Event}
+   * @return {Element} the target node
+   */
+  qx.Class.getDomTarget = function(vDomEvent) {
+    return vDomEvent.target;
+  };
+}
+
+
+qx.Class.getOriginalTargetObjectFromEvent = function(vDomEvent, vWindow)
+{
+  var vNode = qx.event.handler.EventHandler.getDomTarget(vDomEvent);
+
+  // Especially to fix key events.
+  // 'vWindow' is the window reference then
+  if (vWindow)
+  {
+    var vDocument = vWindow.document;
+
+    if (vNode == vWindow || vNode == vDocument || vNode == vDocument.documentElement || vNode == vDocument.body) {
+      return vDocument.body.qx_Widget;
+    }
+  }
+
+  return qx.event.handler.EventHandler.getOriginalTargetObject(vNode);
+}
+
+qx.Class.getRelatedOriginalTargetObjectFromEvent = function(vDomEvent) {
+  return qx.event.handler.EventHandler.getOriginalTargetObject(vDomEvent.relatedTarget || (vDomEvent.type == "mouseover" ? vDomEvent.fromElement : vDomEvent.toElement));
+}
+
+
+
+
+
+
+
+qx.Class.getTargetObject = function(vNode, vObject)
+{
+  if (!vObject)
+  {
+    var vObject = qx.event.handler.EventHandler.getOriginalTargetObject(vNode);
+
+    if (!vObject) {
+      return null;
+    }
+  }
+
+  // Search parent tree
+  while(vObject)
+  {
+    // Break if current object is disabled -
+    // event should be ignored then.
+    if (!vObject.getEnabled()) {
+      return null;
+    }
+
+    // If object is anonymous, search for
+    // first parent which is not anonymous
+    // and not disabled
+    if (!vObject.getAnonymous()) {
+      break;
+    }
+
+    vObject = vObject.getParent();
+  }
+
+  return vObject;
+};
+
+
+qx.Class.getTargetObjectFromEvent = function(vDomEvent) {
+  return qx.event.handler.EventHandler.getTargetObject(qx.event.handler.EventHandler.getDomTarget(vDomEvent));
+};
+
+
+qx.Class.getRelatedTargetObjectFromEvent = function(vDomEvent) {
+  var target = vDomEvent.relatedTarget;
+  if (!target) {
+    if (vDomEvent.type == "mouseover") {
+      target = vDomEvent.fromElement
+    } else {
+      target = vDomEvent.toElement
+    }
+  }
+  return qx.event.handler.EventHandler.getTargetObject(target);
+};
+
+
+/**
+ * stops further propagation of the event
+ *
+ * @param vDomEvent (Element) DOM event object
+ */
+qx.Class.stopDomEvent = function(vDomEvent) {};
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Class.stopDomEvent = function(vDomEvent) {
+    vDomEvent.returnValue = false;
+  }
+}
+else
+{
+  qx.Class.stopDomEvent = function(vDomEvent)
+  {
+    vDomEvent.preventDefault();
+    vDomEvent.returnValue = false;
+  }
+};
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  KEY EVENTS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onkeyevent_post = function(vDomEvent, vType, vKeyCode, vCharCode, vKeyIdentifier)
+{
+  var vDomTarget = qx.event.handler.EventHandler.getDomTarget(vDomEvent);
+
+
+  // Find current active qooxdoo object
+  var vFocusRoot = this.getFocusRoot();
+  var vTarget = this.getCaptureWidget() || (vFocusRoot == null ? null : vFocusRoot.getActiveChild());
+
+  if (vTarget == null || !vTarget.getEnabled()) {
+    return false;
+  }
+
+  var vDomEventTarget = vTarget.getElement();
+
+
+
+
+  // Hide Menus
+  switch(vKeyIdentifier)
+  {
+    case "Escape":
+    case "Tab":
+      if (qx.OO.isAvailable("qx.manager.object.MenuManager")) {
+        qx.manager.object.MenuManager.getInstance().update(vTarget, vType);
+      }
+
+      break;
+  }
+
+
+
+
+  // TODO: Move this to KeyEvent?
+
+  // Prohibit CTRL+A
+  if (!this.getAllowClientSelectAll())
+  {
+    if (vDomEvent.ctrlKey && vKeyIdentifier == "A")
+    {
+      switch(vDomTarget.tagName.toLowerCase())
+      {
+        case "input":
+        case "textarea":
+        case "iframe":
+          break;
+
+        default:
+          qx.event.handler.EventHandler.stopDomEvent(vDomEvent);
+      }
+    }
+  }
+
+
+
+  // Create Event Object
+  var vKeyEventObject = new qx.event.type.KeyEvent(vType, vDomEvent, vDomTarget, vTarget, null, vKeyCode, vCharCode, vKeyIdentifier);
+
+  // Check for commands
+  if (vDomEvent.type == "keydown") {
+    this._checkKeyEventMatch(vKeyEventObject);
+  }
+
+  // Starting Objects Internal Event Dispatcher
+  // This handles the real event action
+  vTarget.dispatchEvent(vKeyEventObject);
+
+  // Send event to qx.event.handler.DragAndDropHandler
+  if (qx.OO.isAvailable("qx.event.handler.DragAndDropHandler")) {
+    qx.event.handler.DragAndDropHandler.getInstance().handleKeyEvent(vKeyEventObject);
+  }
+
+  // Cleanup Event Object
+  vKeyEventObject.dispose();
+
+  // Flush Queues
+  qx.ui.core.Widget.flushGlobalQueues();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MOUSE EVENTS
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This one handle all mouse events
+
+  When a user double clicks on a qx.ui.core.Widget the
+  order of the mouse events is the following:
+
+  1. mousedown
+  2. mouseup
+  3. click
+  4. mousedown
+  5. mouseup
+  6. click
+  7. dblclick
+*/
+
+if(qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto._onmouseevent = function(vDomEvent)
+  {
+    qx.core.Init.getInstance().getComponent().preload();
+
+    if(!vDomEvent) {
+      vDomEvent = window.event;
+    }
+
+    var vDomTarget = qx.event.handler.EventHandler.getDomTarget(vDomEvent);
+    var vType = vDomEvent.type;
+
+    if(vType == "mousemove")
+    {
+      if (this._mouseIsDown && vDomEvent.button == 0)
+      {
+        this._onmouseevent_post(vDomEvent, "mouseup");
+        this._mouseIsDown = false;
+      }
+    }
+    else
+    {
+      if(vType == "mousedown")
+      {
+        this._mouseIsDown = true;
+      }
+      else if(vType == "mouseup")
+      {
+        this._mouseIsDown = false;
+      }
+
+      // Fix MSHTML Mouseup, should be after a normal click or contextmenu event, like Mozilla does this
+      if(vType == "mouseup" && !this._lastMouseDown && ((new Date).valueOf() - this._lastMouseEventDate) < 250)
+      {
+        this._onmouseevent_post(vDomEvent, "mousedown");
+      }
+      // Fix MSHTML Doubleclick, should be after a normal click event, like Mozilla does this
+      else if(vType == "dblclick" && this._lastMouseEventType == "mouseup" && ((new Date).valueOf() - this._lastMouseEventDate) < 250)
+      {
+        this._onmouseevent_post(vDomEvent, "click");
+      }
+
+      switch(vType)
+      {
+        case "mousedown":
+        case "mouseup":
+        case "click":
+        case "dblclick":
+        case "contextmenu":
+          this._lastMouseEventType = vType;
+          this._lastMouseEventDate = (new Date).valueOf();
+          this._lastMouseDown = vType == "mousedown";
+      }
+    }
+
+    this._onmouseevent_post(vDomEvent, vType, vDomTarget);
+  }
+}
+else
+{
+  qx.Proto._onmouseevent = function(vDomEvent)
+  {
+    qx.core.Init.getInstance().getComponent().preload();
+
+    var vDomTarget = qx.event.handler.EventHandler.getDomTarget(vDomEvent);
+    var vType = vDomEvent.type;
+
+    switch(vType)
+    {
+      case "DOMMouseScroll":
+        // normalize mousewheel event
+        vType = "mousewheel";
+        break;
+
+      case "click":
+      case "dblclick":
+        // ignore click or dblclick events with other then the left mouse button
+        if (vDomEvent.which !== 1) {
+          return;
+        }
+    }
+
+    this._onmouseevent_post(vDomEvent, vType, vDomTarget);
+  }
+}
+
+/*!
+Fixes browser quirks with 'click' detection
+
+Firefox 1.5.0.6: The DOM-targets are different. The click event only fires, if the target of the
+  mousedown is the same than with the mouseup. If the content moved away, the click isn't fired.
+
+Internet Explorer 6.0: The DOM-targets are identical and the click fires fine.
+
+Opera 9.01: The DOM-targets are different, but the click fires fine. Fires click successfull,
+  even if the content under the cursor was moved away.
+*/
+if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.Proto._onmouseevent_click_fix = function(vDomTarget, vType, vDispatchTarget)
+  {
+    var vReturn = false;
+
+    switch(vType)
+    {
+      case "mousedown":
+        this._lastMouseDownDomTarget = vDomTarget;
+        this._lastMouseDownDispatchTarget = vDispatchTarget;
+        break;
+
+      case "mouseup":
+        // Add additional click event if the dispatch target is the same, but the dom target is different
+        if (this._lastMouseDownDispatchTarget === vDispatchTarget && vDomTarget !== this._lastMouseDownDomTarget)
+        {
+          vReturn = true;
+        }
+        else
+        {
+          this._lastMouseDownDomTarget = null;
+          this._lastMouseDownDispatchTarget = null;
+        }
+    }
+
+    return vReturn;
+  };
+}
+else
+{
+  qx.Proto._onmouseevent_click_fix = function(vDomTarget, vDispatchTarget) {
+    return false;
+  }
+};
+
+/*!
+  This is the crossbrowser post handler for all mouse events.
+*/
+qx.Proto._onmouseevent_post = function(vDomEvent, vType, vDomTarget)
+{
+  try
+  {
+    var vEventObject, vCaptureTarget, vDispatchTarget, vTarget, vOriginalTarget, vRelatedTarget, vFixClick;
+
+
+
+
+
+
+
+    // Check for capturing, if enabled the target is the captured widget.
+    vCaptureTarget = this.getCaptureWidget();
+
+    // Event Target Object
+    vOriginalTarget = qx.event.handler.EventHandler.getOriginalTargetObject(vDomTarget);
+
+    // If capturing isn't active search for a valid target object
+    if (!vCaptureTarget)
+    {
+      // Get Target Object
+      vDispatchTarget = vTarget = qx.event.handler.EventHandler.getTargetObject(null, vOriginalTarget);
+    }
+    else
+    {
+      vDispatchTarget = vCaptureTarget;
+      vTarget = qx.event.handler.EventHandler.getTargetObject(null, vOriginalTarget);
+    }
+
+
+
+    // If there is no target, we have nothing to do
+    if (!vTarget) {
+      return false;
+    }
+
+    // Fix click event
+    vFixClick = this._onmouseevent_click_fix(vDomTarget, vType, vDispatchTarget);
+
+
+
+
+    switch(vType)
+    {
+      case "contextmenu":
+        if (!this.getAllowClientContextMenu()) {
+          qx.event.handler.EventHandler.stopDomEvent(vDomEvent);
+        }
+
+        break;
+
+      case "mousedown":
+        qx.event.handler.FocusHandler.mouseFocus = true;
+
+        var vRoot = vTarget.getFocusRoot();
+
+        if (vRoot)
+        {
+          this.setFocusRoot(vRoot);
+
+          vRoot.setActiveChild(vTarget);
+
+          // Active focus on element (if possible, else search up the parent tree)
+          var vFocusTarget = vTarget;
+          while (!vFocusTarget.isFocusable() && vFocusTarget != vRoot) {
+            vFocusTarget = vFocusTarget.getParent();
+          }
+
+          vRoot.setFocusedChild(vFocusTarget);
+        }
+
+        break;
+    }
+
+
+
+
+    var vDomEventTarget = vTarget.getElement();
+
+
+
+
+    // Find related target object
+    switch(vType)
+    {
+      case "mouseover":
+      case "mouseout":
+        vRelatedTarget = qx.event.handler.EventHandler.getRelatedTargetObjectFromEvent(vDomEvent);
+
+        // Ignore events where the related target and
+        // the real target are equal - from our sight
+        if (vRelatedTarget == vTarget) {
+          return;
+        }
+    }
+
+
+
+    try
+    {
+
+      // Create Mouse Event Object
+      vEventObject = new qx.event.type.MouseEvent(vType, vDomEvent, vDomTarget, vTarget, vOriginalTarget, vRelatedTarget);
+    }
+    catch(ex)
+    {
+      return this.error("Failed to create mouse event", ex);
+    }
+
+
+    // Store last Event in MouseEvent Constructor
+    // Needed for Tooltips, ...
+    qx.event.type.MouseEvent._storeEventState(vEventObject);
+
+
+
+    try
+    {
+      // Dispatch Event through target (eventtarget-)object
+      var vReturnValue = vDispatchTarget ? vDispatchTarget.dispatchEvent(vEventObject) : true;
+    }
+    catch(ex)
+    {
+      return this.error("Failed to dispatch mouse event", ex);
+    }
+
+
+
+
+
+    // Handle Special Post Events
+    switch(vType)
+    {
+      case "mousedown":
+        if (qx.OO.isAvailable("qx.manager.object.PopupManager")) {
+          qx.manager.object.PopupManager.getInstance().update(vTarget);
+        }
+
+        if (qx.OO.isAvailable("qx.manager.object.MenuManager")) {
+          qx.manager.object.MenuManager.getInstance().update(vTarget, vType);
+        }
+
+        if (qx.OO.isAvailable("qx.manager.object.IframeManager")) {
+          qx.manager.object.IframeManager.getInstance().handleMouseDown(vEventObject);
+        }
+
+        break;
+
+      case "mouseup":
+
+        // Mouseup event should always hide, independed of target, so don't send a target
+        if (qx.OO.isAvailable("qx.manager.object.MenuManager")) {
+          qx.manager.object.MenuManager.getInstance().update(vTarget, vType);
+        }
+
+        if (qx.OO.isAvailable("qx.manager.object.IframeManager")) {
+          qx.manager.object.IframeManager.getInstance().handleMouseUp(vEventObject);
+        }
+
+        break;
+
+      case "mouseover":
+        if (qx.OO.isAvailable("qx.manager.object.ToolTipManager")) {
+          qx.manager.object.ToolTipManager.getInstance().handleMouseOver(vEventObject);
+        }
+
+        break;
+
+      case "mouseout":
+        if (qx.OO.isAvailable("qx.manager.object.ToolTipManager")) {
+          qx.manager.object.ToolTipManager.getInstance().handleMouseOut(vEventObject);
+        }
+
+        break;
+
+      case "mousewheel":
+        // priority for the real target not the (eventually captured) dispatch target
+        vReturnValue ? this._onmousewheel(vOriginalTarget || vDispatchTarget, vEventObject) : qx.event.handler.EventHandler.stopDomEvent(vDomEvent);
+
+        break;
+    }
+
+
+
+    this._ignoreWindowBlur = vType === "mousedown";
+
+
+
+
+    // Send Event Object to Drag&Drop Manager
+    if (qx.OO.isAvailable("qx.event.handler.DragAndDropHandler") && vTarget) {
+      qx.event.handler.DragAndDropHandler.getInstance().handleMouseEvent(vEventObject);
+    }
+
+
+
+
+    // Dispose Event Object
+    vEventObject.dispose();
+    vEventObject = null;
+
+
+
+
+    // Flush Queues
+    qx.ui.core.Widget.flushGlobalQueues();
+
+
+    // Fix Click (Gecko Bug, see above)
+    if (vFixClick)
+    {
+      this._onmouseevent_post(vDomEvent, "click", this._lastMouseDownDomTarget);
+
+      this._lastMouseDownDomTarget = null;
+      this._lastMouseDownDispatchTarget = null;
+    }
+  }
+  catch(ex)
+  {
+    return this.error("Failed to handle mouse event", ex);
+  }
+}
+
+if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.Proto._onmousewheel = function(vTarget, vEvent)
+  {
+    if(vTarget == null) {
+      return;
+    }
+
+    // ingore if overflow is configured as hidden
+    // in this case send the event to the parent instead
+    if(vTarget.getOverflowY() == "hidden") {
+      return this._onmousewheel(vTarget.getParent(), vEvent);
+    }
+
+    var vScrollTop = vTarget.getScrollTop();
+    var vDelta = 20 * vEvent.getWheelDelta();
+
+    // if already at the top edge and the user scrolls up
+    // then send the event to the parent instead
+    if(vScrollTop == 0 && vDelta > 0) {
+      return this._onmousewheel(vTarget.getParent(), vEvent);
+    }
+
+    var vScrollHeight = vTarget.getScrollHeight();
+    var vClientHeight = vTarget.getClientHeight();
+
+    // if already at the bottom edge and the user scrolls down
+    // then send the event to the parent instead
+    if(vScrollTop + vClientHeight >= vScrollHeight && vDelta < 0) {
+      return this._onmousewheel(vTarget.getParent(), vEvent);
+    }
+
+    // apply new scroll position
+    vTarget.setScrollTop(vScrollTop - vDelta);
+
+    // stop default handling, that works sometimes, too
+    vEvent.preventDefault();
+  }
+}
+else
+{
+  qx.Proto._onmousewheel = function() {};
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DRAG EVENTS
+
+    Currently only to stop non needed events
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._ondragevent = function(vEvent)
+{
+  if (!vEvent) {
+    vEvent = window.event;
+  }
+
+  qx.event.handler.EventHandler.stopDomEvent(vEvent);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SELECT EVENTS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onselectevent = function(e)
+{
+  if(!e) {
+    e = window.event;
+  }
+
+  var vTarget = qx.event.handler.EventHandler.getOriginalTargetObjectFromEvent(e);
+
+  if(vTarget && !vTarget.getSelectable()) {
+    qx.event.handler.EventHandler.stopDomEvent(e);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  WINDOW EVENTS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._focused = false;
+
+qx.Proto._onwindowblur = function(e)
+{
+  // this.debug("Try Window blur...");
+
+  if (!this._focused || this._ignoreWindowBlur) {
+    return;
+  }
+
+  this._focused = false;
+
+  // this.debug("Window blur...");
+
+  // Disable capturing
+  this.setCaptureWidget(null);
+
+  // Hide Popups, Tooltips, ...
+  if (qx.OO.isAvailable("qx.manager.object.PopupManager")) {
+    qx.manager.object.PopupManager.getInstance().update();
+  }
+
+  // Hide Menus
+  if (qx.OO.isAvailable("qx.manager.object.MenuManager")) {
+    qx.manager.object.MenuManager.getInstance().update();
+  }
+
+  // Cancel Drag Operations
+  if (qx.OO.isAvailable("qx.event.handler.DragAndDropHandler")) {
+    qx.event.handler.DragAndDropHandler.getInstance().globalCancelDrag();
+  }
+
+  // Send blur event to client document
+  qx.ui.core.ClientDocument.getInstance().createDispatchEvent("windowblur");
+}
+
+qx.Proto._onwindowfocus = function(e)
+{
+  // this.debug("Try Window focus...");
+
+  if (this._focused) {
+    return;
+  }
+
+  this._focused = true;
+
+  // this.debug("Window focus...");
+
+  // Send focus event to client document
+  qx.ui.core.ClientDocument.getInstance().createDispatchEvent("windowfocus");
+}
+
+qx.Proto._onwindowresize = function(e)
+{
+  // Send resize event to client document
+  qx.ui.core.ClientDocument.getInstance().createDispatchEvent("windowresize");
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  // Detach mouse events
+  this.detachEvents();
+
+  // Reset functions
+  this.__onmouseevent = this.__ondragevent = this.__onselectevent = null;
+  this.__onwindowblur = this.__onwindowfocus = this.__onwindowresize = null;
+
+  // Cleanup
+  this._lastMouseEventType = null;
+  this._lastMouseDown = null;
+  this._lastMouseEventDate = null;
+
+  this._lastMouseDownDomTarget = null;
+  this._lastMouseDownDispatchTarget = null;
+
+  if (this._commands)
+  {
+    for (var vHash in this._commands)
+    {
+      this._commands[vHash].dispose();
+      delete this._commands[vHash];
+    }
+
+    this._commands = null;
+  }
+
+  qx.core.Target.prototype.dispose.call(this);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/FocusHandler.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/FocusHandler.js
new file mode 100644 (file)
index 0000000..2006adb
--- /dev/null
@@ -0,0 +1,342 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#optional(qx.ui.core.Parent)
+#optional(qx.ui.basic.Terminator)
+
+************************************************************************ */
+
+/*!
+  This object gets an instance in each focus root and manage the focus handling for it.
+*/
+qx.OO.defineClass("qx.event.handler.FocusHandler", qx.core.Target,
+function(vWidget)
+{
+  qx.core.Target.call(this);
+
+  if (qx.util.Validation.isValidObject(vWidget)) {
+    this._attachedWidget = vWidget;
+  }
+});
+
+qx.event.handler.FocusHandler.mouseFocus = false;
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getAttachedWidget = function() {
+  return this._attachedWidget;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  TAB-EVENT HANDLING
+---------------------------------------------------------------------------
+*/
+
+// Check for TAB pressed
+// * use keydown on mshtml
+// * use keypress on vAll other (correct) browsers
+// = same behaviour
+qx.event.handler.FocusHandler.tabEventType = qx.sys.Client.getInstance().isMshtml() ? "keydown" : "keypress";
+
+qx.Proto._onkeyevent = function(vContainer, vEvent)
+{
+  if (vEvent.getKeyIdentifier() != "Tab") {
+    return;
+  }
+
+  // Stop all key-events with a TAB keycode
+  vEvent.stopPropagation();
+  vEvent.preventDefault();
+
+  // But only react on the one to use for this browser.
+  if (vEvent.getType() != qx.event.handler.FocusHandler.tabEventType) {
+    return;
+  }
+
+  qx.event.handler.FocusHandler.mouseFocus = false;
+
+  var vCurrent = this.getAttachedWidget().getFocusedChild();
+
+  // Support shift key to reverse widget detection order
+  if(!vEvent.getShiftKey()) {
+    var vNext = vCurrent ? this.getWidgetAfter(vContainer, vCurrent) : this.getFirstWidget(vContainer);
+  } else {
+    var vNext = vCurrent ? this.getWidgetBefore(vContainer, vCurrent) : this.getLastWidget(vContainer);
+  }
+
+  // If there was a widget found, focus it
+  if(vNext)
+  {
+    vNext.setFocused(true);
+    vNext._ontabfocus();
+  }
+}
+
+qx.Proto.compareTabOrder = function(c1, c2)
+{
+  // Sort-Check #1: Tab-Index
+  if(c1 == c2) {
+    return 0;
+  }
+
+  var t1 = c1.getTabIndex();
+  var t2 = c2.getTabIndex();
+
+  // The following are some ideas to handle focus after tabindex.
+
+  // Sort-Check #2: Top-Position
+  if(t1 != t2) {
+    return t1 - t2;
+  }
+
+  var y1 = qx.dom.Location.getPageBoxTop(c1.getElement());
+  var y2 = qx.dom.Location.getPageBoxTop(c2.getElement());
+
+  if(y1 != y2) {
+    return y1 - y2;
+  }
+
+  // Sort-Check #3: Left-Position
+  var x1 = qx.dom.Location.getPageBoxLeft(c1.getElement());
+  var x2 = qx.dom.Location.getPageBoxLeft(c2.getElement());
+
+  if(x1 != x2) {
+    return x1 - x2;
+  }
+
+  // Sort-Check #4: zIndex
+  var z1 = c1.getZIndex();
+  var z2 = c2.getZIndex();
+
+  if(z1 != z2) {
+    return z1 - z2;
+  }
+
+  return 0;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES FOR TAB HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getFirstWidget = function(vParentContainer) {
+  return this._getFirst(vParentContainer, null);
+}
+
+qx.Proto.getLastWidget = function(vParentContainer) {
+  return this._getLast(vParentContainer, null);
+}
+
+qx.Proto.getWidgetAfter = function(vParentContainer, vWidget)
+{
+  if(vParentContainer == vWidget) {
+    return this.getFirstWidget(vParentContainer);
+  }
+
+  if(vWidget.getAnonymous()) {
+    vWidget = vWidget.getParent();
+  }
+
+  if(vWidget == null) {
+    return [];
+  }
+
+  var vAll = [];
+
+  this._getAllAfter(vParentContainer, vWidget, vAll);
+
+  vAll.sort(this.compareTabOrder);
+
+  return vAll.length > 0 ? vAll[0] : this.getFirstWidget(vParentContainer);
+}
+
+qx.Proto.getWidgetBefore = function(vParentContainer, vWidget)
+{
+  if(vParentContainer == vWidget) {
+    return this.getLastWidget(vParentContainer);
+  }
+
+  if(vWidget.getAnonymous()) {
+    vWidget = vWidget.getParent();
+  }
+
+  if(vWidget == null) {
+    return [];
+  }
+
+  var vAll = [];
+
+  this._getAllBefore(vParentContainer, vWidget, vAll);
+
+  vAll.sort(this.compareTabOrder);
+
+  var vChildrenLength = vAll.length;
+  return vChildrenLength > 0 ? vAll[vChildrenLength-1] : this.getLastWidget(vParentContainer);
+}
+
+qx.Proto._getAllAfter = function(vParent, vWidget, vArray)
+{
+  var vChildren = vParent.getChildren();
+  var vCurrentChild;
+  var vChildrenLength = vChildren.length;
+
+  for (var i = 0; i < vChildrenLength; i++)
+  {
+    vCurrentChild = vChildren[i];
+
+    if(!(vCurrentChild instanceof qx.ui.core.Parent) && !(vCurrentChild instanceof qx.ui.basic.Terminator)) {
+      continue;
+    }
+
+    if(vCurrentChild.isFocusable() && vCurrentChild.getTabIndex() > 0 && this.compareTabOrder(vWidget, vCurrentChild) < 0) {
+      vArray.push(vChildren[i]);
+    }
+
+    if(!vCurrentChild.isFocusRoot() && vCurrentChild instanceof qx.ui.core.Parent) {
+      this._getAllAfter(vCurrentChild, vWidget, vArray);
+    }
+  }
+}
+
+qx.Proto._getAllBefore = function(vParent, vWidget, vArray)
+{
+  var vChildren = vParent.getChildren();
+  var vCurrentChild;
+  var vChildrenLength = vChildren.length;
+
+  for (var i = 0; i < vChildrenLength; i++)
+  {
+    vCurrentChild = vChildren[i];
+
+    if(!(vCurrentChild instanceof qx.ui.core.Parent) && !(vCurrentChild instanceof qx.ui.basic.Terminator)) {
+      continue;
+    }
+
+    if(vCurrentChild.isFocusable() && vCurrentChild.getTabIndex() > 0 && this.compareTabOrder(vWidget, vCurrentChild) > 0) {
+      vArray.push(vCurrentChild);
+    }
+
+    if(!vCurrentChild.isFocusRoot() && vCurrentChild instanceof qx.ui.core.Parent) {
+      this._getAllBefore(vCurrentChild, vWidget, vArray);
+    }
+  }
+}
+
+qx.Proto._getFirst = function(vParent, vFirstWidget)
+{
+  var vChildren = vParent.getChildren();
+  var vCurrentChild;
+  var vChildrenLength = vChildren.length;
+
+  for (var i = 0; i < vChildrenLength; i++)
+  {
+    vCurrentChild = vChildren[i];
+
+    if(!(vCurrentChild instanceof qx.ui.core.Parent) && !(vCurrentChild instanceof qx.ui.basic.Terminator)) {
+      continue;
+    }
+
+    if(vCurrentChild.isFocusable() && vCurrentChild.getTabIndex() > 0)
+    {
+      if(vFirstWidget == null || this.compareTabOrder(vCurrentChild, vFirstWidget) < 0) {
+        vFirstWidget = vCurrentChild;
+      }
+    }
+
+    if(!vCurrentChild.isFocusRoot() && vCurrentChild instanceof qx.ui.core.Parent) {
+      vFirstWidget = this._getFirst(vCurrentChild, vFirstWidget);
+    }
+  }
+
+  return vFirstWidget;
+}
+
+qx.Proto._getLast = function(vParent, vLastWidget)
+{
+  var vChildren = vParent.getChildren();
+  var vCurrentChild;
+  var vChildrenLength = vChildren.length;
+
+  for (var i = 0; i < vChildrenLength; i++)
+  {
+    vCurrentChild = vChildren[i];
+
+    if(!(vCurrentChild instanceof qx.ui.core.Parent) && !(vCurrentChild instanceof qx.ui.basic.Terminator)) {
+      continue;
+    }
+
+    if(vCurrentChild.isFocusable() && vCurrentChild.getTabIndex() > 0)
+    {
+      if(vLastWidget == null || this.compareTabOrder(vCurrentChild, vLastWidget) > 0) {
+        vLastWidget = vCurrentChild;
+      }
+    }
+
+    if(!vCurrentChild.isFocusRoot() && vCurrentChild instanceof qx.ui.core.Parent) {
+      vLastWidget = this._getLast(vCurrentChild, vLastWidget);
+    }
+  }
+
+  return vLastWidget;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._attachedWidget = null;
+
+  qx.core.Target.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/KeyEventHandler.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/KeyEventHandler.js
new file mode 100644 (file)
index 0000000..65e3c50
--- /dev/null
@@ -0,0 +1,725 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * Fabian Jakobs (fjakobs)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#require(qx.event.type.KeyEvent)
+#require(qx.util.Return);
+
+************************************************************************ */
+
+/**
+ * This class provides unified key event handler for Internet Explorer,
+ * Firefox, Opera and Safari
+ */
+qx.OO.defineClass("qx.event.handler.KeyEventHandler", qx.core.Target, function()
+{
+  qx.core.Target.call(this);
+
+  // Object Wrapper to Events (Needed for DOM-Events)
+  var o = this;
+
+  this.__onkeypress = function(e) { o._onkeypress(e); };
+  this.__onkeyupdown = function(e) { o._onkeyupdown(e); };
+});
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT-MAPPING
+---------------------------------------------------------------------------
+*/
+
+/** attach the key event handler to the DOM events */
+qx.Proto._attachEvents = function()
+{
+  var el = qx.sys.Client.getInstance().isGecko() ? window : document.body;
+
+  qx.dom.EventRegistration.addEventListener(el, "keypress", this.__onkeypress);
+  qx.dom.EventRegistration.addEventListener(el, "keyup", this.__onkeyupdown);
+  qx.dom.EventRegistration.addEventListener(el, "keydown", this.__onkeyupdown);
+};
+
+/** detach the key event handler from the DOM events */
+qx.Proto._detachEvents = function()
+{
+  var el = qx.sys.Client.getInstance().isGecko() ? window : document.body;
+
+  // Unregister dom events
+  qx.dom.EventRegistration.removeEventListener(el, "keypress", this.__onkeypress);
+  qx.dom.EventRegistration.removeEventListener(el, "keyup", this.__onkeyupdown);
+  qx.dom.EventRegistration.removeEventListener(el, "keydown", this.__onkeyupdown);
+};
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  KEY-MAPS
+---------------------------------------------------------------------------
+*/
+
+/** maps the charcodes of special printable keys to key identifiers */
+qx.Proto._specialCharCodeMap =
+{
+    8 : "Backspace",   // The Backspace (Back) key.
+    9 : "Tab",         // The Horizontal Tabulation (Tab) key.
+   32 : "Space"        // The Space (Spacebar) key.
+};
+
+/** maps the keycodes of non printable keys to key identifiers */
+qx.Proto._keyCodeToIdentifierMap =
+{
+   13 : "Enter",       // The Enter key.
+                       //   Note: This key identifier is also used for the
+                       //   Return (Macintosh numpad) key.
+   16 : "Shift",       // The Shift key.
+   17 : "Control",     // The Control (Ctrl) key.
+   18 : "Alt",         // The Alt (Menu) key.
+   20 : "CapsLock",    // The CapsLock key
+  224 : "Meta",        // The Meta key. (Apple Meta and Windows key)
+
+   27 : "Escape",      // The Escape (Esc) key.
+
+   37 : "Left",        // The Left Arrow key.
+   38 : "Up",          // The Up Arrow key.
+   39 : "Right",       // The Right Arrow key.
+   40 : "Down",        // The Down Arrow key.
+
+   33 : "PageUp",      // The Page Up key.
+   34 : "PageDown",    // The Page Down (Next) key.
+
+   35 : "End",         // The End key.
+   36 : "Home",        // The Home key.
+   45 : "Insert",      // The Insert (Ins) key. (Does not fire in Opera/Win)
+   46 : "Delete",      // The Delete (Del) Key.
+
+  112 : "F1",          // The F1 key.
+  113 : "F2",          // The F2 key.
+  114 : "F3",          // The F3 key.
+  115 : "F4",          // The F4 key.
+  116 : "F5",          // The F5 key.
+  117 : "F6",          // The F6 key.
+  118 : "F7",          // The F7 key.
+  119 : "F8",          // The F8 key.
+  120 : "F9",          // The F9 key.
+  121 : "F10",         // The F10 key.
+  122 : "F11",         // The F11 key.
+  123 : "F12",         // The F12 key.
+
+  144 : "NumLock",     // The Num Lock key.
+   44 : "PrintScreen", // The Print Screen (PrintScrn, SnapShot) key.
+  145 : "Scroll",      // The scroll lock key
+   19 : "Pause",       // The pause/break key
+
+   91 : "Win",         // The Windows Logo key
+   93 : "Apps"         // The Application key (Windows Context Menu)
+};
+
+/** maps the keycodes of the numpad keys to the right charcodes */
+qx.Proto._numpadToCharCode =
+{
+   96 : "0".charCodeAt(0),
+   97 : "1".charCodeAt(0),
+   98 : "2".charCodeAt(0),
+   99 : "3".charCodeAt(0),
+  100 : "4".charCodeAt(0),
+  101 : "5".charCodeAt(0),
+  102 : "6".charCodeAt(0),
+  103 : "7".charCodeAt(0),
+  104 : "8".charCodeAt(0),
+  105 : "9".charCodeAt(0),
+
+  106 : "*".charCodeAt(0),
+  107 : "+".charCodeAt(0),
+  109 : "-".charCodeAt(0),
+  110 : ",".charCodeAt(0),
+  111 : "/".charCodeAt(0)
+};
+
+
+// construct invers of keyCodeToIdentifierMap
+if (!qx.Proto._identifierToKeyCodeMap)
+{
+  qx.Proto._identifierToKeyCodeMap = {};
+
+  for (var key in qx.Proto._keyCodeToIdentifierMap) {
+    qx.Proto._identifierToKeyCodeMap[qx.Proto._keyCodeToIdentifierMap[key]] = parseInt(key);
+  }
+
+  for (var key in qx.Proto._specialCharCodeMap) {
+    qx.Proto._identifierToKeyCodeMap[qx.Proto._specialCharCodeMap[key]] = parseInt(key);
+  }
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HELPER-METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._charCodeA = "A".charCodeAt(0);
+qx.Proto._charCodeZ = "Z".charCodeAt(0);
+qx.Proto._charCode0 = "0".charCodeAt(0);
+qx.Proto._charCode9 = "9".charCodeAt(0);
+
+/**
+ * Checks wether the keyCode represents a non printable key
+ *
+ * @param keyCode (string)
+ * @return (boolean)
+ */
+qx.Proto._isNonPrintableKeyCode = function(keyCode) {
+  return this._keyCodeToIdentifierMap[keyCode] ? true : false;
+};
+
+
+/**
+ * Check wether the keycode can be reliably detected in keyup/keydown events
+ *
+ * @param keyCode (string)
+ * @return (boolean)
+ */
+qx.Proto._isIdentifiableKeyCode = function(keyCode)
+{
+  // A-Z
+  if (keyCode >= this._charCodeA && keyCode <= this._charCodeZ) {
+    return true;
+  }
+
+  // 0-9
+  if (keyCode >= this._charCode0 && keyCode <= this._charCode9) {
+    return true;
+  }
+
+  // Enter, Space, Tab, Backspace
+  if (this._specialCharCodeMap[keyCode]) {
+    return true;
+  }
+
+  // Numpad
+  if (this._numpadToCharCode[keyCode]) {
+    return true;
+  }
+
+  // non printable keys
+  if (this._isNonPrintableKeyCode(keyCode)) {
+    return true;
+  }
+
+  return false;
+};
+
+
+/**
+ * Checks wether a given string is a valid keyIdentifier
+ *
+ * @param keyIdentifier (string)
+ * @return (boolean) wether the given string is a valid keyIdentifier
+ */
+qx.Proto.isValidKeyIdentifier = function(keyIdentifier)
+{
+  if (this._identifierToKeyCodeMap[keyIdentifier]) {
+    return true;
+  }
+
+  if (keyIdentifier.length != 1) {
+    return false;
+  }
+
+  if (keyIdentifier >= "0" && keyIdentifier <= "9") {
+    return true;
+  }
+
+  if (keyIdentifier >= "A" && keyIdentifier <= "Z") {
+    return true;
+  }
+
+  switch (keyIdentifier)
+  {
+    case "+":
+    case "-":
+    case "*":
+    case "/":
+      return true;
+
+    default:
+      return false;
+  }
+};
+
+
+/**
+ * converts a keyboard code to the corresponding identifier
+ *
+ * @param keyCode (int)
+ * @return (string) key identifier
+ */
+qx.Proto._keyCodeToIdentifier = function(keyCode)
+{
+  if (this._isIdentifiableKeyCode(keyCode))
+  {
+    var numPadKeyCode = this._numpadToCharCode[keyCode];
+    if (numPadKeyCode) {
+      return String.fromCharCode(numPadKeyCode);
+    }
+
+    return (
+      this._keyCodeToIdentifierMap[keyCode] ||
+      this._specialCharCodeMap[keyCode] ||
+      String.fromCharCode(keyCode)
+    );
+  }
+  else
+  {
+    return "Unidentified";
+  }
+};
+
+
+/**
+ * converts a character code to the corresponding identifier
+ *
+ * @param charCode (string)
+ * @return (string) key identifier
+ */
+qx.Proto._charCodeToIdentifier = function(charCode) {
+  return this._specialCharCodeMap[charCode] || String.fromCharCode(charCode).toUpperCase();
+};
+
+
+/**
+ * converts a key identifier back to a keycode
+ *
+ * @param keyIdentifier (string)
+ * @return (int) keyboard code
+ */
+qx.Proto._identifierToKeyCode = function(keyIdentifier) {
+  return this._identifierToKeyCodeMap[keyIdentifier] || keyIdentifier.charCodeAt(0);
+};
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  COMPATIBILITY TO COMMAND
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._oldKeyNameToKeyIdentifierMap =
+{
+  // all other keys are converted by converting the first letter to uppercase
+
+  esc      : "Escape",
+  ctrl     : "Control",
+  print    : "PrintScreen",
+  del      : "Delete",
+  pageup   : "PageUp",
+  pagedown : "PageDown",
+  numlock  : "NumLock",
+  numpad_0 : "0",
+  numpad_1 : "1",
+  numpad_2 : "2",
+  numpad_3 : "3",
+  numpad_4 : "4",
+  numpad_5 : "5",
+  numpad_6 : "6",
+  numpad_7 : "7",
+  numpad_8 : "8",
+  numpad_9 : "9",
+  numpad_divide   : "/",
+  numpad_multiply : "*",
+  numpad_minus    : "-",
+  numpad_plus     : "+"
+};
+
+
+/**
+ * converts an old key name as found in @see(qx.event.type.KeyEvent.keys) to
+ * the new keyIdentifier.
+ *
+ * @param keyName (string) old name of the key.
+ * @return (string) corresponding keyIdentifier or "Unidentified" if a conversion was not possible
+ */
+qx.Proto.oldKeyNameToKeyIdentifier = function(keyName)
+{
+  var keyIdentifier = "Unidentified";
+
+  if (this.isValidKeyIdentifier(keyName)) {
+    return keyName;
+  }
+
+  if (keyName.length == 1 && keyName >= "a" && keyName <= "z") {
+    return keyName.toUpperCase();
+  }
+
+  keyName = keyName.toLowerCase();
+
+  // check wether its a valid old key name
+  if (!qx.event.type.KeyEvent.keys[keyName]) {
+    return "Unidentified";
+  }
+
+  var keyIdentifier = this._oldKeyNameToKeyIdentifierMap[keyName];
+  if (keyIdentifier) {
+    return keyIdentifier;
+  } else {
+    return qx.lang.String.toFirstUp(keyName);
+  }
+};
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  IDEALIZED-KEY-HANDLER
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Key handler for an idealized browser.
+ * Runs after the browser specific key handlers have normalized the key events.
+ *
+ * @param keyCode (string) keyboard code
+ * @param charCode (string) character code
+ * @param eventType (string) type of the event (keydown, keypress, keyup)
+ * @param domEvent (Element) DomEvent
+ */
+qx.Proto._idealKeyHandler = function(keyCode, charCode, eventType, domEvent)
+{
+  if (!keyCode && !charCode) {
+    return;
+  }
+
+  var keyIdentifier;
+
+  // Use: keyCode
+  if (keyCode)
+  {
+    keyIdentifier = this._keyCodeToIdentifier(keyCode);
+
+    if (keyIdentifier != "Unidentified") {
+      qx.event.handler.EventHandler.getInstance()._onkeyevent_post(domEvent, eventType, keyCode, charCode, keyIdentifier);
+    }
+  }
+
+  // Use: charCode
+  else
+  {
+    keyIdentifier = this._charCodeToIdentifier(charCode);
+
+    if (keyIdentifier != "Unidentified")
+    {
+      qx.event.handler.EventHandler.getInstance()._onkeyevent_post(domEvent, "keypress", keyCode, charCode, keyIdentifier);
+      qx.event.handler.EventHandler.getInstance()._onkeyevent_post(domEvent, "keyinput", keyCode, charCode, keyIdentifier);
+    }
+  }
+};
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  BROWSER-SPECIFIC-KEY-HANDLER: MSHTML
+---------------------------------------------------------------------------
+*/
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto._lastUpDownType = {};
+
+  qx.Proto._charCode2KeyCode =
+  {
+    13 : 13,
+    27 : 27
+  };
+
+  qx.Proto._onkeyupdown = function(domEvent)
+  {
+    domEvent = window.event || domEvent;
+
+    var keyCode = domEvent.keyCode;
+    var charcode = 0;
+    var type = domEvent.type;
+
+    // Ignore the down in such sequences dp dp dp
+    if (!(this._lastUpDownType[keyCode] == "keydown" && type == "keydown")) {
+      this._idealKeyHandler(keyCode, charcode, type, domEvent);
+    }
+
+    // On non print-able character be sure to add a keypress event
+    if (this._isNonPrintableKeyCode(keyCode) && type == "keydown") {
+      this._idealKeyHandler(keyCode, charcode, "keypress", domEvent);
+    }
+
+    // Store last type
+    this._lastUpDownType[keyCode] = type;
+  };
+
+  qx.Proto._onkeypress = function(domEvent)
+  {
+    domEvent = window.event || domEvent;
+
+    if (this._charCode2KeyCode[domEvent.keyCode]) {
+      this._idealKeyHandler(this._charCode2KeyCode[domEvent.keyCode], 0, domEvent.type, domEvent);
+    } else {
+      this._idealKeyHandler(0, domEvent.keyCode, domEvent.type, domEvent);
+    }
+  };
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  BROWSER-SPECIFIC-KEY-HANDLER: GECKO
+---------------------------------------------------------------------------
+*/
+
+else if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.Proto._lastUpDownType = {};
+
+  qx.Proto._keyCodeFix = {
+    12 : qx.Proto._identifierToKeyCode("NumLock")
+  };
+
+  /**
+   * key handler for Gecko
+   *
+   * @param domEvent (Element) DomEvent
+   */
+  qx.Proto._onkeyupdown = qx.Proto._onkeypress = function(domEvent)
+  {
+    var keyCode = this._keyCodeFix[domEvent.keyCode] || domEvent.keyCode;
+    var charCode = domEvent.charCode;
+    var type = domEvent.type;
+
+    // FF repeats under windows keydown events like IE
+    if (qx.sys.Client.getInstance().runsOnWindows())
+    {
+      var keyIdentifier = keyCode ? this._keyCodeToIdentifier(keyCode) : this._charCodeToIdentifier(charCode)
+
+      if (!(this._lastUpDownType[keyIdentifier] == "keypress" && type == "keydown")) {
+        this._idealKeyHandler(keyCode, charCode, type, domEvent);
+      }
+
+      // Store last type
+      this._lastUpDownType[keyIdentifier] = type;
+    }
+
+    // all other OSes
+    else
+    {
+      this._idealKeyHandler(keyCode, charCode, type, domEvent);
+    }
+  };
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  BROWSER-SPECIFIC-KEY-HANDLER: WEBKIT
+---------------------------------------------------------------------------
+*/
+
+else if (qx.sys.Client.getInstance().isWebkit())
+{
+  qx.Proto._charCode2KeyCode =
+  {
+    // Safari/Webkit Mappings
+    63289 : qx.Proto._identifierToKeyCode("NumLock"),
+    63276 : qx.Proto._identifierToKeyCode("PageUp"),
+    63277 : qx.Proto._identifierToKeyCode("PageDown"),
+    63275 : qx.Proto._identifierToKeyCode("End"),
+    63273 : qx.Proto._identifierToKeyCode("Home"),
+    63234 : qx.Proto._identifierToKeyCode("Left"),
+    63232 : qx.Proto._identifierToKeyCode("Up"),
+    63235 : qx.Proto._identifierToKeyCode("Right"),
+    63233 : qx.Proto._identifierToKeyCode("Down"),
+    63272 : qx.Proto._identifierToKeyCode("Delete"),
+    63302 : qx.Proto._identifierToKeyCode("Insert"),
+    63236 : qx.Proto._identifierToKeyCode("F1"),
+    63237 : qx.Proto._identifierToKeyCode("F2"),
+    63238 : qx.Proto._identifierToKeyCode("F3"),
+    63239 : qx.Proto._identifierToKeyCode("F4"),
+    63240 : qx.Proto._identifierToKeyCode("F5"),
+    63241 : qx.Proto._identifierToKeyCode("F6"),
+    63242 : qx.Proto._identifierToKeyCode("F7"),
+    63243 : qx.Proto._identifierToKeyCode("F8"),
+    63244 : qx.Proto._identifierToKeyCode("F9"),
+    63245 : qx.Proto._identifierToKeyCode("F10"),
+    63246 : qx.Proto._identifierToKeyCode("F11"),
+    63247 : qx.Proto._identifierToKeyCode("F12"),
+    63248 : qx.Proto._identifierToKeyCode("PrintScreen"),
+
+        3 : qx.Proto._identifierToKeyCode("Enter"),
+       12 : qx.Proto._identifierToKeyCode("NumLock"),
+       13 : qx.Proto._identifierToKeyCode("Enter")
+  };
+
+  qx.Proto._onkeyupdown = qx.Proto._onkeypress = function(domEvent)
+  {
+    var keyCode = 0;
+    var charCode = 0;
+    var type = domEvent.type;
+
+    // prevent Safari from sending key signals twice
+    // This bug is fixed in recent Webkit builds so we need a revision check
+    // see http://trac.mochikit.com/ticket/182 for details
+    if (qx.sys.Client.getInstance().getVersion() < 420)
+    {
+      if (!this._lastCharCodeForType) {
+        this._lastCharCodeForType = {};
+      }
+
+      var isSafariSpecialKey = this._lastCharCodeForType[type] > 63000;
+
+      if (isSafariSpecialKey) {
+        this._lastCharCodeForType[type] = null;
+        return;
+      }
+
+      this._lastCharCodeForType[type] = domEvent.charCode;
+    }
+
+    if (type == "keyup" || type == "keydown") {
+      keyCode = this._charCode2KeyCode[domEvent.charCode] || domEvent.keyCode;
+    }
+    else
+    {
+      if (this._charCode2KeyCode[domEvent.charCode]) {
+        keyCode = this._charCode2KeyCode[domEvent.charCode];
+      } else {
+        charCode = domEvent.charCode;
+      }
+    }
+
+    this._idealKeyHandler(keyCode, charCode, type, domEvent);
+  };
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  BROWSER-SPECIFIC-KEY-HANDLER: OPERA
+---------------------------------------------------------------------------
+*/
+
+else if (qx.sys.Client.getInstance().isOpera())
+{
+  qx.Proto._onkeyupdown = function(domEvent) {
+    this._idealKeyHandler(domEvent.keyCode, 0, domEvent.type, domEvent);
+  };
+
+  qx.Proto._onkeypress = function(domEvent)
+  {
+    if (this._keyCodeToIdentifierMap[domEvent.keyCode]) {
+      this._idealKeyHandler(domEvent.keyCode, 0, domEvent.type, domEvent);
+    } else {
+      this._idealKeyHandler(0, domEvent.keyCode, domEvent.type, domEvent);
+    }
+  };
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Destructor
+ */
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  // Detach keyboard events
+  this._detachEvents();
+
+  return qx.core.Target.prototype.dispose.call(this);
+};
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/DataEvent.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/DataEvent.js
new file mode 100644 (file)
index 0000000..a8b0a84
--- /dev/null
@@ -0,0 +1,48 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+/*!
+  Event object for property changes.
+*/
+qx.OO.defineClass("qx.event.type.DataEvent", qx.event.type.Event,
+function(vType, vData)
+{
+  qx.event.type.Event.call(this, vType);
+
+  this.setData(vData);
+});
+
+qx.OO.addFastProperty({ name : "propagationStopped", defaultValue : false });
+qx.OO.addFastProperty({ name : "data" });
+
+qx.Proto.dispose = function()
+{
+  if(this.getDisposed()) {
+    return;
+  }
+
+  this._valueData = null;
+
+  return qx.event.type.Event.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/DomEvent.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/DomEvent.js
new file mode 100644 (file)
index 0000000..5e62b53
--- /dev/null
@@ -0,0 +1,227 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.event.type.DomEvent", qx.event.type.Event,
+function(vType, vDomEvent, vDomTarget, vTarget, vOriginalTarget)
+{
+  qx.event.type.Event.call(this, vType);
+
+  this.setDomEvent(vDomEvent);
+  this.setDomTarget(vDomTarget);
+
+  this.setTarget(vTarget);
+  this.setOriginalTarget(vOriginalTarget);
+});
+
+qx.OO.addFastProperty({ name : "bubbles", defaultValue : true, noCompute : true });
+qx.OO.addFastProperty({ name : "propagationStopped", defaultValue : false, noCompute : true });
+
+qx.OO.addFastProperty({ name : "domEvent", setOnlyOnce : true, noCompute : true });
+qx.OO.addFastProperty({ name : "domTarget", setOnlyOnce : true, noCompute : true });
+
+/**
+ * The modifiers. A mask of the pressed modifier keys. This is an OR-combination of
+ * {@link #SHIFT_MASK}, {@link #CTRL_MASK}, {@link #ALT_MASK} and {@link #META_MASK}.
+ */
+qx.OO.addCachedProperty({ name : "modifiers", defaultValue : null });
+
+
+// property computer
+qx.Proto._computeModifiers = function() {
+    var mask = 0;
+    var evt = this.getDomEvent();
+    if (evt.shiftKey) mask |= qx.event.type.DomEvent.SHIFT_MASK;
+    if (evt.ctrlKey)  mask |= qx.event.type.DomEvent.CTRL_MASK;
+    if (evt.altKey)   mask |= qx.event.type.DomEvent.ALT_MASK;
+    if (evt.metaKey)  mask |= qx.event.type.DomEvent.META_MASK;
+    return mask;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SPECIAL KEY SUPPORT
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Returns whether the the ctrl key is pressed.
+ *
+ * @return {boolean} whether the the ctrl key is pressed.
+ */
+qx.Proto.isCtrlPressed = function() {
+  return this.getDomEvent().ctrlKey;
+}
+
+/**
+ * Returns whether the the ctrl key is pressed.
+ *
+ * @return {boolean} whether the the ctrl key is pressed.
+ * @deprecated Use {@link #isCtrlPressed} instead.
+ */
+qx.Proto.getCtrlKey = qx.Proto.isCtrlPressed;
+
+
+/**
+ * Returns whether the the shift key is pressed.
+ *
+ * @return {boolean} whether the the shift key is pressed.
+ */
+qx.Proto.isShiftPressed = function() {
+  return this.getDomEvent().shiftKey;
+}
+
+/**
+ * Returns whether the the shift key is pressed.
+ *
+ * @return {boolean} whether the the shift key is pressed.
+ * @deprecated Use {@link #isShiftPressed} instead.
+ */
+qx.Proto.getShiftKey = qx.Proto.isShiftPressed;
+
+
+/**
+ * Returns whether the the alt key is pressed.
+ *
+ * @return {boolean} whether the the alt key is pressed.
+ */
+qx.Proto.isAltPressed = function() {
+  return this.getDomEvent().altKey;
+}
+
+/**
+ * Returns whether the the alt key is pressed.
+ *
+ * @return {boolean} whether the the alt key is pressed.
+ * @deprecated Use {@link #isAltPressed} instead.
+ */
+qx.Proto.getAltKey = qx.Proto.isAltPressed;
+
+
+/**
+ * Returns whether the the meta key is pressed.
+ *
+ * @return {boolean} whether the the meta key is pressed.
+ */
+qx.Proto.isMetaPressed = function() {
+  return this.getDomEvent().metaKey;
+}
+
+
+/**
+ * Returns whether the ctrl key or (on the Mac) the command key is pressed.
+ *
+ * @return {boolean} <code>true</code> if the command key is pressed on the Mac
+ *         or the ctrl key is pressed on another system.
+ */
+qx.Proto.isCtrlOrCommandPressed = function() {
+  if (qx.sys.Client.getInstance().runsOnMacintosh()) {
+    return this.getDomEvent().metaKey;
+  } else {
+    return this.getDomEvent().ctrlKey;
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PREVENT DEFAULT
+---------------------------------------------------------------------------
+*/
+
+if(qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto.setDefaultPrevented = function(vValue)
+  {
+    if (!vValue) {
+      return this.error("It is not possible to set preventDefault to false if it was true before!", "setDefaultPrevented");
+    }
+
+    this.getDomEvent().returnValue = false;
+
+    qx.event.type.Event.prototype.setDefaultPrevented.call(this, vValue);
+  }
+}
+else
+{
+  qx.Proto.setDefaultPrevented = function(vValue)
+  {
+    if (!vValue) {
+      return this.error("It is not possible to set preventDefault to false if it was true before!", "setDefaultPrevented");
+    }
+
+    this.getDomEvent().preventDefault();
+    this.getDomEvent().returnValue = false;
+
+    qx.event.type.Event.prototype.setDefaultPrevented.call(this, vValue);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._valueDomEvent = null;
+  this._valueDomTarget = null;
+
+  return qx.event.type.Event.prototype.dispose.call(this);
+}
+
+
+
+
+/** {int} The modifier mask for the shift key. */
+qx.Class.SHIFT_MASK = 1;
+
+/** {int} The modifier mask for the control key. */
+qx.Class.CTRL_MASK = 2;
+
+/** {int} The modifier mask for the alt key. */
+qx.Class.ALT_MASK = 4;
+
+/** {int} The modifier mask for the meta key (e.g. apple key on Macs). */
+qx.Class.META_MASK = 8;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/DragEvent.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/DragEvent.js
new file mode 100644 (file)
index 0000000..96c1db9
--- /dev/null
@@ -0,0 +1,155 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_dragdrop)
+
+************************************************************************ */
+
+/*!
+  The event object for drag and drop sessions
+*/
+qx.OO.defineClass("qx.event.type.DragEvent", qx.event.type.MouseEvent,
+function(vType, vMouseEvent, vTarget, vRelatedTarget)
+{
+  this._mouseEvent = vMouseEvent;
+
+  var vOriginalTarget = null;
+
+  switch(vType)
+  {
+    case "dragstart":
+    case "dragover":
+      vOriginalTarget = vMouseEvent.getOriginalTarget();
+  }
+
+  qx.event.type.MouseEvent.call(this, vType, vMouseEvent.getDomEvent(), vTarget.getElement(), vTarget, vOriginalTarget, vRelatedTarget);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIY
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getMouseEvent = function() {
+  return this._mouseEvent;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPLICATION CONNECTION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.startDrag = function()
+{
+  if (this.getType() != "dragstart") {
+    throw new Error("qx.event.type.DragEvent startDrag can only be called during the dragstart event: " + this.getType());
+  }
+
+  this.stopPropagation();
+  qx.event.handler.DragAndDropHandler.getInstance().startDrag();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DATA SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.addData = function(sType, oData) {
+  qx.event.handler.DragAndDropHandler.getInstance().addData(sType, oData);
+}
+
+qx.Proto.getData = function(sType) {
+  return qx.event.handler.DragAndDropHandler.getInstance().getData(sType);
+}
+
+qx.Proto.clearData = function() {
+  qx.event.handler.DragAndDropHandler.getInstance().clearData();
+}
+
+qx.Proto.getDropDataTypes = function() {
+  return qx.event.handler.DragAndDropHandler.getInstance().getDropDataTypes();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ACTION SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.addAction = function(sAction) {
+  qx.event.handler.DragAndDropHandler.getInstance().addAction(sAction);
+}
+
+qx.Proto.removeAction = function(sAction) {
+  qx.event.handler.DragAndDropHandler.getInstance().removeAction(sAction);
+}
+
+qx.Proto.getAction = function() {
+  return qx.event.handler.DragAndDropHandler.getInstance().getCurrentAction();
+}
+
+qx.Proto.clearActions = function() {
+  qx.event.handler.DragAndDropHandler.getInstance().clearActions();
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._mouseEvent = null;
+
+  return qx.event.type.MouseEvent.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/Event.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/Event.js
new file mode 100644 (file)
index 0000000..8d52339
--- /dev/null
@@ -0,0 +1,88 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+/*!
+  The qooxdoo core event object. Each event object for qx.core.Targets should extend this class.
+*/
+qx.OO.defineClass("qx.event.type.Event", qx.core.Object,
+function(vType)
+{
+  qx.core.Object.call(this, false);
+
+  this.setType(vType);
+});
+
+qx.OO.addFastProperty({ name : "type", setOnlyOnce : true });
+
+qx.OO.addFastProperty({ name : "originalTarget", setOnlyOnce : true });
+qx.OO.addFastProperty({ name : "target", setOnlyOnce : true });
+qx.OO.addFastProperty({ name : "relatedTarget", setOnlyOnce : true });
+qx.OO.addFastProperty({ name : "currentTarget" });
+
+qx.OO.addFastProperty({ name : "bubbles", defaultValue : false, noCompute : true });
+qx.OO.addFastProperty({ name : "propagationStopped", defaultValue : true, noCompute : true });
+qx.OO.addFastProperty({ name : "defaultPrevented", defaultValue : false, noCompute : true });
+
+/** If the event object should automatically be disposed by the dispatcher */
+qx.OO.addFastProperty({ name : "autoDispose", defaultValue : false });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SHORTCUTS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.preventDefault = function() {
+  this.setDefaultPrevented(true);
+}
+
+qx.Proto.stopPropagation = function() {
+  this.setPropagationStopped(true);
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if(this.getDisposed()) {
+    return;
+  }
+
+  this._valueOriginalTarget = null;
+  this._valueTarget = null;
+  this._valueRelatedTarget = null;
+  this._valueCurrentTarget = null;
+
+  return qx.core.Object.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/FocusEvent.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/FocusEvent.js
new file mode 100644 (file)
index 0000000..835ab05
--- /dev/null
@@ -0,0 +1,46 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+/*!
+  This event handles all focus events.
+
+  The four supported types are:
+  1+2: focus and blur also propagate the target object
+  3+4: focusout and focusin are bubbling to the parent objects
+*/
+qx.OO.defineClass("qx.event.type.FocusEvent", qx.event.type.Event,
+function(vType, vTarget)
+{
+  qx.event.type.Event.call(this, vType);
+
+  this.setTarget(vTarget);
+
+  switch(vType)
+  {
+    case "focusin":
+    case "focusout":
+      this.setBubbles(true);
+      this.setPropagationStopped(false);
+  }
+});
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/KeyEvent.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/KeyEvent.js
new file mode 100644 (file)
index 0000000..32552a1
--- /dev/null
@@ -0,0 +1,152 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * Fabian Jakobs (fjakobs)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+/**
+ * A key event instance contains all data for each occured key event
+ *
+ * @param vType (string) event type (keydown, keypress, keyinput, keyup)
+ * @param vDomEvent (Element) DOM event object
+ * @param vDomTarget (Element) target element of the DOM event
+ * @param vTarget
+ * @param vOriginalTarget
+ * @param vKeyCode (int)
+ * @param vCharCode (int)
+ * @param vKeyIdentifier (string)
+ */
+qx.OO.defineClass("qx.event.type.KeyEvent", qx.event.type.DomEvent,
+function(vType, vDomEvent, vDomTarget, vTarget, vOriginalTarget, vKeyCode, vCharCode, vKeyIdentifier)
+{
+  qx.event.type.DomEvent.call(this, vType, vDomEvent, vDomTarget, vTarget, vOriginalTarget);
+
+  this.setKeyCode(vKeyCode);
+  this.setCharCode(vCharCode);
+  this.setKeyIdentifier(vKeyIdentifier);
+});
+
+/**
+ * Legacy keycode
+ * @deprecated Will be removed with qooxdoo 0.7
+ */
+qx.OO.addFastProperty({ name : "keyCode", setOnlyOnce : true, noCompute : true });
+
+/**
+ * Unicode number of the pressed character.
+ * Only valid in "keyinput" events
+ */
+qx.OO.addFastProperty({ name : "charCode", setOnlyOnce : true, noCompute : true });
+
+/**
+ * Identifier of the pressed key.
+ * Not Valid in "keyinput" events"
+ */
+qx.OO.addFastProperty({ name : "keyIdentifier", setOnlyOnce : true, noCompute : true });
+
+
+
+
+
+
+
+
+/* ************************************************************************
+   Class data, properties and methods
+************************************************************************ */
+
+/*
+---------------------------------------------------------------------------
+  CLASS PROPERTIES AND METHODS
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Mapping of the old key identifiers to the key codes
+ * @deprecated
+ */
+qx.event.type.KeyEvent.keys =
+{
+  esc : 27,
+  enter : 13,
+  tab : 9,
+  space : 32,
+
+  up : 38,
+  down : 40,
+  left : 37,
+  right : 39,
+
+  shift : 16,
+  ctrl : 17,
+  alt : 18,
+
+  f1 : 112,
+  f2 : 113,
+  f3 : 114,
+  f4 : 115,
+  f5 : 116,
+  f6 : 117,
+  f7 : 118,
+  f8 : 119,
+  f9 : 120,
+  f10 : 121,
+  f11 : 122,
+  f12 : 123,
+
+  print : 124,
+
+  del : 46,
+  backspace : 8,
+  insert : 45,
+  home : 36,
+  end : 35,
+
+  pageup : 33,
+  pagedown : 34,
+
+  numlock : 144,
+
+  numpad_0 : 96,
+  numpad_1 : 97,
+  numpad_2 : 98,
+  numpad_3 : 99,
+  numpad_4 : 100,
+  numpad_5 : 101,
+  numpad_6 : 102,
+  numpad_7 : 103,
+  numpad_8 : 104,
+  numpad_9 : 105,
+
+  numpad_divide : 111,
+  numpad_multiply : 106,
+  numpad_minus : 109,
+  numpad_plus : 107
+};
+
+// create dynamic codes copy
+(function() {
+  qx.event.type.KeyEvent.codes = {};
+  for (var i in qx.event.type.KeyEvent.keys) {
+    qx.event.type.KeyEvent.codes[qx.event.type.KeyEvent.keys[i]] = i;
+  }
+})();
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/MouseEvent.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/MouseEvent.js
new file mode 100644 (file)
index 0000000..55e32e9
--- /dev/null
@@ -0,0 +1,309 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+/*!
+  A mouse event instance contains all data for each occured mouse event
+*/
+qx.OO.defineClass("qx.event.type.MouseEvent", qx.event.type.DomEvent,
+function(vType, vDomEvent, vDomTarget, vTarget, vOriginalTarget, vRelatedTarget)
+{
+  qx.event.type.DomEvent.call(this, vType, vDomEvent, vDomTarget, vTarget, vOriginalTarget);
+
+  if (vRelatedTarget) {
+    this.setRelatedTarget(vRelatedTarget);
+  }
+});
+
+qx.Class.C_BUTTON_LEFT = "left";
+qx.Class.C_BUTTON_MIDDLE = "middle";
+qx.Class.C_BUTTON_RIGHT = "right";
+qx.Class.C_BUTTON_NONE = "none";
+
+
+
+/* ************************************************************************
+   Class data, properties and methods
+************************************************************************ */
+
+/*
+---------------------------------------------------------------------------
+  CLASS PROPERTIES AND METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.event.type.MouseEvent._screenX = qx.event.type.MouseEvent._screenY = qx.event.type.MouseEvent._clientX = qx.event.type.MouseEvent._clientY = qx.event.type.MouseEvent._pageX = qx.event.type.MouseEvent._pageY = 0;
+qx.event.type.MouseEvent._button = null;
+
+qx.event.type.MouseEvent._storeEventState = function(e)
+{
+  qx.event.type.MouseEvent._screenX = e.getScreenX();
+  qx.event.type.MouseEvent._screenY = e.getScreenY();
+  qx.event.type.MouseEvent._clientX = e.getClientX();
+  qx.event.type.MouseEvent._clientY = e.getClientY();
+  qx.event.type.MouseEvent._pageX   = e.getPageX();
+  qx.event.type.MouseEvent._pageY   = e.getPageY();
+  qx.event.type.MouseEvent._button  = e.getButton();
+}
+
+qx.event.type.MouseEvent.getScreenX = function() { return qx.event.type.MouseEvent._screenX; }
+qx.event.type.MouseEvent.getScreenY = function() { return qx.event.type.MouseEvent._screenY; }
+qx.event.type.MouseEvent.getClientX = function() { return qx.event.type.MouseEvent._clientX; }
+qx.event.type.MouseEvent.getClientY = function() { return qx.event.type.MouseEvent._clientY; }
+qx.event.type.MouseEvent.getPageX   = function() { return qx.event.type.MouseEvent._pageX;   }
+qx.event.type.MouseEvent.getPageY   = function() { return qx.event.type.MouseEvent._pageY;   }
+qx.event.type.MouseEvent.getButton  = function() { return qx.event.type.MouseEvent._button;  }
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.event.type.MouseEvent.buttons = { left : 1, right : 2, middle : 4 }
+}
+else
+{
+  qx.event.type.MouseEvent.buttons = { left : 0, right : 2, middle : 1 }
+}
+
+
+
+
+
+
+/* ************************************************************************
+   Instance data, properties and methods
+************************************************************************ */
+
+/*
+---------------------------------------------------------------------------
+  SCREEN COORDINATES SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getScreenX = function() {
+  return this.getDomEvent().screenX;
+}
+
+qx.Proto.getScreenY = function() {
+  return this.getDomEvent().screenY;
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PAGE COORDINATES SUPPORT
+---------------------------------------------------------------------------
+*/
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+qx.OO.addFastProperty({ name : "pageX", readOnly : true });
+qx.OO.addFastProperty({ name : "pageY", readOnly : true });
+
+  if (qx.sys.Client.getInstance().isInQuirksMode())
+  {
+    qx.Proto._computePageX = function() {
+      return this.getDomEvent().clientX + document.documentElement.scrollLeft;
+    }
+
+    qx.Proto._computePageY = function() {
+      return this.getDomEvent().clientY + document.documentElement.scrollTop;
+    }
+  }
+  else
+  {
+    qx.Proto._computePageX = function() {
+      return this.getDomEvent().clientX + document.body.scrollLeft;
+    }
+
+    qx.Proto._computePageY = function() {
+      return this.getDomEvent().clientY + document.body.scrollTop;
+    }
+  }
+}
+else if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.Proto.getPageX = function() {
+    return this.getDomEvent().pageX;
+  }
+
+  qx.Proto.getPageY = function() {
+    return this.getDomEvent().pageY;
+  }
+}
+else
+{
+  qx.Proto.getPageX = function() {
+    return this.getDomEvent().clientX;
+  }
+
+  qx.Proto.getPageY = function() {
+    return this.getDomEvent().clientY;
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CLIENT COORDINATES SUPPORT
+---------------------------------------------------------------------------
+*/
+
+if (qx.sys.Client.getInstance().isMshtml() || qx.sys.Client.getInstance().isGecko())
+{
+  qx.Proto.getClientX = function() {
+    return this.getDomEvent().clientX;
+  }
+
+  qx.Proto.getClientY = function() {
+    return this.getDomEvent().clientY;
+  }
+}
+else
+{
+qx.OO.addFastProperty({ name : "clientX", readOnly : true });
+qx.OO.addFastProperty({ name : "clientY", readOnly : true });
+
+  qx.Proto._computeClientX = function() {
+    return this.getDomEvent().clientX + (document.body && document.body.scrollLeft != null ? document.body.scrollLeft : 0);
+  }
+
+  qx.Proto._computeClientY = function() {
+    return this.getDomEvent().clientY + (document.body && document.body.scrollTop != null ? document.body.scrollTop : 0);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  BUTTON SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addFastProperty({ name : "button", readOnly : true });
+
+// IE does not set e.button in click events
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto.isLeftButtonPressed = function() {
+    if (this.getType() == "click") {
+      return true;
+    } else {
+      return this.getButton() === qx.event.type.MouseEvent.C_BUTTON_LEFT;
+    }
+  }
+}
+else
+{
+  qx.Proto.isLeftButtonPressed = function() {
+    return this.getButton() === qx.event.type.MouseEvent.C_BUTTON_LEFT;
+  }
+}
+
+qx.Proto.isMiddleButtonPressed = function() {
+  return this.getButton() === qx.event.type.MouseEvent.C_BUTTON_MIDDLE;
+}
+
+qx.Proto.isRightButtonPressed = function() {
+  return this.getButton() === qx.event.type.MouseEvent.C_BUTTON_RIGHT;
+}
+
+qx.Proto._computeButton = function() {
+  var e = this.getDomEvent();
+  if (e.which) {
+    switch (e.which) {
+      case 1:
+        return qx.event.type.MouseEvent.C_BUTTON_LEFT;
+
+      case 3:
+        return qx.event.type.MouseEvent.C_BUTTON_RIGHT;
+
+      case 2:
+        return qx.event.type.MouseEvent.C_BUTTON_MIDDLE;
+
+      default:
+        return qx.event.type.MouseEvent.C_BUTTON_NONE;
+
+    }
+  } else {
+    switch(e.button) {
+      case 1:
+        return qx.event.type.MouseEvent.C_BUTTON_LEFT;
+
+      case 2:
+        return qx.event.type.MouseEvent.C_BUTTON_RIGHT;
+
+      case 4:
+        return qx.event.type.MouseEvent.C_BUTTON_MIDDLE;
+
+      default:
+        return qx.event.type.MouseEvent.C_BUTTON_NONE;
+    }
+  }
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  WHEEL SUPPORT
+---------------------------------------------------------------------------
+*/
+
+// Implementation differences: http://ajaxian.com/archives/javascript-and-mouse-wheels
+
+qx.OO.addFastProperty({ name : "wheelDelta", readOnly : true });
+
+if(qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto._computeWheelDelta = function() {
+    return this.getDomEvent().wheelDelta / 120;
+  }
+}
+else if(qx.sys.Client.getInstance().isOpera())
+{
+  qx.Proto._computeWheelDelta = function() {
+    return -this.getDomEvent().wheelDelta / 120;
+  }
+}
+else
+{
+  qx.Proto._computeWheelDelta = function() {
+    return -this.getDomEvent().detail / 3;
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/Json.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/Json.js
new file mode 100644 (file)
index 0000000..d74a502
--- /dev/null
@@ -0,0 +1,385 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+     2006 by Derrell Lipman
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+       <sebastian dot werner at 1und1 dot de>
+     * Andreas Ecker (ecker)
+       <andreas dot ecker at 1und1 dot de>
+     * Andreas Junghans (lucidcake)
+       <andreas dot junghans at stz-ida dot de>
+     * Derrell Lipman
+       <derrell dot lipman at unwireduniverse dot com>
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(io_remote)
+
+************************************************************************ */
+
+
+/*
+Copyright (c) 2005 JSON.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The Software shall be used for Good, not Evil.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+
+/**
+ * This is a slightly modified JSON implementation that supports Dates and
+ * treats undefined like null.
+ */
+
+qx.OO.defineClass("qx.io.Json");
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("encodeUndefined", true);
+qx.Settings.setDefault("enableDebug", false);
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  IMPLEMENTATION
+---------------------------------------------------------------------------
+*/
+
+qx.io.Json = function ()
+{
+  var m = {
+      '\b': '\\b',
+      '\t': '\\t',
+      '\n': '\\n',
+      '\f': '\\f',
+      '\r': '\\r',
+      '"' : '\\"',
+      '\\': '\\\\'
+    },
+    s = {
+      'boolean': function (x) {
+        return String(x);
+      },
+
+      number: function (x) {
+        return isFinite(x) ? String(x) : 'null';
+      },
+
+      string: function (x) {
+        if (/["\\\x00-\x1f]/.test(x)) {
+          x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {
+            var c = m[b];
+            if (c) {
+              return c;
+            }
+            c = b.charCodeAt();
+            return '\\u00' +
+              Math.floor(c / 16).toString(16) +
+              (c % 16).toString(16);
+          });
+        }
+        return '"' + x + '"';
+      },
+
+      object: function (x) {
+        if (x) {
+          var a = [], b, f, i, l, v;
+          if (x instanceof Array) {
+            var beautify = qx.io.Json._beautify;
+            a[0] = '[';
+            if (beautify) {
+              qx.io.Json._indent += qx.io.Json.BEAUTIFYING_INDENT;
+              a.push(qx.io.Json._indent);
+            }
+            l = x.length;
+            for (i = 0; i < l; i += 1) {
+              v = x[i];
+              f = s[typeof v];
+              if (f) {
+                v = f(v);
+                if (typeof v == 'string') {
+                  if (b) {
+                    a[a.length] = ',';
+                    if (beautify) {
+                      a.push(qx.io.Json._indent);
+                    }
+                  }
+                  a[a.length] = v;
+                  b = true;
+                }
+              }
+            }
+            if (beautify) {
+              qx.io.Json._indent = qx.io.Json._indent.substring(0, qx.io.Json._indent.length - qx.io.Json.BEAUTIFYING_INDENT.length);
+              a.push(qx.io.Json._indent);
+            }
+            a[a.length] = ']';
+          // AJ, DJL --
+          } else if (x instanceof Date) {
+            /*
+             * The Date object is a primitive type in Javascript,
+             * but the Javascript specification neglects to provide
+             * a literal form for it.  The only way to generate a
+             * Date object is with "new Date()".  For fast
+             * processing by Javascript, we want to be able to
+             * eval() a JSON response.  If Date objects are to be
+             * passed to the client using JSON, about the only
+             * reasonable way to do it is to have "new Date()"
+             * in the JSON message.  See this page for a proposal to
+             * add a Date literal syntax to Javascript which,
+             * if/when implemented in Javascript, would eliminate
+             * the need to pass "new Date() in JSON":
+             *
+             *   http://www.hikhilk.net/DateSyntaxForJSON.aspx
+             *
+             * Sending a JSON message from client to server, we have
+             * no idea what language the server will be written in,
+             * what size integers it supports, etc.  We do want to
+             * be able to represent as large a range of dates as
+             * possible, though.  If we were to send the number of
+             * milliseconds since the beginning of the epoch, the
+             * value would exceed, in many cases, what can fit in a
+             * 32-bit integer.  Even if one were to simply strip off
+             * the last three digits (milliseconds), the number of
+             * seconds could exceed a 32-bit signed integer's range
+             * with very distant past or distant future dates.  To
+             * make it easier for any generic server to handle a
+             * date without risk of loss of precision due to
+             * automatic type casting, we'll send a UTC date with
+             * separated fields, in the form:
+             *
+             *  new Date(Date.UTC(year,month,day,hour,min,sec,ms))
+             *
+             * The server can fairly easily parse this in its JSON
+             * implementation by stripping off "new Date(Date.UTC("
+             * from the beginning of the string, and "))" from the
+             * end of the string.  What remains is the set of
+             * comma-separated date components, which are also very
+             * easy to parse.
+             *
+             * The server should send this same format to the
+             * client, which can simply eval() it just as with the
+             * remainder of JSON.
+             *
+             * A requirement of the implementation of the server is
+             * that after a date has been sent from the client to
+             * the server, converted by the server into whatever
+             * native type the date will be stored or manipulated
+             * in, convered back to JSON, and received back at the
+             * client, a comparison of the sent and received Date
+             * object should yield identity.  This means that even
+             * if the server does not natively operate on
+             * milliseconds, it must maintain milliseconds in dates
+             * sent to it by the client.
+             */
+            var dateParams =
+            x.getUTCFullYear() + "," +
+            x.getUTCMonth() + "," +
+            x.getUTCDate() + "," +
+            x.getUTCHours() + "," +
+            x.getUTCMinutes() + "," +
+            x.getUTCSeconds() + "," +
+            x.getUTCMilliseconds();
+            return "new Date(Date.UTC(" + dateParams + "))";
+          // -- AJ, DJL
+          } else if (x instanceof Object) {
+            var beautify = qx.io.Json._beautify;
+            a[0] = '{';
+            if (beautify) {
+              qx.io.Json._indent += qx.io.Json.BEAUTIFYING_INDENT;
+              a.push(qx.io.Json._indent);
+            }
+            for (i in x) {
+              v = x[i];
+              f = s[typeof v];
+              if (f) {
+                v = f(v);
+                if (typeof v == 'string') {
+                  if (b) {
+                    a[a.length] = ',';
+                    if (beautify) {
+                      a.push(qx.io.Json._indent);
+                    }
+                  }
+                  a.push(s.string(i), ':', v);
+                  b = true;
+                }
+              }
+            }
+            if (beautify) {
+              qx.io.Json._indent = qx.io.Json._indent.substring(0, qx.io.Json._indent.length - qx.io.Json.BEAUTIFYING_INDENT.length);
+              a.push(qx.io.Json._indent);
+            }
+            a[a.length] = '}';
+          } else {
+            return;
+          }
+          return a.join('');
+        }
+        return 'null';
+      },
+
+      // AJ, DJL --
+      undefined: function(x) {
+        if (qx.Settings.getValueOfClass("qx.io.Json", "encodeUndefined"))
+          return 'null';
+      }
+      // -- AJ, DJL
+    }
+
+  return {
+    copyright: '(c)2005 JSON.org',
+    license: 'http://www.JSON.org/license.html',
+
+    /**
+     * Stringify a JavaScript value, producing a JSON text.
+     *
+     * @param v {var} the object to serialize.
+     * @param beautify {boolean ? false} whether to beautify the serialized string
+     *        by adding some white space that indents objects and arrays.
+     * @return {string} the serialized object.
+     */
+    stringify: function (v, beautify) {
+      this._beautify = beautify;
+      this._indent = this.BEAUTIFYING_LINE_END;
+
+      var f = s[typeof v];
+      // AJ, DJL --
+      var ret = null;
+      // -- AJ, DJL
+      if (f) {
+        v = f(v);
+        if (typeof v == 'string') {
+          // DJL --
+          ret = v;
+          // -- DJL
+        }
+      }
+
+      // DJL --
+      if (qx.Settings.getValueOfClass("qx.io.Json", "enableDebug")) {
+        var logger = qx.dev.log.Logger.getClassLogger(qx.core.Object);
+        logger.debug("JSON request: " + ret);
+      }
+
+      return ret;
+      // -- DJL
+    },
+/*
+  Parse a JSON text, producing a JavaScript value.
+  It returns false if there is a syntax error.
+*/
+    parse: function (text) {
+      try {
+        return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
+            text.replace(/"(\\.|[^"\\])*"/g, ''))) &&
+          eval('(' + text + ')');
+      } catch (e) {
+        return false;
+      }
+    }
+  }
+}();
+
+
+///*
+// * Recursively descend through an object looking for any class hints.  Right
+// * now, the only class hint we support is 'Date' which can not be easily sent
+// * from javascript to an arbitrary (e.g. PHP) JSON-RPC server and back again
+// * without truncation or modification.
+// */
+//qx.io.Json._fixObj = function(obj) {
+//  /* If there's a class hint... */
+//  if (obj.__jsonclass__)
+//  {
+//  /* ... then check for supported classes.  We support only Date. */
+//  if (obj.__jsonclass__ == "Date" && obj.secSinceEpoch && obj.msAdditional)
+//  {
+//    /* Found a Date.  Replace class hint object with a Date object. */
+//    obj = new Date((obj.secSinceEpoch * 1000) + obj.msAdditional);
+//    return obj;
+//  }
+//  }
+//
+//  /*
+//   * It wasn't something with a supported class hint, so recursively descend
+//   */
+//  for (var member in obj) {
+//  thisObj = obj[member];
+//  if (typeof thisObj == 'object' && thisObj !== null) {
+//    obj[member] = qx.io.Json._fixObj(thisObj);
+//  }
+//  }
+//
+//  return obj;
+//}
+
+
+/**
+ * Parse a JSON text, producing a JavaScript value.
+ * It triggers an exception if there is a syntax error.
+ */
+qx.io.Json.parseQx = function(text) {
+  /* Convert the result text into a result primitive or object */
+
+  if (qx.Settings.getValueOfClass("qx.io.Json", "enableDebug")) {
+  var logger = qx.dev.log.Logger.getClassLogger(qx.core.Object);
+  logger.debug("JSON response: " + text);
+  }
+
+  var obj = (text && text.length > 0) ? eval('(' + text + ')') : null;
+
+//  /*
+//   * Something like this fixObj() call may be used later when we want to
+//   * support class hints.  For now, ignore that code
+//   */
+//
+//  /* If it's an object, not null, and contains a "result" field.. */
+//  if (typeof obj == 'object' && obj !== null && obj.result) {
+//  /* ... then 'fix' the result by handling any supported class hints */
+//  obj.result = qx.io.Json._fixObj(obj.result);
+//  }
+
+  return obj;
+}
+
+qx.io.Json.BEAUTIFYING_INDENT = "  ";
+
+qx.io.Json.BEAUTIFYING_LINE_END = "\n";
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/image/Preloader.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/image/Preloader.js
new file mode 100644 (file)
index 0000000..928795c
--- /dev/null
@@ -0,0 +1,197 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+/**
+ * This is the preloader used from qx.ui.basic.Image instances.
+ *
+ * @event load {qx.event.type.Event}
+ * @event error {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.io.image.Preloader", qx.core.Target,
+function(vSource)
+{
+  if(qx.manager.object.ImagePreloaderManager.getInstance().has(vSource))
+  {
+    this.debug("Reuse qx.io.image.Preloader in old-style!");
+    this.debug("Please use qx.manager.object.ImagePreloaderManager.getInstance().create(source) instead!");
+
+    return qx.manager.object.ImagePreloaderManager.getInstance().get(vSource);
+  }
+
+  qx.core.Target.call(this);
+
+  // Create Image-Node
+  // Does not work with document.createElement("img") in Webkit. Interesting.
+  // Compare this to the bug in qx.ui.basic.Image.
+  this._element = new Image;
+
+  // This is needed for wrapping event to the object
+  this._element.qx_ImagePreloader = this;
+
+  // Define handler if image events occurs
+  if (qx.sys.Client.getInstance().isWebkit())
+  {
+    // Webkit as of version 41xxx
+    // does not get the target right. We need to help out a bit
+    // ugly closure!
+    var self = this;
+    this._element.onload = function(e) {
+      return self._onload(e);
+    };
+    this._element.onerror = function(e) {
+      return self._onerror(e);
+    };
+  }
+  else
+  {
+    this._element.onload = qx.io.image.Preloader.__onload;
+    this._element.onerror = qx.io.image.Preloader.__onerror;
+  }
+
+  // Set Source
+  this._source = vSource;
+  this._element.src = vSource;
+
+  // Set PNG State
+  if (qx.sys.Client.getInstance().isMshtml()) {
+    this._isPng = /\.png$/i.test(this._element.nameProp);
+  }
+
+  qx.manager.object.ImagePreloaderManager.getInstance().add(this);
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STATE MANAGERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._source = null;
+qx.Proto._isLoaded = false;
+qx.Proto._isErroneous = false;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CROSSBROWSER GETTERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getUri = function() { return this._source; };
+qx.Proto.getSource = function() { return this._source; };
+qx.Proto.isLoaded = function() { return this._isLoaded; };
+qx.Proto.isErroneous = function() { return this._isErroneous; };
+
+// only used in mshtml: true when the image format is in png
+qx.Proto._isPng = false;
+qx.Proto.getIsPng = function() { return this._isPng; };
+
+if(qx.sys.Client.getInstance().isGecko())
+{
+  qx.Proto.getWidth = function() { return this._element.naturalWidth; };
+  qx.Proto.getHeight = function() { return this._element.naturalHeight; };
+}
+else
+{
+  qx.Proto.getWidth = function() { return this._element.width; };
+  qx.Proto.getHeight = function() { return this._element.height; };
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT MAPPING
+---------------------------------------------------------------------------
+*/
+
+qx.io.image.Preloader.__onload = function(e) { this.qx_ImagePreloader._onload(); };
+qx.io.image.Preloader.__onerror = function(e) { this.qx_ImagePreloader._onerror(); };
+
+qx.Proto._onload = function()
+{
+  if (this._isLoaded || this._isErroneous) {
+    return;
+  }
+
+  this._isLoaded = true;
+  this._isErroneous = false;
+
+  if (this.hasEventListeners("load")) {
+    this.dispatchEvent(new qx.event.type.Event("load"), true);
+  }
+}
+
+qx.Proto._onerror = function()
+{
+  if (this._isLoaded || this._isErroneous) {
+    return;
+  }
+
+  this.debug("Could not load: " + this._source);
+
+  this._isLoaded = false;
+  this._isErroneous = true;
+
+  if (this.hasEventListeners("error")) {
+    this.dispatchEvent(new qx.event.type.Event("error"), true);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if(this.getDisposed()) {
+    return;
+  }
+
+  if (this._element)
+  {
+    this._element.onload = this._element.onerror = null;
+    this._element.qx_ImagePreloader = null;
+    this._element = null;
+  }
+
+  this._isLoaded = this._isErroneous = this._isPng = false;
+
+  return qx.core.Target.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/image/PreloaderSystem.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/image/PreloaderSystem.js
new file mode 100755 (executable)
index 0000000..ef1356d
--- /dev/null
@@ -0,0 +1,187 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+/**
+ * @event completed {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.io.image.PreloaderSystem", qx.core.Target,
+function(vPreloadList, vCallBack, vCallBackScope)
+{
+  qx.core.Target.call(this);
+
+  this._list = vPreloadList;
+
+  // Create timer
+  this._timer = new qx.client.Timer(this.getSetting("timeout"));
+  this._timer.addEventListener("interval", this._oninterval, this);
+
+  // If we use the compact syntax, automatically add an event listeners and start the loading process
+  if (vCallBack)
+  {
+    this.addEventListener("completed", vCallBack, vCallBackScope || null);
+    this.start();
+  }
+});
+
+qx.Proto._stopped = false;
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("timeout", 3000);
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  USER ACCESS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.start = function()
+{
+  if (qx.lang.Object.isEmpty(this._list))
+  {
+    this.createDispatchEvent("completed");
+    return;
+  }
+
+  for (var vSource in this._list)
+  {
+    var vPreloader = qx.manager.object.ImagePreloaderManager.getInstance().create(qx.manager.object.AliasManager.getInstance().resolvePath(vSource));
+
+    if (vPreloader.isErroneous() || vPreloader.isLoaded())
+    {
+      delete this._list[vSource];
+    }
+    else
+    {
+      vPreloader._origSource = vSource;
+
+      vPreloader.addEventListener("load", this._onload, this);
+      vPreloader.addEventListener("error", this._onerror, this);
+    }
+  }
+
+  // Initial check
+  this._check();
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT LISTENERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onload = function(e)
+{
+  delete this._list[e.getTarget()._origSource];
+  this._check();
+}
+
+qx.Proto._onerror = function(e)
+{
+  delete this._list[e.getTarget()._origSource];
+  this._check();
+}
+
+qx.Proto._oninterval = function(e)
+{
+  this.error("Could not preload: " + qx.lang.Object.getKeysAsString(this._list));
+
+  this._stopped = true;
+  this._timer.stop();
+
+  this.createDispatchEvent("completed");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHECK
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._check = function()
+{
+  if (this._stopped) {
+    return;
+  }
+
+  // this.debug("Check: " + qx.lang.Object.getKeysAsString(this._list));
+
+  if (qx.lang.Object.isEmpty(this._list))
+  {
+    this._timer.stop();
+    this.createDispatchEvent("completed");
+  }
+  else
+  {
+    // Restart timer for timeout
+    this._timer.restart();
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  this._list = null;
+
+  if (this._timer)
+  {
+    this._timer.dispose();
+    this._timer = null;
+  }
+
+  return qx.core.Target.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/local/CookieApi.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/local/CookieApi.js
new file mode 100755 (executable)
index 0000000..23d3c92
--- /dev/null
@@ -0,0 +1,139 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.io.local.CookieApi",
+{
+  STR_EXPIRES : "expires",
+  STR_PATH : "path",
+  STR_DOMAIN : "domain",
+  STR_SECURE : "secure",
+  STR_DELDATA : "Thu, 01-Jan-1970 00:00:01 GMT"
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  USER APPLICATION METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Class.get = function(vName)
+{
+  var start = document.cookie.indexOf(vName + "=");
+  var len = start + vName.length + 1;
+
+  if ((!start) && (vName != document.cookie.substring(0, vName.length))) {
+    return null;
+  }
+
+  if (start == -1) {
+    return null;
+  }
+
+  var end = document.cookie.indexOf(";", len);
+
+  if (end == -1) {
+    end = document.cookie.length;
+  }
+
+  return unescape(document.cookie.substring(len, end));
+}
+
+qx.Class.set = function(vName, vValue, vExpires, vPath, vDomain, vSecure)
+{
+  var today = new Date();
+  today.setTime(today.getTime());
+
+  // Generate cookie
+  var vCookie = [ vName, "=", escape(vValue) ];
+
+  if (vExpires)
+  {
+    vCookie.push(";");
+    vCookie.push(qx.io.local.CookieApi.STR_EXPIRES);
+    vCookie.push("=");
+    vCookie.push(new Date(today.getTime() + (vExpires * 1000 * 60 * 60 * 24)).toGMTString());
+  }
+
+  if (vPath)
+  {
+    vCookie.push(";");
+    vCookie.push(qx.io.local.CookieApi.STR_PATH);
+    vCookie.push("=");
+    vCookie.push(vPath);
+  }
+
+  if (vDomain)
+  {
+    vCookie.push(";");
+    vCookie.push(qx.io.local.CookieApi.STR_DOMAIN);
+    vCookie.push("=");
+    vCookie.push(vDomain);
+  }
+
+  if (vSecure)
+  {
+    vCookie.push(";");
+    vCookie.push(qx.io.local.CookieApi.STR_SECURE);
+  }
+
+  // Store cookie
+  document.cookie = vCookie.join("");
+}
+
+qx.Class.del = function(vName, vPath, vDomain)
+{
+  if (!qx.io.local.CookieApi.get(vName)) {
+    return;
+  }
+
+  // Generate cookie
+  var vCookie = [ vName, "=" ];
+
+  if (vPath)
+  {
+    vCookie.push(";");
+    vCookie.push(qx.io.local.CookieApi.STR_PATH);
+    vCookie.push("=");
+    vCookie.push(vPath);
+  }
+
+  if (vDomain)
+  {
+    vCookie.push(";");
+    vCookie.push(qx.io.local.CookieApi.STR_DOMAIN);
+    vCookie.push("=");
+    vCookie.push(vDomain);
+  }
+
+  vCookie.push(";");
+  vCookie.push(qx.io.local.CookieApi.STR_EXPIRES);
+  vCookie.push("=");
+  vCookie.push(qx.io.local.CookieApi.STR_DELDATA);
+
+  // Store cookie
+  document.cookie = vCookie.join("");
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/local/CookieTransport.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/local/CookieTransport.js
new file mode 100755 (executable)
index 0000000..b837eb7
--- /dev/null
@@ -0,0 +1,181 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.io.local.CookieTransport",
+{
+  BASENAME : "qx",
+  ITEMSEPARATOR : "&",
+  KEYVALUESEPARATOR : "=",
+  MAXCOOKIES : 20,
+  MAXSIZE : 4096
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  USER APPLICATION METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Class.set = function(vName, vValue)
+{
+  if (!qx.util.Validation.isValid(vValue)) {
+    return qx.io.local.CookieTransport.del(vName);
+  }
+
+  var vAll = qx.io.local.CookieTransport._getAll();
+  vAll[vName] = vValue;
+  this._setAll(vAll);
+}
+
+qx.Class.get = function(vName)
+{
+  var vAll = qx.io.local.CookieTransport._getAll();
+
+  var vValue = qx.io.local.CookieTransport._getAll()[vName];
+  if (qx.util.Validation.isValidString(vValue)) {
+    return vValue;
+  }
+
+  return "";
+}
+
+qx.Class.del = function(vName)
+{
+  var vAll = qx.io.local.CookieTransport._getAll();
+  delete vAll[vName];
+  this._setAll(vAll);
+}
+
+qx.Class.setAll = function(vHash)
+{
+  var vAll = qx.io.local.CookieTransport._getAll();
+  vAll = qx.lang.Object.mergeWith(vAll, vHash);
+  qx.io.local.CookieTransport._setAll(vAll);
+}
+
+qx.Class.getAll = function() {
+  return qx.io.local.CookieTransport._getAll();
+}
+
+qx.Class.replaceAll = function(vHash) {
+  qx.io.local.CookieTransport._setAll(vHash);
+}
+
+qx.Class.delAll = function() {
+  qx.io.local.CookieTransport.replaceAll({});
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LOW LEVEL INTERNAL METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Class._getAll = function()
+{
+  var vHash = {};
+  var vCookie, vItems, vItem;
+
+  for (var i=0; i<qx.io.local.CookieTransport.MAXCOOKIES; i++)
+  {
+    vCookie = qx.io.local.CookieApi.get(qx.io.local.CookieTransport.BASENAME + i);
+    if (vCookie)
+    {
+      vItems = vCookie.split(qx.io.local.CookieTransport.ITEMSEPARATOR);
+      for (var j=0, l=vItems.length; j<l; j++)
+      {
+        vItem = vItems[j].split(qx.io.local.CookieTransport.KEYVALUESEPARATOR);
+        vHash[vItem[0]] = vItem[1];
+      }
+    }
+  }
+
+  return vHash;
+}
+
+qx.Class._setAll = function(vHash)
+{
+  var vString = "";
+  var vTemp;
+  var vIndex = 0;
+
+  for (var vName in vHash)
+  {
+    vTemp = vName + qx.io.local.CookieTransport.KEYVALUESEPARATOR + vHash[vName];
+
+    if (vTemp.length > qx.io.local.CookieTransport.MAXSIZE)
+    {
+      qx.dev.log.Logger.getClassLogger(qx.io.local.CookieTransport).debug("Could not store value of name '" + vName + "': Maximum size of " + qx.io.local.CookieTransport.MAXSIZE + "reached!");
+      continue;
+    }
+
+    if ((qx.io.local.CookieTransport.ITEMSEPARATOR.length + vString.length + vTemp.length) > qx.io.local.CookieTransport.MAXSIZE)
+    {
+      qx.io.local.CookieTransport._setCookie(vIndex++, vString);
+
+      if (vIndex == qx.io.local.CookieTransport.MAXCOOKIES)
+      {
+        qx.dev.log.Logger.getClassLogger(qx.io.local.CookieTransport).debug("Failed to store cookie. Max cookie amount reached!", "error");
+        return false;
+      }
+
+      vString = vTemp;
+    }
+    else
+    {
+      if (vString != "") {
+        vString += qx.io.local.CookieTransport.ITEMSEPARATOR;
+      }
+
+      vString += vTemp;
+    }
+  }
+
+  if (vString != "") {
+    qx.io.local.CookieTransport._setCookie(vIndex++, vString);
+  }
+
+  while (vIndex < qx.io.local.CookieTransport.MAXCOOKIES) {
+    qx.io.local.CookieTransport._delCookie(vIndex++);
+  }
+}
+
+qx.Class._setCookie = function(vIndex, vString)
+{
+  // qx.dev.log.Logger.getClassLogger(qx.io.local.CookieTransport).debug("Store: " + vIndex + " = " + vString);
+  qx.io.local.CookieApi.set(qx.io.local.CookieTransport.BASENAME + vIndex, vString);
+}
+
+qx.Class._delCookie = function(vIndex)
+{
+  // qx.dev.log.Logger.getClassLogger(qx.io.local.CookieTransport).debug("Delete: " + vIndex);
+  qx.io.local.CookieApi.del(qx.io.local.CookieTransport.BASENAME + vIndex);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/AbstractRemoteTransport.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/AbstractRemoteTransport.js
new file mode 100644 (file)
index 0000000..2232394
--- /dev/null
@@ -0,0 +1,328 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(io_remote)
+
+************************************************************************ */
+
+/**
+ * @event created {qx.event.type.Event}
+ * @event configured {qx.event.type.Event}
+ * @event sending {qx.event.type.Event}
+ * @event receiving {qx.event.type.Event}
+ * @event completed {qx.event.type.Event}
+ * @event aborted {qx.event.type.Event}
+ * @event failed {qx.event.type.Event}
+ * @event timeout {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.io.remote.AbstractRemoteTransport", qx.core.Target,
+function() {
+  qx.core.Target.call(this);
+});
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Target url to issue the request to
+*/
+qx.OO.addProperty({ name : "url", type : "string" });
+
+/*!
+  Determines what type of request to issue
+*/
+qx.OO.addProperty({ name : "method", type : "string" });
+
+/*!
+  Set the request to asynchronous
+*/
+qx.OO.addProperty({ name : "asynchronous", type : "boolean" });
+
+/*!
+  Set the data to be sent via this request
+*/
+qx.OO.addProperty({ name : "data", type : "string" });
+
+/*!
+  Username to use for HTTP authentication
+*/
+qx.OO.addProperty({ name : "username", type : "string" });
+
+/*!
+  Password to use for HTTP authentication
+*/
+qx.OO.addProperty({ name : "password", type : "string" });
+
+/*!
+  The state of the current request
+*/
+qx.OO.addProperty(
+{
+  name           : "state",
+  type           : "string",
+  possibleValues : [
+                   "created", "configured",
+                   "sending", "receiving",
+                   "completed", "aborted",
+                   "timeout", "failed"
+                   ],
+  defaultValue   : "created"
+});
+
+/*!
+  Request headers
+*/
+qx.OO.addProperty({ name : "requestHeaders", type: "object" });
+
+/*!
+  Request parameters to send.
+*/
+qx.OO.addProperty({ name : "parameters", type: "object" });
+
+/*!
+  Response Type
+*/
+qx.OO.addProperty({ name : "responseType", type: "string" });
+
+/*!
+  Use Basic HTTP Authentication
+*/
+qx.OO.addProperty({ name : "useBasicHttpAuth", type : "boolean" });
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  USER METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.send = function() {
+  throw new Error("send is abstract");
+}
+
+qx.Proto.abort = function()
+{
+  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+    this.warn("Aborting...");
+  }
+
+  this.setState("aborted");
+}
+
+/*!
+
+*/
+qx.Proto.timeout = function()
+{
+  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+    this.warn("Timeout...");
+  }
+
+  this.setState("timeout");
+}
+
+/*!
+
+  Force the transport into the failed state ("failed").
+
+  Listeners of the "failed" signal are notified about the event.
+*/
+qx.Proto.failed = function()
+{
+  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+    this.warn("Failed...");
+  }
+
+  this.setState("failed");
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REQUEST HEADER SUPPORT
+---------------------------------------------------------------------------
+*/
+/*!
+  Add a request header to this transports qx.io.remote.Request.
+
+  This method is virtual and concrete subclasses are supposed to
+  implement it.
+*/
+qx.Proto.setRequestHeader = function(vLabel, vValue) {
+  throw new Error("setRequestHeader is abstract");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  RESPONSE HEADER SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getResponseHeader = function(vLabel) {
+  throw new Error("getResponseHeader is abstract");
+}
+
+/*!
+  Provides an hash of all response headers.
+*/
+qx.Proto.getResponseHeaders = function() {
+  throw new Error("getResponseHeaders is abstract");
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STATUS SUPPORT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Returns the current status code of the request if available or -1 if not.
+*/
+qx.Proto.getStatusCode = function() {
+  throw new Error("getStatusCode is abstract");
+}
+
+/*!
+  Provides the status text for the current request if available and null otherwise.
+*/
+qx.Proto.getStatusText = function() {
+  throw new Error("getStatusText is abstract");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  RESPONSE DATA SUPPORT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Provides the response text from the request when available and null otherwise.
+  By passing true as the "partial" parameter of this method, incomplete data will
+  be made available to the caller.
+*/
+qx.Proto.getResponseText = function() {
+  throw new Error("getResponseText is abstract");
+}
+
+/*!
+  Provides the XML provided by the response if any and null otherwise.
+  By passing true as the "partial" parameter of this method, incomplete data will
+  be made available to the caller.
+*/
+qx.Proto.getResponseXml = function() {
+  throw new Error("getResponseXml is abstract");
+}
+
+/*!
+  Returns the length of the content as fetched thus far
+*/
+qx.Proto.getFetchedLength = function() {
+  throw new Error("getFetchedLength is abstract");
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyState = function(propValue, propOldValue, propData)
+{
+  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+    this.debug("State: " + propValue);
+  }
+
+  switch(propValue)
+  {
+    case "created":
+      this.createDispatchEvent("created");
+      break;
+
+    case "configured":
+      this.createDispatchEvent("configured");
+      break;
+
+    case "sending":
+      this.createDispatchEvent("sending");
+      break;
+
+    case "receiving":
+      this.createDispatchEvent("receiving");
+      break;
+
+    case "completed":
+      this.createDispatchEvent("completed");
+      break;
+
+    case "aborted":
+      this.createDispatchEvent("aborted");
+      break;
+
+    case "failed":
+      this.createDispatchEvent("failed");
+      break;
+
+    case "timeout":
+      this.createDispatchEvent("timeout");
+      break;
+  }
+
+  return true;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Exchange.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Exchange.js
new file mode 100644 (file)
index 0000000..d9f0738
--- /dev/null
@@ -0,0 +1,704 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+     2006 by Derrell Lipman
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * Derrell Lipman (derrell)
+     * Andreas Junghans (lucidcake)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(io_remote)
+
+************************************************************************ */
+
+/**
+ * @event sending {qx.event.type.Event}
+ * @event receiving {qx.event.type.Event}
+ * @event completed {qx.event.type.Event}
+ * @event aborted {qx.event.type.Event}
+ * @event timeout {qx.event.type.Event}
+ * @event failed {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.io.remote.Exchange", qx.core.Target,
+function(vRequest)
+{
+  qx.core.Target.call(this);
+
+  this.setRequest(vRequest);
+  vRequest.setTransport(this);
+});
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("enableDebug", false);
+
+
+
+
+
+
+/* ************************************************************************
+   Class data, properties and methods
+************************************************************************ */
+
+/*
+---------------------------------------------------------------------------
+  TRANSPORT TYPE HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.io.remote.Exchange.typesOrder = [ "qx.io.remote.XmlHttpTransport", "qx.io.remote.IframeTransport", "qx.io.remote.ScriptTransport" ];
+
+qx.io.remote.Exchange.typesReady = false;
+
+qx.io.remote.Exchange.typesAvailable = {};
+qx.io.remote.Exchange.typesSupported = {};
+
+qx.io.remote.Exchange.registerType = function(vClass, vId) {
+  qx.io.remote.Exchange.typesAvailable[vId] = vClass;
+}
+
+qx.io.remote.Exchange.initTypes = function()
+{
+  if (qx.io.remote.Exchange.typesReady) {
+    return;
+  }
+
+  for (var vId in qx.io.remote.Exchange.typesAvailable)
+  {
+    vTransporterImpl = qx.io.remote.Exchange.typesAvailable[vId];
+
+    if (vTransporterImpl.isSupported()) {
+      qx.io.remote.Exchange.typesSupported[vId] = vTransporterImpl;
+    }
+  }
+
+  qx.io.remote.Exchange.typesReady = true;
+
+  if (qx.lang.Object.isEmpty(qx.io.remote.Exchange.typesSupported)) {
+    throw new Error("No supported transport types were found!");
+  }
+}
+
+qx.io.remote.Exchange.canHandle = function(vImpl, vNeeds, vResponseType)
+{
+  if (!qx.lang.Array.contains(vImpl.handles.responseTypes, vResponseType)) {
+    return false;
+  }
+
+  for (var vKey in vNeeds)
+  {
+    if (!vImpl.handles[vKey]) {
+      return false;
+    }
+  }
+
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MAPPING
+---------------------------------------------------------------------------
+*/
+
+/*
+http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/0e6a34e4-f90c-489d-acff-cb44242fafc6.asp
+
+0: UNINITIALIZED
+The object has been created, but not initialized (the open method has not been called).
+
+1: LOADING
+The object has been created, but the send method has not been called.
+
+2: LOADED
+The send method has been called, but the status and headers are not yet available.
+
+3: INTERACTIVE
+Some data has been received. Calling the responseBody and responseText properties at this state to obtain partial results will return an error, because status and response headers are not fully available.
+
+4: COMPLETED
+All the data has been received, and the complete data is available in the
+*/
+
+qx.io.remote.Exchange._nativeMap =
+{
+  0 : "created",
+  1 : "configured",
+  2 : "sending",
+  3 : "receiving",
+  4 : "completed"
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILS
+---------------------------------------------------------------------------
+*/
+
+qx.io.remote.Exchange.wasSuccessful = function(vStatusCode, vReadyState, vIsLocal)
+{
+  if (vIsLocal)
+  {
+    switch(vStatusCode)
+    {
+      case null:
+      case 0:
+        return true;
+
+      case -1:
+        // Not Available (OK for readystates: MSXML<4=1-3, MSXML>3=1-2, Gecko=1)
+        return vReadyState < 4;
+
+      default:
+        // at least older versions of Safari don't set the status code for local file access
+        return typeof vStatusCode === "undefined";
+    }
+  }
+  else
+  {
+    switch(vStatusCode)
+    {
+      case -1:  // Not Available (OK for readystates: MSXML<4=1-3, MSXML>3=1-2, Gecko=1)
+        if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug") && vReadyState > 3) {
+          qx.dev.log.Logger.getClassLogger(qx.io.remote.Exchange).debug("Failed with statuscode: -1 at readyState " + vReadyState);
+        }
+
+        return vReadyState < 4;
+
+
+      case 200: // OK
+      case 304: // Not Modified
+        return true;
+
+
+      case 201: // Created
+      case 202: // Accepted
+      case 203: // Non-Authoritative Information
+      case 204: // No Content
+      case 205: // Reset Content
+        return true;
+
+
+      case 206: // Partial Content
+        if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug") && vReadyState === 4) {
+          qx.dev.log.Logger.getClassLogger(qx.io.remote.Exchange).debug("Failed with statuscode: 206 (Partial content while being complete!)");
+        }
+
+        return vReadyState !== 4;
+
+
+      case 300: // Multiple Choices
+      case 301: // Moved Permanently
+      case 302: // Moved Temporarily
+      case 303: // See Other
+      case 305: // Use Proxy
+      case 400: // Bad Request
+      case 401: // Unauthorized
+      case 402: // Payment Required
+      case 403: // Forbidden
+      case 404: // Not Found
+      case 405: // Method Not Allowed
+      case 406: // Not Acceptable
+      case 407: // Proxy Authentication Required
+      case 408: // Request Time-Out
+      case 409: // Conflict
+      case 410: // Gone
+      case 411: // Length Required
+      case 412: // Precondition Failed
+      case 413: // Request Entity Too Large
+      case 414: // Request-URL Too Large
+      case 415: // Unsupported Media Type
+      case 500: // Server Error
+      case 501: // Not Implemented
+      case 502: // Bad Gateway
+      case 503: // Out of Resources
+      case 504: // Gateway Time-Out
+      case 505: // HTTP Version not supported
+        if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+          qx.dev.log.Logger.getClassLogger(qx.io.remote.Exchange).debug("Failed with typical HTTP statuscode: " + vStatusCode);
+        }
+
+        return false;
+
+
+      // The following case labels are wininet.dll error codes that may be encountered.
+      // Server timeout
+      case 12002:
+      // 12029 to 12031 correspond to dropped connections.
+      case 12029:
+      case 12030:
+      case 12031:
+      // Connection closed by server.
+      case 12152:
+      // See above comments for variable status.
+      case 13030:
+        if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+          qx.dev.log.Logger.getClassLogger(qx.io.remote.Exchange).debug("Failed with MSHTML specific HTTP statuscode: " + vStatusCode);
+        }
+
+        return false;
+
+
+      default:
+        // Handle all 20x status codes as OK as defined in the corresponding RFC
+        // http://www.w3.org/Protocols/rfc2616/rfc2616.html
+        if (vStatusCode > 206 && vStatusCode < 300) {
+          return true;
+        }
+
+        qx.dev.log.Logger.getClassLogger(qx.io.remote.Exchange).debug("Unknown status code: " + vStatusCode + " (" + vReadyState + ")");
+        throw new Error("Unknown status code: " + vStatusCode);
+    }
+  }
+}
+
+
+qx.io.remote.Exchange.statusCodeToString = function(vStatusCode)
+{
+  switch(vStatusCode)
+  {
+    case -1:    return "Not available";
+    case 200:   return "Ok";
+    case 304:   return "Not modified";
+    case 206:   return "Partial content";
+    case 204:   return "No content";
+    case 300:   return "Multiple choices";
+    case 301:   return "Moved permanently";
+    case 302:   return "Moved temporarily";
+    case 303:   return "See other";
+    case 305:   return "Use proxy";
+    case 400:   return "Bad request";
+    case 401:   return "Unauthorized";
+    case 402:   return "Payment required";
+    case 403:   return "Forbidden";
+    case 404:   return "Not found";
+    case 405:   return "Method not allowed";
+    case 406:   return "Not acceptable";
+    case 407:   return "Proxy authentication required";
+    case 408:   return "Request time-out";
+    case 409:   return "Conflict";
+    case 410:   return "Gone";
+    case 411:   return "Length required";
+    case 412:   return "Precondition failed";
+    case 413:   return "Request entity too large";
+    case 414:   return "Request-URL too large";
+    case 415:   return "Unsupported media type";
+    case 500:   return "Server error";
+    case 501:   return "Not implemented";
+    case 502:   return "Bad gateway";
+    case 503:   return "Out of resources";
+    case 504:   return "Gateway time-out";
+    case 505:   return "HTTP version not supported";
+    case 12002: return "Server timeout";
+    case 12029: return "Connection dropped";
+    case 12030: return "Connection dropped";
+    case 12031: return "Connection dropped";
+    case 12152: return "Connection closed by server";
+    case 13030: return "MSHTML-specific HTTP status code";
+    default:    return "Unknown status code";
+  }
+}
+
+
+
+
+
+
+
+/* ************************************************************************
+   Instance data, properties and methods
+************************************************************************ */
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Set the request to send with this transport.
+*/
+qx.OO.addProperty({ name : "request", type : "object", instance : "qx.io.remote.Request" });
+/*!
+  Set the implementation to use to send the request with.
+
+  The implementation should be a subclass of qx.io.remote.AbstractRemoteTransport and
+  must implement all methods in the transport API.
+*/
+qx.OO.addProperty({ name : "implementation", type : "object" });
+qx.OO.addProperty(
+{
+  name           : "state",
+  type           : "string",
+  possibleValues : [
+                   "configured", "sending",
+                   "receiving", "completed",
+                   "aborted", "timeout",
+                   "failed"
+                   ],
+  defaultValue   : "configured"
+});
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CORE METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.send = function()
+{
+  var vRequest = this.getRequest();
+
+  if (!vRequest) {
+    return this.error("Please attach a request object first");
+  }
+
+  qx.io.remote.Exchange.initTypes();
+
+  var vUsage = qx.io.remote.Exchange.typesOrder;
+  var vSupported = qx.io.remote.Exchange.typesSupported;
+
+  // Mapping settings to contenttype and needs to check later
+  // if the selected transport implementation can handle
+  // fulfill these requirements.
+  var vResponseType = vRequest.getResponseType();
+  var vNeeds = {};
+
+  if (vRequest.getAsynchronous()) {
+    vNeeds.asynchronous = true;
+  } else {
+    vNeeds.synchronous = true;
+  }
+
+  if (vRequest.getCrossDomain()) {
+    vNeeds.crossDomain = true;
+  }
+
+  if (vRequest.getFileUpload()) {
+    vNeeds.fileUpload = true;
+  }
+
+  var vTransportImpl, vTransport;
+  for (var i=0, l=vUsage.length; i<l; i++)
+  {
+    vTransportImpl = vSupported[vUsage[i]];
+
+    if (vTransportImpl)
+    {
+      if (!qx.io.remote.Exchange.canHandle(vTransportImpl, vNeeds, vResponseType)) {
+        continue;
+      }
+
+      try
+      {
+        if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+          this.debug("Using implementation: " + vTransportImpl.classname);
+        }
+
+        vTransport = new vTransportImpl;
+        this.setImplementation(vTransport);
+
+        vTransport.setUseBasicHttpAuth(vRequest.getUseBasicHttpAuth());
+
+        vTransport.send();
+        return true;
+      }
+      catch(ex)
+      {
+        return this.error("Request handler throws error", ex);
+      }
+    }
+  }
+
+  this.error("There is no transport implementation available to handle this request: " + vRequest);
+}
+/*!
+  Force the transport into the aborted ("aborted")
+  state.
+*/
+qx.Proto.abort = function()
+{
+  var vImplementation = this.getImplementation();
+
+  if (vImplementation)
+  {
+    if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+      this.debug("Abort: implementation " + vImplementation.toHashCode());
+    }
+    vImplementation.abort();
+  }
+  else
+  {
+    if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+      this.debug("Abort: forcing state to be aborted");
+    }
+    this.setState("aborted");
+  }
+}
+/*!
+  Force the transport into the timeout state.
+*/
+qx.Proto.timeout = function()
+{
+  var vImplementation = this.getImplementation();
+
+  if (vImplementation)
+  {
+    this.warn("Timeout: implementation " + vImplementation.toHashCode());
+    vImplementation.timeout();
+  }
+  else
+  {
+    this.warn("Timeout: forcing state to timeout");
+    this.setState("timeout");
+  }
+
+  // Disable future timeouts in case user handler blocks
+  if (this.getRequest()) {
+    this.getRequest().setTimeout(0);
+  }
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onsending = function(e) {
+  this.setState("sending");
+}
+
+qx.Proto._onreceiving = function(e) {
+  this.setState("receiving");
+}
+
+qx.Proto._oncompleted = function(e) {
+  this.setState("completed");
+}
+
+qx.Proto._onabort = function(e) {
+  this.setState("aborted");
+}
+
+qx.Proto._onfailed = function(e) {
+  this.setState("failed");
+}
+
+qx.Proto._ontimeout = function(e) {
+  this.setState("timeout");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyImplementation = function(propValue, propOldValue, propData)
+{
+  if (propOldValue)
+  {
+    propOldValue.removeEventListener("sending", this._onsending, this);
+    propOldValue.removeEventListener("receiving", this._onreceiving, this);
+    propOldValue.removeEventListener("completed", this._oncompleted, this);
+    propOldValue.removeEventListener("aborted", this._onabort, this);
+    propOldValue.removeEventListener("timeout", this._ontimeout, this);
+    propOldValue.removeEventListener("failed", this._onfailed, this);
+  }
+
+  if (propValue)
+  {
+    var vRequest = this.getRequest();
+
+    propValue.setUrl(vRequest.getUrl());
+    propValue.setMethod(vRequest.getMethod());
+    propValue.setAsynchronous(vRequest.getAsynchronous());
+
+    propValue.setUsername(vRequest.getUsername());
+    propValue.setPassword(vRequest.getPassword());
+
+    propValue.setParameters(vRequest.getParameters());
+    propValue.setRequestHeaders(vRequest.getRequestHeaders());
+    propValue.setData(vRequest.getData());
+
+    propValue.setResponseType(vRequest.getResponseType());
+
+    propValue.addEventListener("sending", this._onsending, this);
+    propValue.addEventListener("receiving", this._onreceiving, this);
+    propValue.addEventListener("completed", this._oncompleted, this);
+    propValue.addEventListener("aborted", this._onabort, this);
+    propValue.addEventListener("timeout", this._ontimeout, this);
+    propValue.addEventListener("failed", this._onfailed, this);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyState = function(propValue, propOldValue, propData)
+{
+  var vRequest = this.getRequest();
+
+  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+    this.debug("State: " + propOldValue + " => " + propValue);
+  }
+
+  switch(propValue)
+  {
+    case "sending":
+      this.createDispatchEvent("sending");
+      break;
+
+    case "receiving":
+      this.createDispatchEvent("receiving");
+      break;
+
+    case "completed":
+    case "aborted":
+    case "timeout":
+    case "failed":
+      var vImpl = this.getImplementation();
+
+      if (! vImpl) {
+        // implementation has already been disposed
+        break;
+      }
+
+      var vResponse = new qx.io.remote.Response;
+
+      if (propValue == "completed") {
+        var vContent = vImpl.getResponseContent();
+        vResponse.setContent(vContent);
+
+        /*
+         * Was there acceptable content?  This might occur, for example, if
+         * the web server was shut down unexpectedly and thus the connection
+         * closed with no data having been sent.
+         */
+        if (vContent === null) {
+          // Nope.  Change COMPLETED to FAILED.
+          if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+            this.debug("Altered State: " + propValue + " => failed");
+          }
+          propValue = "failed";
+        }
+      }
+
+      vResponse.setStatusCode(vImpl.getStatusCode());
+      vResponse.setResponseHeaders(vImpl.getResponseHeaders());
+
+      // this.debug("Result Text: " + vResponse.getTextContent());
+
+      var vEventType;
+
+      switch(propValue)
+      {
+        case "completed":
+          vEventType = "completed";
+          break;
+
+        case "aborted":
+          vEventType = "aborted";
+          break;
+
+        case "timeout":
+          vEventType = "timeout";
+          break;
+
+        case "failed":
+          vEventType = "failed";
+          break;
+      }
+
+      // Disconnect and dispose implementation
+      this.setImplementation(null);
+      vImpl.dispose();
+
+      // Fire event to listeners
+      this.createDispatchDataEvent(vEventType, vResponse);
+      break;
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  var vImpl = this.getImplementation();
+  if (vImpl)
+  {
+    this.setImplementation(null);
+    vImpl.dispose();
+  }
+
+  this.setRequest(null);
+
+  return qx.core.Target.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/IframeTransport.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/IframeTransport.js
new file mode 100644 (file)
index 0000000..29126c5
--- /dev/null
@@ -0,0 +1,472 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+     2006 by Derrell Lipman
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * Derrell Lipman (derrell)
+     * Andreas Junghans (lucidcake)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(io_remote)
+#require(qx.io.remote.Exchange)
+
+************************************************************************ */
+
+/*!
+  Transports requests to a server using an IFRAME.
+
+  This class should not be used directly by client programmers.
+ */
+qx.OO.defineClass("qx.io.remote.IframeTransport", qx.io.remote.AbstractRemoteTransport,
+function()
+{
+  qx.io.remote.AbstractRemoteTransport.call(this);
+
+  var vUniqueId = (new Date).valueOf();
+  var vFrameName = "frame_" + vUniqueId;
+  var vFormName = "form_" + vUniqueId;
+
+  // Mshtml allows us to define a full HTML as a parameter for createElement.
+  // Using this method is the only (known) working to register the frame
+  // to the known elements of the Internet Explorer.
+  if (qx.sys.Client.getInstance().isMshtml()) {
+    this._frame = document.createElement('<iframe name="' + vFrameName + '"></iframe>');
+  } else {
+    this._frame = document.createElement("iframe");
+  }
+
+  this._frame.src = "javascript:void(0)";
+  this._frame.id = this._frame.name = vFrameName;
+  this._frame.onload = function(e) { return o._onload(e); }
+
+  this._frame.style.display = "none";
+
+  document.body.appendChild(this._frame);
+
+  this._form = document.createElement("form");
+  this._form.target = vFrameName;
+  this._form.id = this._form.name = vFormName;
+
+  this._form.style.display = "none";
+
+  document.body.appendChild(this._form);
+
+  this._data = document.createElement("textarea");
+  this._data.id = this._data.name = "_data_";
+  this._form.appendChild(this._data);
+
+  var o = this;
+  this._frame.onreadystatechange = function(e) { return o._onreadystatechange(e); }
+});
+
+qx.Proto._lastReadyState = 0;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CLASS PROPERTIES AND METHODS
+---------------------------------------------------------------------------
+*/
+
+// basic registration to qx.io.remote.Exchange
+// the real availability check (activeX stuff and so on) follows at the first real request
+qx.io.remote.Exchange.registerType(qx.io.remote.IframeTransport, "qx.io.remote.IframeTransport");
+
+qx.io.remote.IframeTransport.handles =
+{
+  synchronous : false,
+  asynchronous : true,
+  crossDomain : false,
+  fileUpload: true,
+  responseTypes : [ "text/plain", "text/javascript", "text/json", "application/xml", "text/html" ]
+}
+
+qx.io.remote.IframeTransport.isSupported = function() {
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  USER METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.send = function()
+{
+  var vMethod = this.getMethod();
+  var vUrl = this.getUrl();
+
+
+
+  // --------------------------------------
+  //   Adding parameters
+  // --------------------------------------
+
+  var vParameters = this.getParameters();
+  var vParametersList = [];
+  for (var vId in vParameters) {
+    var value = vParameters[vId];
+    if (value instanceof Array) {
+      for (var i = 0; i < value.length; i++) {
+        vParametersList.push(encodeURIComponent(vId) + "=" +
+                             encodeURIComponent(value[i]));
+      }
+    } else {
+      vParametersList.push(encodeURIComponent(vId) + "=" +
+                           encodeURIComponent(value));
+    }
+  }
+
+  if (vParametersList.length > 0) {
+    vUrl += (vUrl.indexOf("?") >= 0 ?
+      "&" : "?") + vParametersList.join("&");
+  }
+
+
+
+  // --------------------------------------
+  //   Preparing form
+  // --------------------------------------
+
+  this._form.action = vUrl;
+  this._form.method = vMethod;
+
+
+
+  // --------------------------------------
+  //   Sending data
+  // --------------------------------------
+
+  this._data.appendChild(document.createTextNode(this.getData()));
+  this._form.submit();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT LISTENER
+---------------------------------------------------------------------------
+*/
+
+// For reference:
+// http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/readyState_1.asp
+qx.io.remote.IframeTransport._numericMap =
+{
+  "uninitialized" : 1,
+  "loading" : 2,
+  "loaded" : 2,
+  "interactive" : 3,
+  "complete" : 4
+}
+
+/*!
+  Converting complete state to numeric value and update state property
+*/
+qx.Proto._onload = function(e)
+{
+  if (this._form.src) {
+    return;
+  }
+
+  this._switchReadyState(qx.io.remote.IframeTransport._numericMap.complete);
+}
+
+/*!
+  Converting named readyState to numeric value and update state property
+*/
+qx.Proto._onreadystatechange = function(e) {
+  this._switchReadyState(qx.io.remote.IframeTransport._numericMap[this._frame.readyState]);
+}
+
+qx.Proto._switchReadyState = function(vReadyState)
+{
+  // Ignoring already stopped requests
+  switch(this.getState())
+  {
+    case "completed":
+    case "aborted":
+    case "failed":
+    case "timeout":
+      this.warn("Ignore Ready State Change");
+      return;
+  }
+
+  // Updating internal state
+  while (this._lastReadyState < vReadyState) {
+    this.setState(qx.io.remote.Exchange._nativeMap[++this._lastReadyState]);
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REQUEST HEADER SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.setRequestHeader = function(vLabel, vValue)
+{
+  // TODO
+  // throw new Error("setRequestHeader is abstract");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  RESPONSE HEADER SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getResponseHeader = function(vLabel)
+{
+  return null;
+
+  // TODO
+  // this.error("Need implementation", "getResponseHeader");
+}
+
+/*!
+  Provides an hash of all response headers.
+*/
+qx.Proto.getResponseHeaders = function()
+{
+  return {}
+
+  // TODO
+  // throw new Error("getResponseHeaders is abstract");
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STATUS SUPPORT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Returns the current status code of the request if available or -1 if not.
+*/
+qx.Proto.getStatusCode = function()
+{
+  return 200;
+
+  // TODO
+  // this.error("Need implementation", "getStatusCode");
+}
+
+/*!
+  Provides the status text for the current request if available and null otherwise.
+*/
+qx.Proto.getStatusText = function()
+{
+  return "";
+
+  // TODO
+  // this.error("Need implementation", "getStatusText");
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  FRAME UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getIframeWindow = function() {
+  return qx.dom.Iframe.getWindow(this._frame);
+}
+
+qx.Proto.getIframeDocument = function() {
+  return qx.dom.Iframe.getDocument(this._frame);
+}
+
+qx.Proto.getIframeBody = function() {
+  return qx.dom.Iframe.getBody(this._frame);
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  RESPONSE DATA SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getIframeTextContent = function()
+{
+  var vBody = this.getIframeBody();
+
+  if (!vBody) {
+    return null;
+  }
+
+  // Mshtml returns the content inside a PRE
+  // element if we use plain text
+  if (vBody.firstChild.tagName.toLowerCase() == "pre")
+  {
+    return vBody.firstChild.innerHTML;
+  }
+  else
+  {
+    return vBody.innerHTML;
+  }
+}
+
+qx.Proto.getIframeHtmlContent = function()
+{
+  var vBody = this.getIframeBody();
+  return vBody ? vBody.innerHTML : null;
+}
+
+/*!
+  Returns the length of the content as fetched thus far
+*/
+qx.Proto.getFetchedLength = function()
+{
+  return 0;
+
+  // TODO
+  // throw new Error("getFetchedLength is abstract");
+}
+
+qx.Proto.getResponseContent = function()
+{
+  if (this.getState() !== "completed")
+  {
+    if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+      this.warn("Transfer not complete, ignoring content!");
+    }
+
+    return null;
+  }
+
+  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+    this.debug("Returning content for responseType: " + this.getResponseType());
+  }
+
+  var vText = this.getIframeTextContent();
+
+  switch(this.getResponseType())
+  {
+    case "text/plain":
+      return vText;
+      break;
+
+    case "text/html":
+      return this.getIframeHtmlContent();
+      break;
+
+    case "text/json":
+      try {
+        return vText && vText.length > 0 ? qx.io.Json.parseQx(vText) : null;
+      } catch(ex) {
+        return this.error("Could not execute json: (" + vText + ")", ex);
+      }
+
+    case "text/javascript":
+      try {
+        return vText && vText.length > 0 ? window.eval(vText) : null;
+      } catch(ex) {
+        return this.error("Could not execute javascript: (" + vText + ")", ex);
+      }
+
+    case "application/xml":
+      return this.getIframeDocument();
+
+    default:
+      this.warn("No valid responseType specified (" + this.getResponseType() + ")!");
+      return null;
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if (this._frame)
+  {
+    this._frame.onload = null;
+    this._frame.onreadystatechange = null;
+
+    // Reset source to a blank image for gecko
+    // Otherwise it will switch into a load-without-end behaviour
+    if (qx.sys.Client.getInstance().isGecko()) {
+      this._frame.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
+    }
+
+    // Finally remove element node
+    document.body.removeChild(this._frame);
+
+    this._frame = null;
+  }
+
+  if (this._form)
+  {
+    document.body.removeChild(this._form);
+    this._form = null;
+  }
+
+  return qx.io.remote.AbstractRemoteTransport.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Request.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Request.js
new file mode 100644 (file)
index 0000000..6c398cc
--- /dev/null
@@ -0,0 +1,545 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+     2006 by Derrell Lipman
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * Derrell Lipman (derrell)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(io_remote)
+#require(qx.net.Http)
+
+************************************************************************ */
+
+/*!
+  This class is used to send HTTP requests to the server.
+  @param vUrl Target url to issue the request to.
+  @param vMethod Determines what type of request to issue (GET or
+  POST). Default is GET.
+  @param vResponseType The mime type of the response. Default is text/plain.
+*/
+qx.OO.defineClass("qx.io.remote.Request", qx.core.Target,
+function(vUrl, vMethod, vResponseType)
+{
+  qx.core.Target.call(this);
+
+  this._requestHeaders = {};
+  this._parameters = {};
+
+  this.setUrl(vUrl);
+  this.setMethod(vMethod || qx.net.Http.METHOD_GET);
+  this.setResponseType(vResponseType || "text/plain");
+
+  this.setProhibitCaching(true);
+
+  // Prototype-Style Request Headers
+  this.setRequestHeader("X-Requested-With", "qooxdoo");
+  this.setRequestHeader("X-Qooxdoo-Version", qx.core.Version.toString());
+
+  // Get the next sequence number for this request
+  this._seqNum = ++qx.io.remote.Request._seqNum;
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+/*!
+  Target url to issue the request to.
+*/
+qx.OO.addProperty({ name : "url", type : "string" });
+/*!
+  Determines what type of request to issue (GET or POST).
+*/
+qx.OO.addProperty(
+{
+  name           : "method",
+  type           : "string",
+  possibleValues : [
+                   qx.net.Http.METHOD_GET, qx.net.Http.METHOD_POST,
+                   qx.net.Http.METHOD_PUT, qx.net.Http.METHOD_HEAD,
+                   qx.net.Http.METHOD_DELETE
+                   ]
+});
+/*!
+  Set the request to asynchronous.
+*/
+qx.OO.addProperty({ name : "asynchronous", type : "boolean", defaultValue : true,
+                    getAlias: "isAsynchronous" });
+/*!
+  Set the data to be sent via this request
+*/
+qx.OO.addProperty({ name : "data", type : "string" });
+/*!
+  Username to use for HTTP authentication. Null if HTTP authentication
+  is not used.
+*/
+qx.OO.addProperty({ name : "username", type : "string" });
+/*!
+  Password to use for HTTP authentication. Null if HTTP authentication
+  is not used.
+*/
+qx.OO.addProperty({ name : "password", type : "string" });
+qx.OO.addProperty(
+{
+  name           : "state",
+  type           : "string",
+  possibleValues : [
+                   "configured", "queued",
+                   "sending", "receiving",
+                   "completed", "aborted",
+                   "timeout", "failed"
+                   ],
+  defaultValue   : "configured"
+});
+/*
+  Response type of request.
+
+  The response type is a MIME type, default is text/plain. Other
+  supported MIME types are text/javascript, text/html, text/json,
+  application/xml.
+*/
+qx.OO.addProperty({
+  name           : "responseType",
+  type           : "string",
+  possibleValues : [
+                   "text/plain",
+                   "text/javascript", "text/json",
+                   "application/xml", "text/html"
+                   ]
+});
+/*!
+  Number of millieseconds before the request is being timed out.
+
+  If this property is null, the timeout for the request comes is the
+  qx.io.remote.RequestQueue's property defaultTimeout.
+*/
+qx.OO.addProperty({ name : "timeout", type : "number" });
+
+/*!
+  Prohibit request from being cached.
+
+  Setting the value to true adds a parameter "nocache" to the request
+  with a value of the current time. Setting the value to false removes
+  the parameter.
+*/
+qx.OO.addProperty({ name : "prohibitCaching", type : "boolean" });
+/*!
+  Indicate that the request is cross domain.
+
+  A request is cross domain if the request's URL points to a host other
+  than the local host. This switches the concrete implementation that
+  is used for sending the request from qx.io.remote.XmlHttpTransport to
+  qx.io.remote.ScriptTransport, because only the latter can handle cross domain
+  requests.
+*/
+qx.OO.addProperty({ name : "crossDomain", type : "boolean", defaultValue : false });
+/*!
+  Indicate that the request will be used for a file upload.
+
+  The request will be used for a file upload.  This switches the concrete
+  implementation that is used for sending the request from
+  qx.io.remote.XmlHttpTransport to qx.io.remote.IFrameTransport, because only
+  the latter can handle file uploads.
+*/
+qx.OO.addProperty({ name : "fileUpload", type : "boolean", defaultValue : false });
+/*!
+  The transport instance used for the request.
+
+  This is necessary to be able to abort an asynchronous request.
+*/
+qx.OO.addProperty({ name : "transport", type : "object", instance : "qx.io.remote.Exchange" });
+/*!
+  Use Basic HTTP Authentication
+*/
+qx.OO.addProperty({ name : "useBasicHttpAuth", type : "boolean" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CORE METHODS
+---------------------------------------------------------------------------
+*/
+/*!
+  Schedule this request for transport to server.
+
+  The request is added to the singleton class qx.io.remote.RequestQueue's list of
+  pending requests.
+*/
+qx.Proto.send = function() {
+  qx.io.remote.RequestQueue.getInstance().add(this);
+}
+
+/*!
+  Abort sending this request.
+
+  The request is removed from the singleton class qx.io.remote.RequestQueue's
+  list of pending events. If the request haven't been scheduled this
+  method is a noop.
+*/
+qx.Proto.abort = function() {
+  qx.io.remote.RequestQueue.getInstance().abort(this);
+}
+
+qx.Proto.reset = function()
+{
+  switch(this.getState())
+  {
+    case "sending":
+    case "receiving":
+      this.error("Aborting already sent request!");
+      // no break
+
+    case "queued":
+      this.abort();
+      break;
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STATE ALIASES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.isConfigured = function() {
+  return this.getState() === "configured";
+}
+
+qx.Proto.isQueued = function() {
+  return this.getState() === "queued";
+}
+
+qx.Proto.isSending = function() {
+  return this.getState() === "sending";
+}
+
+qx.Proto.isReceiving = function() {
+  return this.getState() === "receiving";
+}
+
+qx.Proto.isCompleted = function() {
+  return this.getState() === "completed";
+}
+
+qx.Proto.isAborted = function() {
+  return this.getState() === "aborted";
+}
+
+qx.Proto.isTimeout = function() {
+  return this.getState() === "timeout";
+}
+
+/*!
+  Return true if the request is in the failed state
+  ("failed").
+*/
+qx.Proto.isFailed = function() {
+  return this.getState() === "failed";
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onqueued = function(e)
+{
+  // Modify internal state
+  this.setState("queued");
+
+  // Bubbling up
+  this.dispatchEvent(e);
+}
+
+qx.Proto._onsending = function(e)
+{
+  // Modify internal state
+  this.setState("sending");
+
+  // Bubbling up
+  this.dispatchEvent(e);
+}
+
+qx.Proto._onreceiving = function(e)
+{
+  // Modify internal state
+  this.setState("receiving");
+
+  // Bubbling up
+  this.dispatchEvent(e);
+}
+
+qx.Proto._oncompleted = function(e)
+{
+  // Modify internal state
+  this.setState("completed");
+
+  // Bubbling up
+  this.dispatchEvent(e);
+
+  // Automatically dispose after event completion
+  this.dispose();
+}
+
+qx.Proto._onaborted = function(e)
+{
+  // Modify internal state
+  this.setState("aborted");
+
+  // Bubbling up
+  this.dispatchEvent(e);
+
+  // Automatically dispose after event completion
+  this.dispose();
+}
+
+qx.Proto._ontimeout = function(e)
+{
+/*
+  // User's handler can block until timeout.
+  switch(this.getState())
+  {
+    // If we're no longer running...
+    case "completed":
+    case "timeout":
+    case "aborted":
+    case "failed":
+      // then don't bubble up the timeout event
+      return;
+  }
+*/
+
+  // Modify internal state
+  this.setState("timeout");
+
+  // Bubbling up
+  this.dispatchEvent(e);
+
+  // Automatically dispose after event completion
+  this.dispose();
+}
+
+qx.Proto._onfailed = function(e)
+{
+  // Modify internal state
+  this.setState("failed");
+
+  // Bubbling up
+  this.dispatchEvent(e);
+
+  // Automatically dispose after event completion
+  this.dispose();
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyState = function(propValue, propOldValue, propData)
+{
+  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+    this.debug("State: " + propValue);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyProhibitCaching = function(propValue, propOldValue, propData)
+{
+  propValue ? this.setParameter("nocache", new Date().valueOf()) : this.removeParameter("nocache");
+
+  return true;
+}
+
+qx.Proto._modifyMethod = function(propValue, propOldValue, propData)
+{
+  if (propValue === qx.net.Http.METHOD_POST) {
+    this.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+  }
+
+  return true;
+}
+
+qx.Proto._modifyResponseType = function(propValue, propOldValue, propData)
+{
+  this.setRequestHeader("X-Qooxdoo-Response-Type", propValue);
+  return true;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REQUEST HEADER
+---------------------------------------------------------------------------
+*/
+/*!
+  Add a request header to the request.
+
+  Example: request.setRequestHeader("Content-Type", "text/html")
+*/
+qx.Proto.setRequestHeader = function(vId, vValue) {
+  this._requestHeaders[vId] = vValue;
+}
+
+qx.Proto.removeRequestHeader = function(vId) {
+  delete this._requestHeaders[vId];
+}
+
+qx.Proto.getRequestHeader = function(vId) {
+  return this._requestHeaders[vId] || null;
+}
+
+qx.Proto.getRequestHeaders = function() {
+  return this._requestHeaders;
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PARAMETERS
+---------------------------------------------------------------------------
+*/
+/*!
+  Add a parameter to the request.
+
+  @param vId String identifier of the parameter to add.
+  @param vValue Value of parameter. May be a string (for one parameter) or an
+         array of strings (for setting multiple parameter values with the same
+         parameter name).
+*/
+qx.Proto.setParameter = function(vId, vValue) {
+  this._parameters[vId] = vValue;
+}
+
+/*!
+  Remove a parameter from the request.
+
+  @param vId String identifier of the parameter to remove.
+*/
+qx.Proto.removeParameter = function(vId) {
+  delete this._parameters[vId];
+}
+
+/*!
+  Get a parameter in the request.
+
+  @param vId String identifier of the parameter to get.
+*/
+qx.Proto.getParameter = function(vId) {
+  return this._parameters[vId] || null;
+}
+
+/*!
+  Returns an object containg all parameters for the request.
+*/
+qx.Proto.getParameters = function() {
+  return this._parameters;
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SEQUENCE NUMBER
+---------------------------------------------------------------------------
+*/
+
+/*
+ * Sequence (id) number of a request, used to associate a response or error
+ * with its initiating request.
+ */
+qx.io.remote.Request._seqNum = 0;
+
+/**
+ * Obtain the sequence (id) number used for this request
+ */
+qx.Proto.getSequenceNumber = function() {
+  return this._seqNum;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._requestHeaders = null;
+  this._parameters = null;
+
+  this.setTransport(null);
+
+  return qx.core.Target.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/RequestQueue.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/RequestQueue.js
new file mode 100644 (file)
index 0000000..21d3af5
--- /dev/null
@@ -0,0 +1,392 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+     2006 by Derrell Lipman
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * Derrell Lipman (derrell)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(io_remote)
+
+************************************************************************ */
+/*!
+  Handles scheduling of requests to be sent to a server.
+
+  This class is a singleton and is used by qx.io.remote.Request to schedule its
+  requests. It should not be used directly.
+ */
+qx.OO.defineClass("qx.io.remote.RequestQueue", qx.core.Target,
+function()
+{
+  qx.core.Target.call(this);
+
+  this._queue = [];
+  this._active = [];
+
+  this._totalRequests = 0;
+
+  // timeout handling
+  this._timer = new qx.client.Timer(500);
+  this._timer.addEventListener("interval", this._oninterval, this);
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "maxTotalRequests", type : "number" });
+qx.OO.addProperty({ name : "maxConcurrentRequests", type : "number", defaultValue : 3 });
+qx.OO.addProperty({ name : "defaultTimeout", type : "number", defaultValue : 5000 });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  QUEUE HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._debug = function()
+{
+  // Debug output
+  var vText = this._active.length + "/" + (this._queue.length+this._active.length);
+
+  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug"))
+  {
+    this.debug("Progress: " + vText);
+    window.status = "Request-Queue Progress: " + vText;
+  }
+}
+
+qx.Proto._check = function()
+{
+  // Debug output
+  this._debug();
+
+  // Check queues and stop timer if not needed anymore
+  if (this._active.length == 0 && this._queue.length == 0) {
+    this._timer.stop();
+  }
+
+  // Checking if enabled
+  if (!this.getEnabled()) {
+    return;
+  }
+
+  // Checking active queue fill
+  if (this._active.length >= this.getMaxConcurrentRequests() || this._queue.length == 0) {
+    return;
+  }
+
+  // Checking number of total requests
+  if (this.getMaxTotalRequests() != null && this._totalRequests >= this.getMaxTotalRequests()) {
+    return;
+  }
+
+  var vRequest = this._queue.shift();
+  var vTransport = new qx.io.remote.Exchange(vRequest);
+
+  // Increment counter
+  this._totalRequests++;
+
+  // Add to active queue
+  this._active.push(vTransport);
+
+  // Debug output
+  this._debug();
+
+  // Establish event connection between qx.io.remote.Exchange instance and qx.io.remote.Request
+  vTransport.addEventListener("sending", vRequest._onsending, vRequest);
+  vTransport.addEventListener("receiving", vRequest._onreceiving, vRequest);
+  vTransport.addEventListener("completed", vRequest._oncompleted, vRequest);
+  vTransport.addEventListener("aborted", vRequest._onaborted, vRequest);
+  vTransport.addEventListener("timeout", vRequest._ontimeout, vRequest);
+  vTransport.addEventListener("failed", vRequest._onfailed, vRequest);
+
+  // Establish event connection between qx.io.remote.Exchange and me.
+  vTransport.addEventListener("sending", this._onsending, this);
+  vTransport.addEventListener("completed", this._oncompleted, this);
+  vTransport.addEventListener("aborted", this._oncompleted, this);
+  vTransport.addEventListener("timeout", this._oncompleted, this);
+  vTransport.addEventListener("failed", this._oncompleted, this);
+
+  // Store send timestamp
+  vTransport._start = (new Date).valueOf();
+
+  // Send
+  vTransport.send();
+
+  // Retry
+  if (this._queue.length > 0) {
+    this._check();
+  }
+}
+
+qx.Proto._remove = function(vTransport)
+{
+  var vRequest = vTransport.getRequest();
+
+  // Destruct event connection between qx.io.remote.Exchange instance and qx.io.remote.Request
+  vTransport.removeEventListener("sending", vRequest._onsending, vRequest);
+  vTransport.removeEventListener("receiving", vRequest._onreceiving, vRequest);
+  vTransport.removeEventListener("completed", vRequest._oncompleted, vRequest);
+  vTransport.removeEventListener("aborted", vRequest._onaborted, vRequest);
+  vTransport.removeEventListener("timeout", vRequest._ontimeout, vRequest);
+  vTransport.removeEventListener("failed", vRequest._onfailed, vRequest);
+
+  // Destruct event connection between qx.io.remote.Exchange and me.
+  vTransport.removeEventListener("sending", this._onsending, this);
+  vTransport.removeEventListener("completed", this._oncompleted, this);
+  vTransport.removeEventListener("aborted", this._oncompleted, this);
+  vTransport.removeEventListener("timeout", this._oncompleted, this);
+  vTransport.removeEventListener("failed", this._oncompleted, this);
+
+  // Remove from active transports
+  qx.lang.Array.remove(this._active, vTransport);
+
+  // Dispose transport object
+  vTransport.dispose();
+
+  // Check again
+  this._check();
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._activeCount = 0;
+
+qx.Proto._onsending = function(e)
+{
+  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug"))
+  {
+    this._activeCount++;
+    e.getTarget()._counted = true;
+
+    this.debug("ActiveCount: " + this._activeCount);
+  }
+}
+
+qx.Proto._oncompleted = function(e)
+{
+  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug"))
+  {
+    if (e.getTarget()._counted)
+    {
+      this._activeCount--;
+      this.debug("ActiveCount: " + this._activeCount);
+    }
+  }
+
+  this._remove(e.getTarget());
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  TIMEOUT HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._oninterval = function(e)
+{
+  var vActive = this._active;
+
+  if (vActive.length == 0) {
+    return;
+  }
+
+  var vCurrent = (new Date).valueOf();
+  var vTransport;
+  var vRequest;
+  var vDefaultTimeout = this.getDefaultTimeout();
+  var vTimeout;
+  var vTime;
+
+  for (var i=vActive.length-1; i>=0; i--)
+  {
+    vTransport = vActive[i];
+    vRequest = vTransport.getRequest();
+    if (vRequest.isAsynchronous()) {
+      vTimeout = vRequest.getTimeout();
+
+      // if timer is disabled...
+      if (vTimeout == 0) {
+        // then ignore it.
+        continue;
+      }
+
+      if (vTimeout == null) {
+        vTimeout = vDefaultTimeout;
+      }
+
+      vTime = vCurrent - vTransport._start;
+
+      if (vTime > vTimeout)
+      {
+        this.warn("Timeout: transport " + vTransport.toHashCode());
+        this.warn(vTime + "ms > " + vTimeout + "ms");
+        vTransport.timeout();
+      }
+    }
+  }
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
+{
+  if (propValue) {
+    this._check();
+  }
+
+  this._timer.setEnabled(propValue);
+
+  return true;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CORE METHODS
+---------------------------------------------------------------------------
+*/
+/*!
+  Add the request to the pending requests queue.
+*/
+qx.Proto.add = function(vRequest)
+{
+  vRequest.setState("queued");
+
+  this._queue.push(vRequest);
+  this._check();
+
+  if (this.getEnabled()) {
+    this._timer.start();
+  }
+}
+
+/*!
+  Remove the request from the pending requests queue.
+
+  The underlying transport of the request is forced into the aborted
+  state ("aborted") and listeners of the "aborted"
+  signal are notified about the event. If the request isn't in the
+  pending requests queue, this method is a noop.
+*/
+qx.Proto.abort = function(vRequest)
+{
+  var vTransport = vRequest.getTransport();
+
+  if (vTransport)
+  {
+    vTransport.abort();
+  }
+  else if (qx.lang.Array.contains(this._queue, vRequest))
+  {
+    qx.lang.Array.remove(this._queue, vRequest);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if (this._active)
+  {
+    for (var i=0, a=this._active, l=a.length; i<l; i++) {
+      this._remove(a[i]);
+    }
+
+    this._active = null;
+  }
+
+  if (this._timer)
+  {
+    this._timer.removeEventListener("interval", this._oninterval, this);
+    this._timer = null;
+  }
+
+  this._queue = null;
+
+  return qx.core.Target.prototype.dispose.call(this);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Response.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Response.js
new file mode 100644 (file)
index 0000000..e35460c
--- /dev/null
@@ -0,0 +1,110 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(io_remote)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.io.remote.Response", qx.core.Target,
+function() {
+  qx.core.Target.call(this);
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "state", type : "number" });
+/*!
+  Status code of the response.
+*/
+qx.OO.addProperty({ name : "statusCode", type : "number" });
+qx.OO.addProperty({ name : "content" });
+qx.OO.addProperty({ name : "responseHeaders", type : "object" });
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIERS
+---------------------------------------------------------------------------
+*/
+
+/*
+qx.Proto._modifyResponseHeaders = function(propValue, propOldValue, propData)
+{
+  for (vKey in propValue) {
+    this.debug("R-Header: " + vKey + "=" + propValue[vKey]);
+  }
+
+  return true;
+}
+*/
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  USER METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getResponseHeader = function(vHeader)
+{
+  var vAll = this.getResponseHeaders();
+  if (vAll) {
+    return vAll[vHeader] || null;
+  }
+
+  return null;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  return qx.core.Target.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Rpc.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Rpc.js
new file mode 100644 (file)
index 0000000..65b4f16
--- /dev/null
@@ -0,0 +1,572 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+     2006 by Derrell Lipman
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Andreas Junghans (lucidcake)
+     * Derrell Lipman (derrell)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(io_remote)
+
+************************************************************************ */
+
+
+/**
+ * Provides a Remote Procedure Call (RPC) implementation.
+ *
+ * Each instance of this class represents a "Service". These services can
+ * correspond to various concepts on the server side (depending on the
+ * programming language/environment being used), but usually, a service means
+ * a class on the server.
+ *
+ * In case multiple instances of the same service are needed, they can be
+ * distinguished by ids. If such an id is specified, the server routes all
+ * calls to a service that have the same id to the same server-side instance.
+ *
+ * When calling a server-side method, the parameters and return values are
+ * converted automatically. Supported types are int (and Integer), double
+ * (and Double), String, Date, Map, and JavaBeans. Beans must habe a default
+ * constructor on the server side and are represented by simple JavaScript
+ * objects on the client side (used as associative arrays with keys matching
+ * the server-side properties). Beans can also be nested, but be careful to not
+ * create circular references! There are no checks to detect these (which would
+ * be expensive), so you as the user are responsible for avoiding them.
+ *
+ * @param       url {string}            identifies the url where the service
+ *                                      is found.  Note that if the url is to
+ *                                      a domain (server) other than where the
+ *                                      qooxdoo script came from, i.e. it is
+ *                                      cross-domain, then you must also call
+ *                                      the setCrossDomain(true) method to
+ *                                      enable the IframeTrannsport instead of
+ *                                      the XmlHttpTransport, since the latter
+ *                                      can not handle cross-domain requests.
+ *
+ * @param       serviceName {string}    identifies the service. For the Java
+ *                                      implementation, this is the fully
+ *                                      qualified name of the class that offers
+ *                                      the service methods
+ *                                      (e.g. "my.pkg.MyService").
+ *
+ * @event completed (qx.event.type.DataEvent)
+ * @event failed (qx.event.type.DataEvent)
+ * @event timeout (qx.event.type.DataEvent)
+ * @event aborted (qx.event.type.DataEvent)
+ */
+
+qx.OO.defineClass("qx.io.remote.Rpc", qx.core.Target,
+function(url, serviceName)
+{
+  qx.core.Target.call(this);
+
+  this.setUrl(url);
+  if (serviceName != null) {
+    this.setServiceName(serviceName);
+  }
+  this._previousServerSuffix = null;
+  this._currentServerSuffix = null;
+  if (qx.core.ServerSettings) {
+    this._currentServerSuffix = qx.core.ServerSettings.serverPathSuffix;
+  }
+});
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/**
+  The timeout for asynchronous calls in milliseconds.
+ */
+qx.OO.addProperty({ name : "timeout", type : "number" });
+
+/**
+  Indicate that the request is cross domain.
+
+  A request is cross domain if the request's URL points to a host other
+  than the local host. This switches the concrete implementation that
+  is used for sending the request from qx.io.remote.XmlHttpTransport to
+  qx.io.remote.ScriptTransport because only the latter can handle cross domain
+  requests.
+*/
+qx.OO.addProperty({ name : "crossDomain", type : "boolean", defaultValue : false });
+
+/**
+  The URL at which the service is located.
+*/
+qx.OO.addProperty({ name : "url", type : "string", defaultValue : null });
+
+/**
+  The service name.
+*/
+qx.OO.addProperty({ name : "serviceName", type : "string", defaultValue : null });
+
+/**
+  Data sent as "out of band" data in the request to the server.  The format of
+  the data is opaque to RPC and may be recognized only by particular servers
+  It is up to the server to decide what to do with it: whether to ignore it,
+  handle it locally before calling the specified method, or pass it on to the
+  method.  This server data is not sent to the server if it has been set to
+  'undefined'.
+*/
+qx.OO.addProperty({ name : "serverData", type : "object", defaultValue : undefined });
+
+/**
+  Username to use for HTTP authentication. Null if HTTP authentication
+  is not used.
+*/
+qx.OO.addProperty({ name : "username", type : "string" });
+
+/**
+  Password to use for HTTP authentication. Null if HTTP authentication
+  is not used.
+*/
+qx.OO.addProperty({ name : "password", type : "string" });
+
+/**
+  Use Basic HTTP Authentication
+*/
+qx.OO.addProperty({ name : "useBasicHttpAuth", type : "boolean" });
+
+/**
+   Origins of errors
+*/
+qx.io.remote.Rpc.origin =
+{
+  server      : 1,
+  application : 2,
+  transport   : 3,
+  local       : 4
+}
+
+/**
+   Locally-detected errors
+*/
+qx.io.remote.Rpc.localError =
+{
+  timeout     : 1,
+  abort       : 2
+}
+
+
+/*
+---------------------------------------------------------------------------
+  CORE METHODS
+---------------------------------------------------------------------------
+*/
+
+/* callType: 0 = sync, 1 = async with handler, 2 = async event listeners */
+qx.Proto._callInternal = function(args, callType, refreshSession) {
+  var self = this;
+  var offset = (callType == 0 ? 0 : 1)
+  var whichMethod = (refreshSession ? "refreshSession" : args[offset]);
+  var handler = args[0];
+  var argsArray = [];
+  var eventTarget = this;
+
+  for (var i = offset + 1; i < args.length; ++i) {
+    argsArray.push(args[i]);
+  }
+  var req = new qx.io.remote.Request(this.getUrl(),
+                                           qx.net.Http.METHOD_POST,
+                                           "text/json");
+  var requestObject = {
+    "service": (refreshSession ? null : this.getServiceName()),
+    "method": whichMethod,
+    "id": req.getSequenceNumber(),
+    "params": argsArray
+    // additional field 'server_data' optionally included, below
+  }
+
+  // See if there's any out-of-band data to be sent to the server
+  var serverData = this.getServerData();
+  if (serverData !== undefined) {
+    // There is.  Send it.
+    requestObject.server_data = serverData;
+  }
+
+  req.setCrossDomain(this.getCrossDomain());
+
+  if (this.getUsername()) {
+    req.setUseBasicHttpAuth(this.getUseBasicHttpAuth());
+    req.setUsername(this.getUsername());
+    req.setPassword(this.getPassword());
+  }
+
+  req.setTimeout(this.getTimeout());
+  var ex = null;
+  var id = null;
+  var result = null;
+
+  var handleRequestFinished = function(eventType, eventTarget) {
+    switch(callType)
+    {
+    case 0:                     // sync
+      break;
+
+    case 1:                     // async with handler function
+      handler(result, ex, id);
+      break;
+
+    case 2:                     // async with event listeners
+      // Dispatch the event to our listeners.
+      if (! ex) {
+        eventTarget.createDispatchDataEvent(eventType, result);
+      } else {
+        // Add the id to the exception
+        ex.id = id;
+
+        if (args[0]) {          // coalesce
+          // They requested that we coalesce all failure types to "failed"
+          eventTarget.createDispatchDataEvent("failed", ex);
+        } else {
+          // No coalese so use original event type
+          eventTarget.createDispatchDataEvent(eventType, ex);
+        }
+      }
+    }
+  }
+
+  var addToStringToObject = function(obj) {
+    obj.toString = function() {
+      switch(obj.origin)
+      {
+      case qx.io.remote.Rpc.origin.server:
+        return "Server error " + obj.code + ": " + obj.message;
+      case qx.io.remote.Rpc.origin.application:
+        return "Application error " + obj.code + ": " + obj.message;
+      case qx.io.remote.Rpc.origin.transport:
+        return "Transport error " + obj.code + ": " + obj.message;
+      case qx.io.remote.Rpc.origin.local:
+        return "Local error " + obj.code + ": " + obj.message;
+      default:
+        return "UNEXPECTED origin " + obj.origin + " error " + obj.code + ": " + obj.message;
+      }
+    }
+  }
+
+  var makeException = function(origin, code, message) {
+    var ex = new Object();
+
+    ex.origin = origin;
+    ex.code = code;
+    ex.message = message;
+    addToStringToObject(ex);
+
+    return ex;
+  }
+
+  req.addEventListener("failed", function(evt) {
+    var code = evt.getData().getStatusCode();
+    ex = makeException(qx.io.remote.Rpc.origin.transport,
+                       code,
+                       qx.io.remote.Exchange.statusCodeToString(code));
+    id = this.getSequenceNumber();
+    handleRequestFinished("failed", eventTarget);
+  });
+  req.addEventListener("timeout", function(evt) {
+    ex = makeException(qx.io.remote.Rpc.origin.local,
+                       qx.io.remote.Rpc.localError.timeout,
+                       "Local time-out expired");
+    id = this.getSequenceNumber();
+    handleRequestFinished("timeout", eventTarget);
+  });
+  req.addEventListener("aborted", function(evt) {
+    ex = makeException(qx.io.remote.Rpc.origin.local,
+                       qx.io.remote.Rpc.localError.abort,
+                       "Aborted");
+    id = this.getSequenceNumber();
+    handleRequestFinished("aborted", eventTarget);
+  });
+  req.addEventListener("completed", function(evt) {
+    result = evt.getData().getContent();
+    id = result["id"];
+    if (id != this.getSequenceNumber()) {
+      this.warn("Received id (" + id + ") does not match requested id (" + this.getSequenceNumber() + ")!");
+    }
+    var exTest = result["error"];
+    if (exTest != null) {
+      result = null;
+      addToStringToObject(exTest);
+      ex = exTest;
+    } else {
+      result = result["result"];
+      if (refreshSession) {
+        result = eval("(" + result + ")");
+        var newSuffix = qx.core.ServerSettings.serverPathSuffix;
+        if (self._currentServerSuffix != newSuffix) {
+          self._previousServerSuffix = self._currentServerSuffix;
+          self._currentServerSuffix = newSuffix;
+        }
+        self.setUrl(self.fixUrl(self.getUrl()));
+      }
+    }
+    handleRequestFinished("completed", eventTarget);
+  });
+  req.setData(qx.io.Json.stringify(requestObject));
+  req.setAsynchronous(callType > 0);
+
+  if (req.getCrossDomain()) {
+    // Our choice here has no effect anyway.  This is purely informational.
+    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+  } else {
+    // When not cross-domain, set type to text/json
+    req.setRequestHeader("Content-Type", "text/json");
+  }
+
+  req.send();
+
+  if (callType == 0) {
+      if (ex != null) {
+        var error = new Error(ex.toString());
+        error.rpcdetails = ex;
+        throw error;
+      }
+      return result;
+  } else {
+    return req;
+  }
+}
+
+
+/**
+ * Helper method to rewrite a URL with a stale session id (so that it includes
+ * the correct session id afterwards).
+ *
+ * @param url {string}        the URL to examine.
+ *
+ * @return {string}            the (possibly re-written) URL.
+ */
+
+qx.Proto.fixUrl = function(url) {
+  if (this._previousServerSuffix == null || this._currentServerSuffix == null ||
+    this._previousServerSuffix == "" ||
+    this._previousServerSuffix == this._currentServerSuffix) {
+    return url;
+  }
+  var index = url.indexOf(this._previousServerSuffix);
+  if (index == -1) {
+    return url;
+  }
+  return url.substring(0, index) + this._currentServerSuffix +
+         url.substring(index + this._previousServerSuffix.length);
+};
+
+
+/**
+ * Makes a synchronous server call. The method arguments (if any) follow
+ * after the method name (as normal JavaScript arguments, separated by commas,
+ * not as an array).
+ * <p>
+ * If a problem occurs when making the call, an exception is thrown.
+ * </p>
+ * <p>
+ * WARNING.  With some browsers, the synchronous interface
+ * causes the browser to hang while awaiting a response!  If the server
+ * decides to pause for a minute or two, your browser may do nothing
+ * (including refreshing following window changes) until the response is
+ * received.  Instead, use the asynchronous interface.
+ * </p>
+ * <p>
+ * YOU HAVE BEEN WARNED.
+ * </p>
+ *
+ * @param       methodName {string}   the name of the method to call.
+ *
+ * @return      {var}                 the result returned by the server.
+ */
+
+qx.Proto.callSync = function(methodName) {
+  return this._callInternal(arguments, 0);
+}
+
+
+/**
+ * Makes an asynchronous server call. The method arguments (if any) follow
+ * after the method name (as normal JavaScript arguments, separated by commas,
+ * not as an array).
+ * <p>
+ * When an answer from the server arrives, the <code>handler</code> function
+ * is called with the result of the call as the first,  an exception as the
+ * second parameter, and the id (aka sequence number) of the invoking request
+ * as the third parameter. If the call was successful, the second parameter is
+ * <code>null</code>. If there was a problem, the second parameter contains an
+ * exception, and the first one is <code>null</code>.
+ * </p>
+ * <p>
+ * The return value of this method is a call reference that you can store if
+ * you want to abort the request later on. This value should be treated as
+ * opaque and can change completely in the future! The only thing you can rely
+ * on is that the <code>abort</code> method will accept this reference and
+ * that you can retrieve the sequence number of the request by invoking the
+ * getSequenceNumber() method (see below).
+ * </p>
+ * <p>
+ * If a specific method is being called, asynchronously, a number of times in
+ * succession, the getSequenceNumber() method may be used to disambiguate
+ * which request a response corresponds to.  The sequence number value is a
+ * value which increments with each request.)
+ * </p>
+ *
+ * @param       handler {Function}    the callback function.
+ *
+ * @param       methodName {string}   the name of the method to call.
+ *
+ * @return      {var}                 the method call reference.
+ */
+
+qx.Proto.callAsync = function(handler, methodName) {
+  return this._callInternal(arguments, 1);
+}
+
+
+/**
+ * Makes an asynchronous server call and dispatch an event upon completion or
+ * failure. The method arguments (if any) follow after the method name (as
+ * normal JavaScript arguments, separated by commas, not as an array).
+ * <p>
+ * When an answer from the server arrives (or fails to arrive on time), if an
+ * exception occurred, a "failed", "timeout" or "aborted" event, as
+ * appropriate, is dispatched to any waiting event listeners.  If no exception
+ * occurred, a "completed" event is dispatched.
+ * </p>
+ * <p>
+ * When a "failed", "timeout" or "aborted" event is dispatched, the event data
+ * contains an object with the properties 'origin', 'code', 'message' and
+ * 'id'.  The object has a toString() function which may be called to convert
+ * the exception to a string.
+ * </p>
+ * <p>
+ * When a "completed" event is dispatched, the event data contains the
+ * JSON-RPC result.
+ * </p>
+ * <p>
+ * The return value of this method is a call reference that you can store if
+ * you want to abort the request later on. This value should be treated as
+ * opaque and can change completely in the future! The only thing you can rely
+ * on is that the <code>abort</code> method will accept this reference and
+ * that you can retrieve the sequence number of the request by invoking the
+ * getSequenceNumber() method (see below).
+ * </p>
+ * <p>
+ * If a specific method is being called, asynchronously, a number of times in
+ * succession, the getSequenceNumber() method may be used to disambiguate
+ * which request a response corresponds to.  The sequence number value is a
+ * value which increments with each request.)
+ * </p>
+ *
+ * @param       coalesce (boolean)    coalesce all failure types ("failed",
+ *                                    "timeout", and "aborted") to "failed".
+ *                                    This is reasonable in many cases, as
+ *                                    the provided exception contains adequate
+ *                                    disambiguating information.
+ *
+ * @param       methodName (string)   the name of the method to call.
+ *
+ * @return      (var)                 the method call reference.
+ */
+
+qx.Proto.callAsyncListeners = function(coalesce, methodName) {
+  return this._callInternal(arguments, 2);
+}
+
+
+/**
+ * Refreshes a server session by retrieving the session id again from the
+ * server.
+ * <p>
+ * The specified handler function is called when the refresh is complete. The
+ * first parameter can be <code>true</code> (indicating that a refresh either
+ * wasn't necessary at this time or it was successful) or <code>false</code>
+ * (indicating that a refresh would have been necessary but can't be performed
+ * because the server backend doesn't support it). If there is a non-null
+ * second parameter, it's an exception indicating that there was an error when
+ * refreshing the session.
+ * </p>
+ *
+ * @param   handler {Function}      a callback function that is called when the
+ *                                  refresh is complete (or failed).
+ */
+
+qx.Proto.refreshSession = function(handler) {
+  if (this.getCrossDomain()) {
+    if (qx.core.ServerSettings && qx.core.ServerSettings.serverPathSuffix) {
+      var timeDiff = (new Date()).getTime() - qx.core.ServerSettings.lastSessionRefresh;
+      if (timeDiff/1000 > (qx.core.ServerSettings.sessionTimeoutInSeconds - 30)) {
+        //this.info("refreshing session");
+        this._callInternal([handler], 1, true);
+      } else {
+        handler(true);    // session refresh was OK (in this case: not needed)
+      }
+    } else {
+      handler(false);   // no refresh possible, but would be necessary
+    }
+  } else {
+    handler(true);  // session refresh was OK (in this case: not needed)
+  }
+}
+
+
+/**
+ * Aborts an asynchronous server call. Consequently, the callback function
+ * provided to <code>callAsync</code> or <code>callAsyncListeners</code> will
+ * be called with an exception.
+ *
+ * @param       opaqueCallRef {var}     the call reference as returned by
+ *                                      <code>callAsync</code> or
+ *                                      <code>callAsyncListeners</code>
+ */
+
+qx.Proto.abort = function(opaqueCallRef) {
+  opaqueCallRef.abort();
+}
+
+
+/**
+ * Creates an URL for talking to a local service. A local service is one that
+ * lives in the same application as the page calling the service. For backends
+ * that don't support this auto-generation, this method returns null.
+ *
+ * @param       instanceId {string ? null}    an optional identifier for the
+ *                                          server side instance that should be
+ *                                          used. All calls to the same service
+ *                                          with the same instance id are
+ *                                          routed to the same object instance
+ *                                          on the server. The instance id can
+ *                                          also be used to provide additional
+ *                                          data for the service instantiation
+ *                                          on the server.
+ *
+ * @return      {string}                    the url.
+ */
+
+qx.Class.makeServerURL = function(instanceId) {
+  var retVal = null;
+  if (qx.core.ServerSettings) {
+    retVal = qx.core.ServerSettings.serverPathPrefix + "/.qxrpc" +
+             qx.core.ServerSettings.serverPathSuffix;
+    if (instanceId != null) {
+      retVal += "?instanceId=" + instanceId;
+    }
+  }
+  return retVal;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/ScriptTransport.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/ScriptTransport.js
new file mode 100644 (file)
index 0000000..8416988
--- /dev/null
@@ -0,0 +1,360 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+     2006 by Derrell Lipman
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * Derrell Lipman (derrell)
+     * Andreas Junghans (lucidcake)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(io_remote)
+#require(qx.io.remote.Exchange)
+
+************************************************************************ */
+
+/*!
+  Transports requests to a server using dynamic script tags.
+
+  This class should not be used directly by client programmers.
+ */
+qx.OO.defineClass("qx.io.remote.ScriptTransport", qx.io.remote.AbstractRemoteTransport,
+function()
+{
+  qx.io.remote.AbstractRemoteTransport.call(this);
+
+  var vUniqueId = ++qx.io.remote.ScriptTransport._uniqueId;
+  if (vUniqueId >= 2000000000) {
+    qx.io.remote.ScriptTransport._uniqueId = vUniqueId = 1;
+  }
+
+  this._element = null;
+  this._uniqueId = vUniqueId;
+});
+
+qx.Class._uniqueId = 0;
+qx.Class._instanceRegistry = {};
+qx.Class.ScriptTransport_PREFIX = "_ScriptTransport_";
+qx.Class.ScriptTransport_ID_PARAM = qx.Class.ScriptTransport_PREFIX + "id";
+qx.Class.ScriptTransport_DATA_PARAM = qx.Class.ScriptTransport_PREFIX + "data";
+qx.Proto._lastReadyState = 0;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CLASS PROPERTIES AND METHODS
+---------------------------------------------------------------------------
+*/
+
+// basic registration to qx.io.remote.Exchange
+// the real availability check (activeX stuff and so on) follows at the first real request
+qx.io.remote.Exchange.registerType(qx.io.remote.ScriptTransport, "qx.io.remote.ScriptTransport");
+
+qx.io.remote.ScriptTransport.handles =
+{
+  synchronous : false,
+  asynchronous : true,
+  crossDomain : true,
+  fileUpload: false,
+  responseTypes : [ "text/plain", "text/javascript", "text/json" ]
+}
+
+qx.io.remote.ScriptTransport.isSupported = function() {
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  USER METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.send = function()
+{
+  var vUrl = this.getUrl();
+
+
+
+  // --------------------------------------
+  //   Adding parameters
+  // --------------------------------------
+
+  vUrl += (vUrl.indexOf("?") >= 0 ? "&" : "?") + qx.io.remote.ScriptTransport.ScriptTransport_ID_PARAM + "=" + this._uniqueId;
+
+  var vParameters = this.getParameters();
+  var vParametersList = [];
+  for (var vId in vParameters) {
+    if (vId.indexOf(qx.io.remote.ScriptTransport.ScriptTransport_PREFIX) == 0) {
+      this.error("Illegal parameter name. The following prefix is used internally by qooxdoo): " +
+        qx.io.remote.ScriptTransport.ScriptTransport_PREFIX);
+    }
+    var value = vParameters[vId];
+    if (value instanceof Array) {
+      for (var i = 0; i < value.length; i++) {
+        vParametersList.push(encodeURIComponent(vId) + "=" +
+                             encodeURIComponent(value[i]));
+      }
+    } else {
+      vParametersList.push(encodeURIComponent(vId) + "=" +
+                           encodeURIComponent(value));
+    }
+  }
+
+  if (vParametersList.length > 0) {
+    vUrl += "&" + vParametersList.join("&");
+  }
+
+
+
+  // --------------------------------------
+  //   Sending data
+  // --------------------------------------
+
+  vData = this.getData();
+  if (vData != null) {
+    vUrl += "&" + qx.io.remote.ScriptTransport.ScriptTransport_DATA_PARAM + "=" + encodeURIComponent(vData);
+  }
+
+  qx.io.remote.ScriptTransport._instanceRegistry[this._uniqueId] = this;
+  this._element = document.createElement("script");
+  this._element.charset = "utf-8";  // IE needs this (it ignores the
+                                    // encoding from the header sent by the
+                                    // server for dynamic script tags)
+  this._element.src = vUrl;
+
+  document.body.appendChild(this._element);
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT LISTENER
+---------------------------------------------------------------------------
+*/
+
+// For reference:
+// http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/readyState_1.asp
+qx.io.remote.ScriptTransport._numericMap =
+{
+  "uninitialized" : 1,
+  "loading" : 2,
+  "loaded" : 2,
+  "interactive" : 3,
+  "complete" : 4
+}
+
+qx.Proto._switchReadyState = function(vReadyState)
+{
+  // Ignoring already stopped requests
+  switch(this.getState())
+  {
+    case "completed":
+    case "aborted":
+    case "failed":
+    case "timeout":
+      this.warn("Ignore Ready State Change");
+      return;
+  }
+
+  // Updating internal state
+  while (this._lastReadyState < vReadyState) {
+    this.setState(qx.io.remote.Exchange._nativeMap[++this._lastReadyState]);
+  }
+}
+qx.Class._requestFinished = function(id, content) {
+  var vInstance = qx.io.remote.ScriptTransport._instanceRegistry[id];
+  if (vInstance == null) {
+    if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+      this.warn("Request finished for an unknown instance (probably aborted or timed out before)");
+    }
+  } else {
+    vInstance._responseContent = content;
+    vInstance._switchReadyState(qx.io.remote.ScriptTransport._numericMap.complete);
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REQUEST HEADER SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.setRequestHeader = function(vLabel, vValue)
+{
+  // TODO
+  // throw new Error("setRequestHeader is abstract");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  RESPONSE HEADER SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getResponseHeader = function(vLabel)
+{
+  return null;
+
+  // TODO
+  // this.error("Need implementation", "getResponseHeader");
+}
+
+/*!
+  Provides an hash of all response headers.
+*/
+qx.Proto.getResponseHeaders = function()
+{
+  return {}
+
+  // TODO
+  // throw new Error("getResponseHeaders is abstract");
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STATUS SUPPORT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Returns the current status code of the request if available or -1 if not.
+*/
+qx.Proto.getStatusCode = function()
+{
+  return 200;
+
+  // TODO
+  // this.error("Need implementation", "getStatusCode");
+}
+
+/*!
+  Provides the status text for the current request if available and null otherwise.
+*/
+qx.Proto.getStatusText = function()
+{
+  return "";
+
+  // TODO
+  // this.error("Need implementation", "getStatusText");
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  RESPONSE DATA SUPPORT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Returns the length of the content as fetched thus far
+*/
+qx.Proto.getFetchedLength = function()
+{
+  return 0;
+
+  // TODO
+  // throw new Error("getFetchedLength is abstract");
+}
+
+qx.Proto.getResponseContent = function()
+{
+  if (this.getState() !== "completed")
+  {
+    if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+      this.warn("Transfer not complete, ignoring content!");
+    }
+
+    return null;
+  }
+
+  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+    this.debug("Returning content for responseType: " + this.getResponseType());
+  }
+
+  switch(this.getResponseType())
+  {
+    case "text/plain":
+      // server is responsible for using a string as the response
+
+    case "text/json":
+
+    case "text/javascript":
+      return this._responseContent;
+
+    default:
+      this.warn("No valid responseType specified (" + this.getResponseType() + ")!");
+      return null;
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if (this._element != null)
+  {
+    delete qx.io.remote.ScriptTransport._instanceRegistry[this._uniqueId];
+    document.body.removeChild(this._element);
+    this._element = null;
+  }
+
+  return qx.io.remote.AbstractRemoteTransport.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/XmlHttpTransport.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/XmlHttpTransport.js
new file mode 100644 (file)
index 0000000..b9e4bf2
--- /dev/null
@@ -0,0 +1,819 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+     2006 by Derrell Lipman
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * Derrell Lipman (derrell)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(io_remote)
+#require(qx.io.remote.Exchange)
+
+************************************************************************ */
+
+/**
+ * @event created {qx.event.type.Event}
+ * @event configured {qx.event.type.Event}
+ * @event sending {qx.event.type.Event}
+ * @event receiving {qx.event.type.Event}
+ * @event completed {qx.event.type.Event}
+ * @event failed {qx.event.type.Event}
+ * @event aborted {qx.event.type.Event}
+ * @event timeout {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.io.remote.XmlHttpTransport",
+                  qx.io.remote.AbstractRemoteTransport,
+function()
+{
+  qx.io.remote.AbstractRemoteTransport.call(this);
+
+  this._req = qx.io.remote.XmlHttpTransport.createRequestObject();
+
+  var o = this;
+  this._req.onreadystatechange =
+      function(e) { return o._onreadystatechange(e); }
+});
+
+
+
+
+
+/* ************************************************************************
+   Class data, properties and methods
+************************************************************************ */
+
+// basic registration to qx.io.remote.Exchange
+// the real availability check (activeX stuff and so on) follows at the first real request
+qx.io.remote.Exchange.registerType(qx.io.remote.XmlHttpTransport,
+                                         "qx.io.remote.XmlHttpTransport");
+
+qx.io.remote.XmlHttpTransport.handles =
+{
+  synchronous : true,
+  asynchronous : true,
+  crossDomain : false,
+  fileUpload: false,
+  responseTypes : [
+                    "text/plain",
+                    "text/javascript",
+                    "text/json",
+                    "application/xml",
+                    "text/html"
+                  ]
+}
+
+qx.io.remote.XmlHttpTransport.requestObjects = [];
+qx.io.remote.XmlHttpTransport.requestObjectCount = 0;
+
+qx.io.remote.XmlHttpTransport.isSupported = function()
+{
+  if (window.XMLHttpRequest)
+  {
+    if (qx.Settings.getValueOfClass("qx.io.remote.Exchange",
+                                    "enableDebug")) {
+      qx.dev.log.Logger.getClassLogger(qx.io.remote.XmlHttpTransport).debug(
+          "Using XMLHttpRequest");
+    }
+
+    qx.io.remote.XmlHttpTransport.createRequestObject =
+      qx.io.remote.XmlHttpTransport._createNativeRequestObject;
+    return true;
+  }
+
+  if (window.ActiveXObject)
+  {
+    /*
+     According to information on the Microsoft XML Team's WebLog
+     it is recommended to check for availability of MSXML versions 6.0 and 3.0.
+     Other versions are included for completeness, 5.0 is excluded as it is
+     "off-by-default" in IE7 (which could trigger a goldbar).
+
+     http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx
+     http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/aabe29a2-bad2-4cea-8387-314174252a74.asp
+
+     See similar code in qx.xml.Core, qx.lang.XmlEmu
+    */
+    var vServers =
+    [
+      "MSXML2.XMLHTTP.6.0",
+      "MSXML2.XMLHTTP.3.0",
+      "MSXML2.XMLHTTP.4.0",
+      "MSXML2.XMLHTTP",    // v3.0
+      "Microsoft.XMLHTTP"  // v2.x
+    ];
+
+    var vObject;
+    var vServer;
+
+    for (var i=0, l=vServers.length; i<l; i++)
+    {
+      vServer = vServers[i];
+
+      try
+      {
+        vObject = new ActiveXObject(vServer);
+        break;
+      }
+      catch(ex)
+      {
+        vObject = null;
+      }
+    }
+
+    if (vObject)
+    {
+      if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+        qx.dev.log.Logger.getClassLogger(qx.io.remote.XmlHttpTransport).debug(
+            "Using ActiveXObject: " + vServer);
+      }
+
+      qx.io.remote.XmlHttpTransport._activeXServer = vServer;
+      qx.io.remote.XmlHttpTransport.createRequestObject = qx.io.remote.XmlHttpTransport._createActiveXRequestObject;
+
+      return true;
+    }
+  }
+
+  return false;
+}
+
+/*!
+  Return a new request object suitable for the client browser.
+
+  qx.io.remote.XmlHttpTransport's isSupported method scans which request object
+  to use. The createRequestObject method is then replaced with a
+  method that creates request suitable for the client browser. If the
+  client browser doesn't support XMLHTTP requests, the method isn't
+  replaced and the error "XMLHTTP is not supported!" is thrown.
+*/
+qx.io.remote.XmlHttpTransport.createRequestObject = function() {
+  throw new Error("XMLHTTP is not supported!");
+}
+
+qx.io.remote.XmlHttpTransport._createNativeRequestObject = function() {
+   return new XMLHttpRequest;
+}
+
+qx.io.remote.XmlHttpTransport._createActiveXRequestObject = function() {
+  return new ActiveXObject(qx.io.remote.XmlHttpTransport._activeXServer);
+}
+
+
+
+
+
+
+
+
+
+/* ************************************************************************
+   Instance data, properties and methods
+************************************************************************ */
+
+/*
+---------------------------------------------------------------------------
+  CORE METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._localRequest = false;
+qx.Proto._lastReadyState = 0;
+
+qx.Proto.getRequest = function() {
+  return this._req;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  USER METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.send = function()
+{
+  this._lastReadyState = 0;
+
+  var vRequest = this.getRequest();
+  var vMethod = this.getMethod();
+  var vAsynchronous = this.getAsynchronous();
+  var vUrl = this.getUrl();
+
+
+
+  // --------------------------------------
+  //   Local handling
+  // --------------------------------------
+
+  var vLocalRequest = (qx.sys.Client.getInstance().getRunsLocally() &&
+                       !(/^http(s){0,1}\:/.test(vUrl)));
+  this._localRequest = vLocalRequest;
+
+
+  // --------------------------------------
+  //   Adding parameters
+  // --------------------------------------
+
+  var vParameters = this.getParameters();
+  var vParametersList = [];
+  for (var vId in vParameters) {
+    var value = vParameters[vId];
+    if (value instanceof Array) {
+      for (var i = 0; i < value.length; i++) {
+        vParametersList.push(encodeURIComponent(vId) + "=" +
+                             encodeURIComponent(value[i]));
+      }
+    } else {
+      vParametersList.push(encodeURIComponent(vId) + "=" +
+                           encodeURIComponent(value));
+    }
+  }
+
+  if (vParametersList.length > 0) {
+    vUrl += (vUrl.indexOf("?") >= 0
+      ? "&" : "?") + vParametersList.join("&");
+  }
+
+
+  var encode64 = function (input) {
+    var keyStr =
+      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+    var output = "";
+    var chr1, chr2, chr3;
+    var enc1, enc2, enc3, enc4;
+    var i = 0;
+
+    do {
+      chr1 = input.charCodeAt(i++);
+      chr2 = input.charCodeAt(i++);
+      chr3 = input.charCodeAt(i++);
+
+      enc1 = chr1 >> 2;
+      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
+      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
+      enc4 = chr3 & 63;
+
+      if (isNaN(chr2)) {
+        enc3 = enc4 = 64;
+      } else if (isNaN(chr3)) {
+        enc4 = 64;
+      }
+
+      output +=
+        keyStr.charAt(enc1) +
+        keyStr.charAt(enc2) +
+        keyStr.charAt(enc3) +
+        keyStr.charAt(enc4);
+
+    } while (i < input.length);
+
+    return output;
+  }
+
+  // --------------------------------------
+  //   Opening connection
+  // --------------------------------------
+
+  if (this.getUsername()) {
+    if (this.getUseBasicHttpAuth()) {
+      vRequest.open(vMethod, vUrl, vAsynchronous);
+      vRequest.setRequestHeader('Authorization',
+                                'Basic ' + encode64(this.getUsername() +
+                                                    ':' +
+                                                    this.getPassword()));
+    } else {
+      vRequest.open(vMethod, vUrl, vAsynchronous,
+                    this.getUsername(), this.getPassword());
+    }
+  } else {
+    vRequest.open(vMethod, vUrl, vAsynchronous);
+  }
+
+
+
+  // --------------------------------------
+  //   Appliying request header
+  // --------------------------------------
+
+  var vRequestHeaders = this.getRequestHeaders();
+  for (var vId in vRequestHeaders) {
+    vRequest.setRequestHeader(vId, vRequestHeaders[vId]);
+  }
+
+
+
+  // --------------------------------------
+  //   Sending data
+  // --------------------------------------
+
+  try
+  {
+    vRequest.send(this.getData());
+  }
+  catch(ex)
+  {
+    if (vLocalRequest)
+    {
+      this.failedLocally();
+    }
+    else
+    {
+      this.error("Failed to send data: " + ex, "send");
+      this.failed();
+    }
+
+    return;
+  }
+
+
+
+  // --------------------------------------
+  //   Readystate for sync reqeusts
+  // --------------------------------------
+
+  if (!vAsynchronous) {
+    this._onreadystatechange();
+  }
+}
+
+/*!
+  Force the transport into the failed state
+  ("failed").
+
+  This method should be used only if the requests URI was local
+  access. I.e. it started with "file://".
+*/
+qx.Proto.failedLocally = function()
+{
+  if (this.getState() === "failed") {
+    return;
+  }
+
+  // should only occur on "file://" access
+  this.warn("Could not load from file: " + this.getUrl());
+
+  this.failed();
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onreadystatechange = function(e)
+{
+  // Ignoring already stopped requests
+  switch(this.getState())
+  {
+    case "completed":
+    case "aborted":
+    case "failed":
+    case "timeout":
+      if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
+        this.warn("Ignore Ready State Change");
+      }
+      return;
+  }
+
+  // Checking status code
+  var vReadyState = this.getReadyState();
+  if (vReadyState == 4) {
+    // The status code is only meaningful when we reach ready state 4.
+    // (Important for Opera since it goes through other states before
+    // reaching 4, and the status code is not valid before 4 is reached.)
+    if (!qx.io.remote.Exchange.wasSuccessful(this.getStatusCode(), vReadyState, this._localRequest)) {
+      return this.failed();
+    }
+  }
+
+  // Updating internal state
+  while (this._lastReadyState < vReadyState) {
+    this.setState(qx.io.remote.Exchange._nativeMap[++this._lastReadyState]);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  READY STATE
+---------------------------------------------------------------------------
+*/
+/*!
+  Get the ready state of this transports request.
+
+  For qx.io.remote.XmlHttpTransports, the ready state is a number between 1 to 4.
+*/
+qx.Proto.getReadyState = function()
+{
+  var vReadyState = null;
+
+  try {
+    vReadyState = this._req.readyState;
+  } catch(ex) {}
+
+  return vReadyState;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REQUEST HEADER SUPPORT
+---------------------------------------------------------------------------
+*/
+/*!
+  Add a request header to this transports request.
+*/
+qx.Proto.setRequestHeader = function(vLabel, vValue) {
+  this._req.setRequestHeader(vLabel, vValue);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  RESPONSE HEADER SUPPORT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Returns a specific header provided by the server upon sending a request,
+  with header name determined by the argument headerName.
+
+  Only available at readyState 3 and 4 universally and in readyState 2
+  in Gecko.
+*/
+qx.Proto.getResponseHeader = function(vLabel)
+{
+  var vResponseHeader = null;
+
+  try {
+    this.getRequest().getResponseHeader(vLabel) || null;
+  } catch(ex) {}
+
+  return vResponseHeader;
+}
+
+qx.Proto.getStringResponseHeaders = function()
+{
+  var vSourceHeader = null;
+
+  try
+  {
+    var vLoadHeader = this._req.getAllResponseHeaders();
+    if (vLoadHeader) {
+      vSourceHeader = vLoadHeader;
+    }
+  } catch(ex) {}
+
+  return vSourceHeader;
+}
+
+/*!
+  Provides a hash of all response headers.
+*/
+qx.Proto.getResponseHeaders = function()
+{
+  var vSourceHeader = this.getStringResponseHeaders();
+  var vHeader = {};
+
+  if (vSourceHeader)
+  {
+    var vValues = vSourceHeader.split(/[\r\n]+/g);
+
+    for(var i=0, l=vValues.length; i<l; i++)
+    {
+      var vPair = vValues[i].match(/^([^:]+)\s*:\s*(.+)$/i);
+      if(vPair) {
+        vHeader[vPair[1]] = vPair[2];
+      }
+    }
+  }
+
+  return vHeader;
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STATUS SUPPORT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Returns the current status code of the request if available or -1 if not.
+*/
+qx.Proto.getStatusCode = function()
+{
+  var vStatusCode = -1;
+
+  try {
+    vStatusCode = this.getRequest().status;
+  } catch(ex) {}
+
+  return vStatusCode;
+}
+
+/*!
+  Provides the status text for the current request if available and null
+  otherwise.
+*/
+qx.Proto.getStatusText = function()
+{
+  var vStatusText = "";
+
+  try {
+    vStatusText = this.getRequest().statusText;
+  } catch(ex) {}
+
+  return vStatusText;
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  RESPONSE DATA SUPPORT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Provides the response text from the request when available and null
+  otherwise.  By passing true as the "partial" parameter of this method,
+  incomplete data will be made available to the caller.
+*/
+qx.Proto.getResponseText = function()
+{
+  var vResponseText = null;
+
+  var vStatus = this.getStatusCode();
+  var vReadyState = this.getReadyState();
+  if (qx.io.remote.Exchange.wasSuccessful(vStatus, vReadyState, this._localRequest))
+  {
+    try {
+      vResponseText = this.getRequest().responseText;
+    } catch(ex) {}
+  }
+
+  return vResponseText;
+}
+
+/*!
+  Provides the XML provided by the response if any and null otherwise.  By
+  passing true as the "partial" parameter of this method, incomplete data will
+  be made available to the caller.
+*/
+qx.Proto.getResponseXml = function()
+{
+  var vResponseXML = null;
+
+  var vStatus = this.getStatusCode();
+  var vReadyState = this.getReadyState();
+  if (qx.io.remote.Exchange.wasSuccessful(vStatus, vReadyState, this._localRequest))
+  {
+    try {
+      vResponseXML = this.getRequest().responseXML;
+    } catch(ex) {}
+  }
+
+  // Typical behaviour on file:// on mshtml
+  // Could we check this with something like: /^file\:/.test(path); ?
+  // No browser check here, because it doesn't seem to break other browsers
+  //    * test for this.req.responseXML's objecthood added by *
+  //    * FRM, 20050816                                       *
+  if (typeof vResponseXML == "object" && vResponseXML != null)
+  {
+    if (!vResponseXML.documentElement)
+    {
+      // Clear xml file declaration, this breaks non unicode files (like ones with Umlauts)
+      var s = String(this.getRequest().responseText).replace(/<\?xml[^\?]*\?>/, "");
+      vResponseXML.loadXML(s);
+    };
+    // Re-check if fixed...
+    if (!vResponseXML.documentElement) {
+      throw new Error("Missing Document Element!");
+    };
+
+    if (vResponseXML.documentElement.tagName == "parseerror") {
+      throw new Error("XML-File is not well-formed!");
+    };
+  }
+  else
+  {
+    throw new Error("Response was not a valid xml document [" + this.getRequest().responseText + "]");
+  };
+
+  return vResponseXML;
+}
+
+/*!
+  Returns the length of the content as fetched thus far
+*/
+qx.Proto.getFetchedLength = function()
+{
+  var vText = this.getResponseText();
+  return qx.util.Validation.isValidString(vText) ? vText.length : 0;
+}
+
+qx.Proto.getResponseContent = function()
+{
+  if (this.getState() !== "completed")
+  {
+    if (qx.Settings.getValueOfClass("qx.io.remote.Exchange",
+                                    "enableDebug")) {
+      this.warn("Transfer not complete, ignoring content!");
+    }
+
+    return null;
+  }
+
+  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange",
+                                  "enableDebug")) {
+    this.debug("Returning content for responseType: " + this.getResponseType());
+  }
+
+  var vText = this.getResponseText();
+
+  switch(this.getResponseType())
+  {
+    case "text/plain":
+    case "text/html":
+      return vText;
+
+    case "text/json":
+      try {
+        return vText && vText.length > 0 ? qx.io.Json.parseQx(vText) : null;
+      } catch(ex) {
+        this.error("Could not execute json: [" + vText + "]", ex);
+        return "<pre>Could not execute json: \n" + vText + "\n</pre>"
+      }
+
+    case "text/javascript":
+      try {
+        return vText && vText.length > 0 ? window.eval(vText) : null;
+      } catch(ex) {
+        return this.error("Could not execute javascript: [" + vText + "]", ex);
+      }
+
+    case "application/xml":
+      return this.getResponseXml();
+
+    default:
+      this.warn("No valid responseType specified (" + this.getResponseType() + ")!");
+      return null;
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyState = function(propValue, propOldValue, propData)
+{
+  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange",
+                                  "enableDebug")) {
+    this.debug("State: " + propValue);
+  }
+
+  switch(propValue)
+  {
+    case "created":
+      this.createDispatchEvent("created");
+      break;
+
+    case "configured":
+      this.createDispatchEvent("configured");
+      break;
+
+    case "sending":
+      this.createDispatchEvent("sending");
+      break;
+
+    case "receiving":
+      this.createDispatchEvent("receiving");
+      break;
+
+    case "completed":
+      this.createDispatchEvent("completed");
+      break;
+
+    case "failed":
+      this.createDispatchEvent("failed");
+      break;
+
+    case "aborted":
+      this.getRequest().abort();
+      this.createDispatchEvent("aborted");
+      break;
+
+    case "timeout":
+      this.getRequest().abort();
+      this.createDispatchEvent("timeout");
+      break;
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  var vRequest = this.getRequest();
+
+  if (vRequest)
+  {
+    // Should be right,
+    // but is not compatible to mshtml (throws an exception)
+    if (!qx.sys.Client.getInstance().isMshtml()) {
+      vRequest.onreadystatechange = null;
+    }
+
+    // Aborting
+    switch(vRequest.readyState)
+    {
+      case 1:
+      case 2:
+      case 3:
+        vRequest.abort();
+    }
+
+    // Cleanup objects
+    this._req = null;
+  }
+
+  return qx.io.remote.AbstractRemoteTransport.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Array.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Array.js
new file mode 100644 (file)
index 0000000..57f124e
--- /dev/null
@@ -0,0 +1,158 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.lang.Array");
+
+qx.lang.Array.fromArguments = function(args) {
+  return Array.prototype.slice.call(args, 0);
+}
+
+/*!
+  Utility function for padding/margin and all other shorthand handling.
+*/
+qx.lang.Array.fromShortHand = function(params)
+{
+  var l = params.length;
+
+  if (l > 4) {
+    throw new Error("Invalid number of arguments!");
+  }
+
+  var v;
+  var list = [];
+
+  for (var i=0; i<l; i++)
+  {
+    v = params[i];
+
+    if (qx.util.Validation.isValidNumber(v))
+    {
+      list.push(v);
+    }
+    else if (qx.util.Validation.isInvalidString(v))
+    {
+      list.push(null);
+    }
+    else
+    {
+      throw new Error("Invalid shorthand value: " + v);
+    }
+  }
+
+  // Fix Values (Shorthand)
+  switch(l)
+  {
+    case 1:
+      list[1] = list[2] = list[3] = list[0];
+      break;
+
+    case 2:
+      list[2] = list[0];
+
+    case 3:
+      list[3] = list[1];
+  }
+
+  return list;
+}
+
+qx.lang.Array.copy = function(arr) {
+  return arr.concat();
+}
+
+qx.lang.Array.clone = function(arr) {
+  return arr.concat();
+}
+
+qx.lang.Array.getLast = function(arr) {
+  return arr[arr.length-1];
+}
+
+qx.lang.Array.getFirst = function(arr) {
+  return arr[0];
+}
+
+qx.lang.Array.insertAt = function(arr, obj, i)
+{
+  arr.splice(i, 0, obj);
+
+  return arr;
+}
+
+qx.lang.Array.insertBefore = function(arr, obj, obj2)
+{
+  var i = arr.indexOf(obj2);
+
+  if (i == -1)
+  {
+    arr.push(obj);
+  }
+  else
+  {
+    arr.splice(i, 0, obj);
+  }
+
+  return arr;
+}
+
+qx.lang.Array.insertAfter = function(arr, o, o2)
+{
+  var i = arr.indexOf(o2);
+
+  if (i == -1 || i == (arr.length-1))
+  {
+    arr.push(o);
+  }
+  else
+  {
+    arr.splice(i+1, 0, o);
+  }
+
+  return arr;
+}
+
+qx.lang.Array.removeAt = function(arr, i) {
+  return arr.splice(i, 1);
+}
+
+qx.lang.Array.removeAll = function(arr) {
+  return arr.splice(0, arr.length);
+}
+
+qx.lang.Array.append = function(arr, a) {
+  Array.prototype.push.apply(arr, a);
+}
+
+qx.lang.Array.remove = function(arr, obj)
+{
+  var i = arr.indexOf(obj);
+
+  if (i != -1) {
+    return arr.splice(i, 1);
+  }
+}
+
+qx.lang.Array.contains = function(arr, obj) {
+  return arr.indexOf(obj) != -1;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Core.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Core.js
new file mode 100644 (file)
index 0000000..11a620e
--- /dev/null
@@ -0,0 +1,238 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.lang.Core");
+
+
+/*
+---------------------------------------------------------------------------
+  ADDITIONS FOR NATIVE ERROR OBJECT
+---------------------------------------------------------------------------
+*/
+
+if (!Error.prototype.toString)
+{
+  Error.prototype.toString = function() {
+    return this.message;
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ADDITIONS FOR NATIVE FUNCTION OBJECT
+---------------------------------------------------------------------------
+*/
+
+/**
+ * function apply for browsers that do not support it natively, e.g. IE 5.0
+ * <p>
+ * Based on code from youngpup.net licensed under
+ * Creative Commons Attribution 2.0
+ * </p>
+ */
+if (!Function.prototype.apply)
+{
+  Function.prototype.apply = function(oScope, args)
+  {
+    var sarg = [];
+    var rtrn, call;
+
+    if (!oScope) {
+      oScope = window;
+    }
+
+    if (!args) {
+      args = [];
+    }
+
+    for (var i = 0; i < args.length; i++) {
+      sarg[i] = "args["+i+"]";
+    }
+
+    call = "oScope._applyTemp_(" + sarg.join(",") + ");";
+
+    oScope._applyTemp_ = this;
+    rtrn = eval(call);
+
+    delete oScope._applyTemp_;
+
+    return rtrn;
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ADDITIONS FOR NATIVE ARRAY OBJECT
+---------------------------------------------------------------------------
+*/
+
+// Add all JavaScript 1.5 Features if they are missing
+// Mozilla 1.8 has support for indexOf, lastIndexOf, forEach, filter, map, some, every
+
+// Some of them from Erik Arvidsson <http://erik.eae.net/>
+// More documentation could be found here:
+// http://www.webreference.com/programming/javascript/ncz/column4/
+// An alternative implementation can be found here:
+// http://www.nczonline.net/archive/2005/7/231
+
+// http://developer-test.mozilla.org/docs/Core_JavaScript_1.5_Reference:Objects:Array:lastIndexOf
+if (!Array.prototype.indexOf)
+{
+  Array.prototype.indexOf = function(obj, fromIndex)
+  {
+    if (fromIndex == null)
+    {
+      fromIndex = 0;
+    }
+    else if (fromIndex < 0)
+    {
+      fromIndex = Math.max(0, this.length + fromIndex);
+    }
+
+    for (var i=fromIndex; i<this.length; i++) {
+      if (this[i] === obj) {
+        return i;
+      }
+    }
+
+    return -1;
+  }
+}
+
+// http://developer-test.mozilla.org/docs/Core_JavaScript_1.5_Reference:Objects:Array:lastIndexOf
+if (!Array.prototype.lastIndexOf)
+{
+  Array.prototype.lastIndexOf = function(obj, fromIndex)
+  {
+    if (fromIndex == null)
+    {
+      fromIndex = this.length-1;
+    }
+    else if (fromIndex < 0)
+    {
+      fromIndex = Math.max(0, this.length + fromIndex);
+    }
+
+    for (var i=fromIndex; i>=0; i--) {
+      if (this[i] === obj) {
+        return i;
+      }
+    }
+
+    return -1;
+  }
+}
+
+// http://developer-test.mozilla.org/docs/Core_JavaScript_1.5_Reference:Objects:Array:forEach
+if (!Array.prototype.forEach)
+{
+  Array.prototype.forEach = function(f, obj)
+  {
+    // 'l' must be fixed during loop... see docs
+    for (var i=0, l=this.length; i<l; i++) {
+      f.call(obj, this[i], i, this);
+    }
+  }
+}
+
+// http://developer-test.mozilla.org/docs/Core_JavaScript_1.5_Reference:Objects:Array:filter
+if (!Array.prototype.filter)
+{
+  Array.prototype.filter = function(f, obj)
+  {
+    // must be fixed during loop... see docs
+    var l = this.length;
+    var res = [];
+
+    for (var i=0; i<l; i++)
+    {
+      if (f.call(obj, this[i], i, this)) {
+        res.push(this[i]);
+      }
+    }
+
+    return res;
+  }
+}
+
+// http://developer-test.mozilla.org/docs/Core_JavaScript_1.5_Reference:Objects:Array:map
+if (!Array.prototype.map)
+{
+  Array.prototype.map = function(f, obj)
+  {
+    var l = this.length;  // must be fixed during loop... see docs
+    var res = [];
+
+    for (var i=0; i<l; i++) {
+      res.push(f.call(obj, this[i], i, this));
+    }
+
+    return res;
+  }
+}
+
+// http://developer-test.mozilla.org/docs/Core_JavaScript_1.5_Reference:Objects:Array:some
+if (!Array.prototype.some)
+{
+  Array.prototype.some = function(f, obj)
+  {
+    var l = this.length;  // must be fixed during loop... see docs
+
+    for (var i=0; i<l; i++)
+    {
+      if (f.call(obj, this[i], i, this)) {
+        return true;
+      }
+    }
+
+    return false;
+  }
+}
+
+// http://developer-test.mozilla.org/docs/Core_JavaScript_1.5_Reference:Objects:Array:every
+if (!Array.prototype.every)
+{
+  Array.prototype.every = function (f, obj)
+  {
+    var l = this.length;  // must be fixed during loop... see docs
+    for (var i=0; i<l; i++)
+    {
+      if (!f.call(obj, this[i], i, this)) {
+        return false;
+      }
+    }
+
+    return true;
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Generics.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Generics.js
new file mode 100644 (file)
index 0000000..71010a5
--- /dev/null
@@ -0,0 +1,142 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.lang.Generics");
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("enable", false);
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  JAVASCRIPT 1.6 GENERICS
+---------------------------------------------------------------------------
+*/
+
+// Copyright 2006 Erik Arvidsson
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//    http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// http://erik.eae.net/archives/2006/02/28/00.39.52/
+
+// Relicensed under LGPL for qooxdoo.
+
+qx.lang.Generics.init = function()
+{
+  // Make generic versions of instance methods
+  var makeGeneric = [
+  {
+    object: Array,
+    methods:
+    [
+      "join",
+      "reverse",
+      "sort",
+      "push",
+      "pop",
+      "shift",
+      "unshift",
+      "splice",
+      "concat",
+      "slice",
+      "indexOf",
+      "lastIndexOf",
+      "forEach",
+      "map",
+      "filter",
+      "some",
+      "every"
+    ]
+  },
+  {
+    object: String,
+    methods:
+    [
+      "quote",
+      "substring",
+      "toLowerCase",
+      "toUpperCase",
+      "charAt",
+      "charCodeAt",
+      "indexOf",
+      "lastIndexOf",
+      "toLocaleLowerCase",
+      "toLocaleUpperCase",
+      "localeCompare",
+      "match",
+      "search",
+      "replace",
+      "split",
+      "substr",
+      "concat",
+      "slice"
+    ]
+  }];
+
+  for (var i=0, l=makeGeneric.length; i<l; i++)
+  {
+    var constr = makeGeneric[i].object;
+    var methods = makeGeneric[i].methods;
+
+    for (var j=0; j<methods.length; j++)
+    {
+      var name = methods[j];
+
+      if (!constr[name])
+      {
+        constr[methods[j]] = (function(constr, name)
+        {
+          return function(s)
+          {
+            var args = Array.prototype.slice.call(arguments, 1);
+            return constr.prototype[name].apply(s, args);
+          }
+        })(constr, name);
+      }
+    }
+  }
+}
+
+if (qx.Settings.getValueOfClass("qx.lang.Generics", "enable")) {
+  qx.lang.Generics.init();
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/MshtmlEmu.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/MshtmlEmu.js
new file mode 100644 (file)
index 0000000..eb21669
--- /dev/null
@@ -0,0 +1,348 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#require(qx.sys.Client)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.lang.MshtmlEmu");
+
+/*
+  Parts are based on:
+  moz-behaviors.xml - version 1.1.1 (2005-08-19)
+  Copyright 2004-2005, Dean Edwards
+  License: http://creativecommons.org/licenses/LGPL/2.1/
+  Thanks to Erik Arvidsson (http://webfx.eae.net/dhtml/ieemu/)
+*/
+
+/*
+  We're going to mess about with some of mozilla's interfaces to
+  make them more explorer-like
+*/
+
+/*
+  Note:
+  In my comments where i say support/mimic a property:
+
+  * support = exactly the same as explorer
+  * mimic = close enough
+*/
+
+if (qx.sys.Client.getInstance().isGecko())
+{
+  /*
+  --------------------------------------------------------------------------------
+    CSS STYLES: FLOAT
+  --------------------------------------------------------------------------------
+  */
+
+  /*
+    Support microsoft's styleFloat
+  */
+
+  CSSStyleDeclaration.prototype.__defineGetter__("styleFloat", function() {
+    return this.cssFloat;
+  });
+
+  CSSStyleDeclaration.prototype.__defineSetter__("styleFloat", function(vValue) {
+    this.cssFloat = vValue;
+  });
+
+
+
+
+
+  /*
+  --------------------------------------------------------------------------------
+    CSS STYLES: DIMENSIONS
+  --------------------------------------------------------------------------------
+  */
+
+  /*
+    Mimic microsoft's pixel representations of left/top/width/height
+    the getters only work for values that are already pixels
+  */
+
+  CSSStyleDeclaration.prototype.__defineGetter__("pixelLeft", function() {
+    return parseInt(this.left) || 0;
+  });
+
+  CSSStyleDeclaration.prototype.__defineSetter__("pixelLeft", function(vValue) {
+    this.left = vValue + "px";
+  });
+
+  CSSStyleDeclaration.prototype.__defineGetter__("pixelTop", function() {
+    return parseInt(this.top) || 0;
+  });
+
+  CSSStyleDeclaration.prototype.__defineSetter__("pixelTop", function(vValue) {
+    this.top = vValue + "px";
+  });
+
+  CSSStyleDeclaration.prototype.__defineGetter__("pixelWidth", function() {
+    return parseInt(this.width) || 0;
+  });
+
+  CSSStyleDeclaration.prototype.__defineSetter__("pixelWidth", function(vValue) {
+    this.width = vValue + "px";
+  });
+
+  CSSStyleDeclaration.prototype.__defineGetter__("pixelHeight", function() {
+    return parseInt(this.height) || 0;
+  });
+
+  CSSStyleDeclaration.prototype.__defineSetter__("pixelHeight", function(vValue) {
+    this.height = vValue + "px";
+  });
+
+
+
+
+
+  /*
+  --------------------------------------------------------------------------------
+    HTML DOCUMENT EXTENSIONS
+  --------------------------------------------------------------------------------
+  */
+
+  /*
+    Support Microsoft's "all" property
+  */
+  HTMLDocument.prototype.__defineGetter__("all", function() {
+    return this.getElementsByTagName("*");
+  });
+
+  /*
+    Mimic the "createEventObject" method for the document object
+  */
+  HTMLDocument.prototype.createEventObject = function() {
+    return document.createEvent("Events");
+  }
+
+
+
+
+
+
+  /*
+  --------------------------------------------------------------------------------
+    HTML ELEMENT EXTENSIONS
+  --------------------------------------------------------------------------------
+  */
+
+  /*
+    Mimic Microsoft's "all" property
+  */
+  HTMLElement.prototype.__defineGetter__("all", function() {
+    return this.getElementsByTagName("*");
+  });
+
+  /*
+    Support "parentElement"
+  */
+  HTMLElement.prototype.__defineGetter__("parentElement", function() {
+    return (this.parentNode == this.ownerDocument) ? null : this.parentNode;
+  });
+
+  /*
+    Support "uniqueID"
+  */
+  HTMLElement.prototype.__defineGetter__("uniqueID", function()
+  {
+    // a global counter is stored privately as a property of this getter function.
+    // initialise the counter
+    if (!arguments.callee.count) {
+      arguments.callee.count = 0;
+    }
+
+    // create the id and increment the counter
+    var vUniqueID = "moz_id" + arguments.callee.count++;
+
+    // creating a unique id, creates a global reference
+    window[vUniqueID] = this;
+
+    // we don't want to increment next time, so redefine the getter
+    this.__defineGetter__("uniqueID", function(){return vUniqueID;});
+
+    return vUniqueID;
+  });
+
+  /*
+    Mimic Microsoft's "currentStyle"
+  */
+  HTMLElement.prototype.__defineGetter__("currentStyle", function() {
+    return getComputedStyle(this, null);
+  });
+
+  /*
+    Mimic Microsoft's "runtimeStyle"
+  */
+  HTMLElement.prototype.__defineGetter__("runtimeStyle", function()
+  {
+    /*
+      this doesn't work yet (https://bugzilla.mozilla.org/show_bug.cgi?id=45424)
+      return this.ownerDocument.defaultView.getOverrideStyle(this, null);
+    */
+
+    return this.style;
+  });
+
+  /*
+    Support "innerText"
+  */
+  HTMLElement.prototype.__defineGetter__("innerText", function() {
+    return this.textContent;
+  });
+
+  HTMLElement.prototype.__defineSetter__("innerText", function(vValue) {
+    this.textContent = vValue;
+  });
+
+  /*
+    Mimic the "attachEvent" method
+  */
+  HTMLElement.prototype.attachEvent = function(vName, vHandler) {
+    this.addEventListener(vName.slice(2), vHandler, false);
+  }
+
+  /*
+    Mimic the "removeEvent" method
+  */
+  HTMLElement.prototype.removeEvent = function(vName, vHandler) {
+    this.removeEventListener(vName.slice(2), vHandler, false);
+  }
+
+  /*
+    Mimic the "createEventObject" method
+  */
+  HTMLElement.prototype.createEventObject = function() {
+    return this.ownerDocument.createEventObject();
+  }
+
+  /*
+    Mimic the "fireEvent" method
+  */
+  HTMLElement.prototype.fireEvent = function(vName, vEvent)
+  {
+    if (!vEvent) {
+      vEvent = this.ownerDocument.createEventObject();
+    }
+
+    vEvent.initEvent(vName.slice(2), false, false);
+
+    this.dispatchEvent(vEvent);
+
+    // not sure that this should be here??
+    if (typeof this[vName] === "function")
+    {
+      this[vName]();
+    }
+    else if (this.getAttribute(vName))
+    {
+      eval(this.getAttribute(vName));
+    }
+  }
+
+  /*
+    Support the "contains" method
+  */
+  HTMLElement.prototype.contains = function(vElement) {
+    return Boolean(vElement == this || (vElement && this.contains(vElement.parentElement)));
+  }
+
+
+
+
+
+  /*
+  --------------------------------------------------------------------------------
+    EVENT EXTENSIONS
+  --------------------------------------------------------------------------------
+  */
+
+  /*
+    Support Microsoft's proprietary event properties
+  */
+  Event.prototype.__defineGetter__("srcElement", function() {
+    return (this.target.nodeType == Node.ELEMENT_NODE) ? this.target : this.target.parentNode;
+  });
+
+  Event.prototype.__defineGetter__("fromElement",function() {
+    return (this.type == "mouseover") ? this.relatedTarget : (this.type == "mouseout") ? this.srcElement : null;
+  });
+
+  Event.prototype.__defineGetter__("toElement", function() {
+    return (this.type == "mouseout") ? this.relatedTarget : (this.type == "mouseover") ? this.srcElement : null;
+  });
+
+  /*
+    Convert w3c button id's to Microsoft's
+    Breaks with qooxdoo's internal event handling!!!
+  */
+  /*
+  Event.prototype.__defineGetter__("button", function() {
+    return (this.which == 1) ? 1 : (this.which == 2) ? 4 : 2;
+  });
+  */
+
+
+  /*
+    Mimic "returnValue" (default is "true")
+    Breaks with qooxdoo's internal event handling!!!
+  */
+  /*
+  Event.prototype.__defineGetter__("returnValue", function() {
+    return true;
+  });
+
+  Event.prototype.__defineSetter__("returnValue", function(vValue)
+  {
+    if (this.cancelable && !vValue)
+    {
+      // this can't be undone!
+      this.preventDefault();
+
+      this.__defineGetter__("returnValue", function() {
+        return false;
+      });
+    }
+  });
+  */
+
+  /*
+    Mozilla already supports the read-only "cancelBubble"
+    so we only need to define the setter
+  */
+  Event.prototype.__defineSetter__("cancelBubble", function(vValue)
+  {
+    // this can't be undone!
+    if (vValue) {
+      this.stopPropagation();
+    }
+  });
+
+  Event.prototype.__defineGetter__("offsetX", function() {
+    return this.layerX;
+  });
+
+  Event.prototype.__defineGetter__("offsetY", function() {
+    return this.layerY;
+  });
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Number.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Number.js
new file mode 100644 (file)
index 0000000..dc6984b
--- /dev/null
@@ -0,0 +1,48 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.lang.Number");
+
+qx.lang.Number.isInRange = function(nr, vmin, vmax) {
+  return nr >= vmin && nr <= vmax;
+}
+
+qx.lang.Number.isBetweenRange = function(nr, vmin, vmax) {
+  return nr > vmin && nr < vmax;
+}
+
+qx.lang.Number.limit = function(nr, vmin, vmax)
+{
+  if (typeof vmax === "number" && nr > vmax)
+  {
+    return vmax;
+  }
+  else if (typeof vmin === "number" && nr < vmin)
+  {
+    return vmin;
+  }
+  else
+  {
+    return nr;
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Object.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Object.js
new file mode 100644 (file)
index 0000000..31e316e
--- /dev/null
@@ -0,0 +1,121 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.lang.Object");
+
+/*!
+  Function to check if a hash has any keys
+*/
+qx.Class.isEmpty = function(h)
+{
+  for (var s in h) {
+    return false;
+  }
+
+  return true;
+}
+
+qx.Class.hasMinLength = function(h, j)
+{
+  var i=0;
+
+  for (var s in h)
+  {
+    if ((++i)>=j) {
+      return true;
+    }
+  }
+
+  return false;
+}
+
+qx.Class.getLength = function(h)
+{
+  var i=0;
+
+  for (var s in h) {
+    i++;
+  }
+
+  return i;
+}
+
+qx.Class.getKeys = function(h)
+{
+  var r = [];
+  for (var s in h) {
+    r.push(s);
+  }
+
+  return r;
+}
+
+qx.Class.getKeysAsString = function(h) {
+  return qx.lang.Object.getKeys(h).join(", ");
+}
+
+qx.Class.getValues = function(h)
+{
+  var r = [];
+  for (var s in h) {
+    r.push(h[s]);
+  }
+
+  return r;
+}
+
+qx.Class.mergeWith = function(vObjectA, vObjectB)
+{
+  for (var vKey in vObjectB) {
+    vObjectA[vKey] = vObjectB[vKey];
+  }
+
+  return vObjectA;
+}
+
+qx.Class.carefullyMergeWith = function(vObjectA, vObjectB) {
+  for (vKey in vObjectB)
+  {
+    if (typeof vObjectA[vKey] === "undefined") {
+      vObjectA[vKey] = vObjectB[vKey];
+    }
+  }
+
+  return vObjectA;
+}
+
+qx.Class.merge = function(vObjectA)
+{
+  var vLength = arguments.length;
+
+  for (var i=1; i<vLength; i++) {
+    qx.lang.Object.mergeWith(vObjectA, arguments[i]);
+  }
+
+  return vObjectA;
+}
+
+qx.Class.copy = function(vObject) {
+  return qx.lang.Object.mergeWith({}, vObject);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Prototypes.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Prototypes.js
new file mode 100644 (file)
index 0000000..fa678c5
--- /dev/null
@@ -0,0 +1,69 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.lang.Prototypes");
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("enable", false);
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROTOTYPES MAPPER
+---------------------------------------------------------------------------
+*/
+
+qx.lang.Prototypes.init = function()
+{
+  var key, obj;
+  var objs = [ "String", "Number", "Array" ];
+
+  for (var i=0, len=objs.length; i<len; i++)
+  {
+    obj = objs[i];
+
+    for (key in qx.lang[obj])
+    {
+      window[obj].prototype[key] = (function(key, obj)
+      {
+        return function() {
+          return qx.lang[obj][key].apply(null, Array.prototype.concat.call([this], Array.prototype.slice.call(arguments, 0)));
+        }
+      })(key, obj);
+    }
+  }
+}
+
+if (qx.Settings.getValueOfClass("qx.lang.Generics", "enable")) {
+  qx.lang.Prototypes.init();
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/String.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/String.js
new file mode 100644 (file)
index 0000000..9f20f81
--- /dev/null
@@ -0,0 +1,158 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.lang.String");
+
+qx.Class.toCamelCase = function(str)
+{
+  var vArr = str.split("-"), vLength = vArr.length;
+
+  if(vLength == 1) {
+    return vArr[0];
+  }
+
+  var vNew = str.indexOf("-") == 0 ? vArr[0].charAt(0).toUpperCase() + vArr[0].substring(1) : vArr[0];
+
+  for (var vPart, i=1; i<vLength; i++)
+  {
+    vPart = vArr[i];
+    vNew += vPart.charAt(0).toUpperCase() + vPart.substring(1);
+  }
+
+  return vNew;
+}
+
+qx.Class.trimLeft = function(str) {
+  return str.replace(/^\s+/, "");
+}
+
+qx.Class.trimRight = function(str) {
+  return str.replace(/\s+$/, "");
+}
+
+qx.Class.trim = function(str) {
+  return str.replace(/^\s+|\s+$/g, "");
+}
+
+qx.Class.stripTags = function(str) {
+  return str.replace(/<\/?[^>]+>/gi, "");
+}
+
+qx.Class.startsWith = function(fullstr, substr) {
+  return !fullstr.indexOf(substr);
+}
+
+qx.Class.endsWith = function(fullstr, substr) {
+  return fullstr.lastIndexOf(substr) === fullstr.length-substr.length;
+}
+
+qx.Class.pad = function(str, length, ch)
+{
+  if (typeof ch === "undefined") {
+    ch = "0";
+  }
+
+  var temp = "";
+
+  for (var i=length, l=str.length; l<i; l++) {
+    temp += ch;
+  }
+
+  return temp + str;
+}
+
+qx.Class.toFirstUp = function(str) {
+  return str.charAt(0).toUpperCase() + str.substr(1);
+}
+
+qx.Class.add = function(str, v, sep)
+{
+  if (str == v)
+  {
+    return str;
+  }
+  else if (str == "")
+  {
+    return v;
+  }
+  else
+  {
+    if (qx.util.Validation.isInvalid(sep)) {
+      sep = ",";
+    }
+
+    var a = str.split(sep);
+
+    if (a.indexOf(v) == -1)
+    {
+      a.push(v);
+      return a.join(sep);
+    }
+    else
+    {
+      return str;
+    }
+  }
+}
+
+qx.Class.remove = function(str, v, sep)
+{
+  if (str == v || str == "")
+  {
+    return "";
+  }
+  else
+  {
+    if (qx.util.Validation.isInvalid(sep)) {
+      sep = ",";
+    }
+
+    var a = str.split(sep);
+    var p = a.indexOf(v);
+
+    if (p === -1) {
+      return str;
+    }
+
+    do { a.splice(p, 1); }
+    while((p = a.indexOf(v)) != -1);
+
+    return a.join(sep);
+  }
+}
+
+qx.Class.contains = function(str, s) {
+  return str.indexOf(s) != -1;
+}
+
+
+/**
+ * Escapes all chars that have a special meaning in regular expressions
+ *
+ * @param str {string} the string where to escape the chars.
+ * @return {string} the string with the escaped chars.
+ */
+qx.Class.escapeRegexpChars = function(str) {
+    return str.replace(/([\\\.\(\)\[\]\{\}\^\$\?\+\*])/g, "\\$1");
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/XmlEmu.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/XmlEmu.js
new file mode 100644 (file)
index 0000000..326effd
--- /dev/null
@@ -0,0 +1,188 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.lang.XmlEmu");
+
+/*
+  Based on:
+  IE7, version 0.9 (alpha) (2005-08-19)
+  Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name)
+  License: http://creativecommons.org/licenses/LGPL/2.1/
+  Modelled after: http://www.mozilla.org/xmlextras
+*/
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  var DOMParser = function() {
+    /* empty constructor */
+  }
+
+  DOMParser.prototype =
+  {
+    toString: function() {
+      return "[object DOMParser]";
+    },
+
+    parseFromString: function(str, contentType)
+    {
+      /*
+       According to information on the Microsoft XML Team's WebLog
+       it is recommended to check for availability of MSXML versions 6.0 and 3.0.
+       Other versions are included for completeness, 5.0 is excluded as it is
+       "off-by-default" in IE7 (which could trigger a goldbar).
+
+       http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx
+       http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/aabe29a2-bad2-4cea-8387-314174252a74.asp
+
+       See similar code in qx.xml.Core, qx.io.remote.XmlHttpTransport
+      */
+      var vServers =
+      [
+        "MSXML2.DOMDocument.6.0",
+        "MSXML2.DOMDocument.3.0",
+        "MSXML2.DOMDocument.4.0",
+        "MSXML2.DOMDocument",  // v3.0
+        "MSXML.DOMDocument",   // v2.x
+        "Microsoft.XMLDOM"     // v2.x
+      ];
+
+      var xmlDocument;
+
+      for (var i=0, l=vServers.length; i<l; i++)
+      {
+
+        try
+        {
+          xmlDocument = new ActiveXObject(vServers[i]);
+          break;
+        }
+        catch(ex)
+        {
+          xmlDocument = null;
+        }
+      }
+
+      if(xmlDocument) {
+        xmlDocument.loadXML(str);
+      }
+
+      return xmlDocument;
+    },
+
+    // not supported
+    parseFromStream: new Function,
+    baseURI: ""
+  }
+
+  var XMLSerializer = function() {
+    /* empty constructor */
+  }
+
+  XMLSerializer.prototype =
+  {
+    toString: function() {
+      return "[object XMLSerializer]";
+    },
+
+    serializeToString: function(root) {
+      return root.xml || root.outerHTML;
+    },
+
+    // not supported
+    serializeToStream: new Function
+  }
+}
+
+// Implementation of selectNodes() and selectSingleNode()
+// for Gecko/Mozilla browsers
+
+if (window.XPathEvaluator && Element.prototype.__defineGetter__)
+{
+  qx.lang.XmlEmu._xpe = new XPathEvaluator();
+
+  if (!Element.prototype.selectSingleNode)
+  {
+    Element.prototype.selectSingleNode = function (xpath) {
+      return qx.lang.XmlEmu._xpe.evaluate(xpath, this, qx.lang.XmlEmu._xpe.createNSResolver(this), XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
+    }
+  }
+
+  if (!Element.prototype.selectNodes)
+  {
+    Element.prototype.selectNodes = function (xpath) {
+      var result = qx.lang.XmlEmu._xpe.evaluate(xpath, this, qx.lang.XmlEmu._xpe.createNSResolver(this), XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+      var nodes = [];
+
+      for (var i=0; i<result.snapshotLength; i++) {
+        nodes[i] = result.snapshotItem(i);
+      }
+
+      return nodes;
+    }
+  }
+
+  if (!Document.prototype.selectSingleNode)
+  {
+    Document.prototype.selectSingleNode = function (xpath) {
+      return qx.lang.XmlEmu._xpe.evaluate(xpath, this, qx.lang.XmlEmu._xpe.createNSResolver(this), XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
+    }
+  }
+
+  if (!Document.prototype.selectNodes)
+  {
+    Document.prototype.selectNodes = function (xpath) {
+      var result = qx.lang.XmlEmu._xpe.evaluate(xpath, this, qx.lang.XmlEmu._xpe.createNSResolver(this), XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+      var nodes = [];
+
+      for (var i=0; i<result.snapshotLength; i++) {
+        nodes[i] = result.snapshotItem(i);
+      }
+
+      return nodes;
+    }
+  }
+
+  Element.prototype.__defineGetter__('text',
+    function() {
+      var text = "";
+      for (var i=0; i<this.childNodes.length; i++) {
+        text += this.childNodes[i].text != null ? this.childNodes[i].text : "";
+      }
+      return text;
+    }
+  );
+
+  Element.prototype.__lookupGetter__('text');
+
+  if (!window.Attr) {
+    Attr = new Function();
+  }
+  Attr.prototype.__defineGetter__('text', function(){ return this.nodeValue; });
+  Attr.prototype.__lookupGetter__('text');
+
+  if (!window.Text) {
+    Text = new Function();
+  }
+  Text.prototype.__defineGetter__('text', function(){ return this.nodeValue; });
+  Text.prototype.__lookupGetter__('text');
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/AliasManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/AliasManager.js
new file mode 100644 (file)
index 0000000..5ba86b7
--- /dev/null
@@ -0,0 +1,172 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+/**
+ * This singleton manage global resource aliases
+ *
+ * @event change {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.manager.object.AliasManager", qx.core.Target,
+function()
+{
+  qx.core.Target.call(this);
+
+  // Contains defined aliases (like icons/, widgets/, application/, ...)
+  this._aliases = {};
+
+  // Containes computed paths
+  this._uris = {};
+
+  // Define static alias from setting
+  this.add("static", this.getSetting("staticUri"));
+});
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("resourceUri", "../../resource");
+qx.Settings.setDefault("staticUri", qx.Settings.getValue("resourceUri") + "/static");
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ALIAS MANAGMENT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.add = function(vPrefix, vPath)
+{
+  this._aliases[vPrefix] = vPath;
+  this.createDispatchEvent("change");
+}
+
+qx.Proto.remove = function(vPrefix)
+{
+  delete this._aliases[vPrefix];
+  this.createDispatchEvent("change");
+}
+
+qx.Proto.resolve = function(vPrefix) {
+  return this._aliases[vPrefix];
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  URI HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.resolvePath = function(vPath, vForceUpdate)
+{
+  var vUri = this._uris[vPath];
+
+  if (vForceUpdate || typeof vUri === "undefined")
+  {
+    vUri = this._uris[vPath] = this._computePath(vPath);
+    // this.debug("URI: " + vPath + " => " + vUri);
+  }
+
+  return vUri;
+}
+
+qx.Proto._computePath = function(vPath, vForce)
+{
+  switch(vPath.charAt(0))
+  {
+    case "/":
+    case ".":
+      return vPath;
+
+    default:
+      if (qx.lang.String.startsWith(vPath, qx.net.Protocol.URI_HTTP) || qx.lang.String.startsWith(vPath, qx.net.Protocol.URI_HTTPS) || qx.lang.String.startsWith(vPath, qx.net.Protocol.URI_FILE)) {
+        return vPath;
+      }
+
+      var vAlias = vPath.substring(0, vPath.indexOf("/"));
+      var vResolved = this._aliases[vAlias];
+
+      if (qx.util.Validation.isValidString(vResolved)) {
+        return vResolved + vPath.substring(vAlias.length);
+      }
+
+      return vPath;
+  }
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._aliases = null;
+  this._uris = null;
+
+  return qx.core.Target.prototype.dispose.call(this);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/AppearanceManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/AppearanceManager.js
new file mode 100644 (file)
index 0000000..680bd09
--- /dev/null
@@ -0,0 +1,139 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.manager.object.AppearanceManager", qx.manager.object.ObjectManager,
+function() {
+  qx.manager.object.ObjectManager.call(this);
+
+  // Themes
+  this._appearanceThemes = {};
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("appearanceTheme", "qx.theme.appearance.Classic");
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "appearanceTheme", type : "object", allowNull : false, instance : "qx.renderer.theme.AppearanceTheme" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REGISTRATION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.registerAppearanceTheme = function(vThemeClass)
+{
+  this._appearanceThemes[vThemeClass.classname] = vThemeClass;
+
+  if (vThemeClass.classname == this.getSetting("appearanceTheme")) {
+    this.setAppearanceTheme(vThemeClass.getInstance());
+  }
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyAppearanceTheme = function(propValue, propOldValue, propData)
+{
+  var vComp = qx.core.Init.getInstance().getComponent();
+
+  if (vComp && vComp.isUiReady()) {
+    qx.ui.core.ClientDocument.getInstance()._recursiveAppearanceThemeUpdate(propValue, propOldValue);
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  // Themes
+  this._appearanceThemes = null;
+
+  return qx.manager.object.ObjectManager.prototype.dispose.call(this);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ColorManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ColorManager.js
new file mode 100644 (file)
index 0000000..6eb4038
--- /dev/null
@@ -0,0 +1,227 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#optional(qx.ui.form.Button)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.manager.object.ColorManager", qx.manager.object.ObjectManager,
+function()
+{
+  qx.manager.object.ObjectManager.call(this);
+
+  // Themes
+  this._colorThemes = {};
+
+  // Contains the qx.renderer.color.ColorObjects which
+  // represent a themed color.
+  this._dependentObjects = {};
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("colorTheme", "qx.theme.color.WindowsRoyale");
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "colorTheme", type : "object", allowNull : false, instance : "qx.renderer.theme.ColorTheme" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REGISTRATION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.registerColorTheme = function(vThemeClass)
+{
+  this._colorThemes[vThemeClass.classname] = vThemeClass;
+
+  if (vThemeClass.classname == this.getSetting("colorTheme")) {
+    this.setColorTheme(vThemeClass.getInstance());
+  }
+}
+
+qx.Proto.setColorThemeById = function(vId) {
+  this.setColorTheme(this._colorThemes[vId].getInstance());
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PUBLIC METHODS FOR qx.renderer.color.ColorOBJECTS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.add = function(oObject)
+{
+  var vValue = oObject.getValue();
+
+  this._objects[vValue] = oObject;
+
+  if (oObject.isThemedColor()) {
+    this._dependentObjects[vValue] = oObject;
+  }
+}
+
+qx.Proto.remove = function(oObject)
+{
+  var vValue = oObject.getValue();
+
+  delete this._objects[vValue];
+  delete this._dependentObjects[vValue];
+}
+
+qx.Proto.has = function(vValue) {
+  return this._objects[vValue] != null;
+}
+
+qx.Proto.get = function(vValue) {
+  return this._objects[vValue];
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyColorTheme = function(propValue, propOldValue, propData)
+{
+  propValue.compile();
+
+  for (var i in this._dependentObjects) {
+    this._dependentObjects[i]._updateTheme(propValue);
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITY
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.createThemeList = function(vParent, xCor, yCor)
+{
+  var vButton;
+  var vThemes = this._colorThemes;
+  var vIcon = "icon/16/colors.png";
+  var vPrefix = "Color Theme: ";
+  var vEvent = "execute";
+
+  for (var vId in vThemes)
+  {
+    var vObj = vThemes[vId].getInstance();
+    var vButton = new qx.ui.form.Button(vPrefix + vObj.getTitle(), vIcon);
+
+    vButton.setLocation(xCor, yCor);
+    vButton.addEventListener(vEvent, new Function("qx.manager.object.ColorManager.getInstance().setColorThemeById('" + vId + "')"));
+
+    vParent.add(vButton);
+
+    yCor += 30;
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  // Themes
+  this._colorThemes = null;
+
+  // Cleanup dependent objects
+  for (var i in this._dependentObjects) {
+    delete this._dependentObjects[i];
+  }
+
+  delete this._dependentObjects;
+
+  return qx.manager.object.ObjectManager.prototype.dispose.call(this);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/IframeManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/IframeManager.js
new file mode 100644 (file)
index 0000000..7969516
--- /dev/null
@@ -0,0 +1,75 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/**
+ * This singleton manages multiple instances of qx.ui.embed.Iframe.
+ * <p>
+ * The problem: When dragging over an iframe then all mouse events will be
+ * passed to the document of the iframe, not the main document.
+ * <p>
+ * The solution: In order to be able to track mouse events over iframes, this
+ * manager will block all iframes during a drag with a glasspane.
+ */
+qx.OO.defineClass("qx.manager.object.IframeManager", qx.manager.object.ObjectManager,
+function(){
+  qx.manager.object.ObjectManager.call(this);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.handleMouseDown = function(evt) {
+  var iframeMap = this.getAll();
+
+  for (var key in iframeMap) {
+    var iframe = iframeMap[key];
+    iframe.block();
+  }
+}
+
+qx.Proto.handleMouseUp = function(evt) {
+  var iframeMap = this.getAll();
+
+  for (var key in iframeMap) {
+    var iframe = iframeMap[key];
+    iframe.release();
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ImageManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ImageManager.js
new file mode 100644 (file)
index 0000000..f1fbfe6
--- /dev/null
@@ -0,0 +1,305 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#optional(qx.ui.form.Button)
+
+************************************************************************ */
+
+/*!
+  This singleton manage the global image path (prefix) and allowes themed icons.
+*/
+qx.OO.defineClass("qx.manager.object.ImageManager", qx.manager.object.ObjectManager,
+function()
+{
+  qx.manager.object.ObjectManager.call(this);
+
+  // Themes
+  this._iconThemes = {};
+  this._widgetThemes = {};
+
+  // Contains known image sources (all of them, if loaded or not)
+  // The value is a number which represents the number of image
+  // instances which use this source
+  this._sources = {};
+
+  // Change event connection to AliasManager
+  qx.manager.object.AliasManager.getInstance().addEventListener("change", this._onaliaschange, this);
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("iconTheme", "qx.theme.icon.CrystalSvg");
+qx.Settings.setDefault("widgetTheme", "qx.theme.widget.Windows");
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "iconTheme", type : "object", instance : "qx.renderer.theme.IconTheme" });
+qx.OO.addProperty({ name : "widgetTheme", type : "object", instance : "qx.renderer.theme.WidgetTheme" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REGISTRATION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.registerIconTheme = function(vThemeClass)
+{
+  this._iconThemes[vThemeClass.classname] = vThemeClass;
+
+  if (vThemeClass.classname == this.getSetting("iconTheme")) {
+    this.setIconTheme(vThemeClass.getInstance());
+  }
+}
+
+qx.Proto.registerWidgetTheme = function(vThemeClass)
+{
+  this._widgetThemes[vThemeClass.classname] = vThemeClass;
+
+  if (vThemeClass.classname == this.getSetting("widgetTheme")) {
+    this.setWidgetTheme(vThemeClass.getInstance());
+  }
+}
+
+qx.Proto.setIconThemeById = function(vId) {
+  this.setIconTheme(this._iconThemes[vId].getInstance());
+}
+
+qx.Proto.setWidgetThemeById = function(vId) {
+  this.setWidgetTheme(this._widgetThemes[vId].getInstance());
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENTS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onaliaschange = function() {
+  this._updateImages();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyIconTheme = function(propValue, propOldValue, propData)
+{
+  propValue ? qx.manager.object.AliasManager.getInstance().add("icon", propValue.getSetting("imageUri")) : qx.manager.object.AliasManager.getInstance().remove("icon");
+  return true;
+}
+
+qx.Proto._modifyWidgetTheme = function(propValue, propOldValue, propData)
+{
+  propValue ? qx.manager.object.AliasManager.getInstance().add("widget", propValue.getSetting("imageUri")) : qx.manager.object.AliasManager.getInstance().remove("widget");
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PRELOAD API
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getPreloadImageList = function()
+{
+  var vPreload = {};
+
+  for (var vSource in this._sources)
+  {
+    if (this._sources[vSource]) {
+      vPreload[vSource] = true;
+    }
+  }
+
+  return vPreload;
+}
+
+qx.Proto.getPostPreloadImageList = function()
+{
+  var vPreload = {};
+
+  for (var vSource in this._sources)
+  {
+    if (!this._sources[vSource]) {
+      vPreload[vSource] = true;
+    }
+  }
+
+  return vPreload;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INTERNAL HELPER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._updateImages = function()
+{
+  var vAll = this.getAll();
+  var vPreMgr = qx.manager.object.ImagePreloaderManager.getInstance();
+  var vAliasMgr = qx.manager.object.AliasManager.getInstance();
+  var vObject;
+
+  // Recreate preloader of affected images
+  for (var vHashCode in vAll)
+  {
+    vObject = vAll[vHashCode];
+    vObject.setPreloader(vPreMgr.create(vAliasMgr.resolvePath(vObject.getSource(), true)));
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITY
+---------------------------------------------------------------------------
+*/
+
+// TODO: rename to createIconThemeList
+qx.Proto.createThemeList = function(vParent, xCor, yCor)
+{
+  var vButton;
+  var vThemes = this._iconThemes;
+  var vIcon = "icon/16/icons.png";
+  var vPrefix = "Icon Theme: ";
+  var vEvent = "execute";
+
+  for (var vId in vThemes)
+  {
+    var vObj = vThemes[vId].getInstance();
+    var vButton = new qx.ui.form.Button(vPrefix + vObj.getTitle(), vIcon);
+
+    vButton.setLocation(xCor, yCor);
+    vButton.addEventListener(vEvent, new Function("qx.manager.object.ImageManager.getInstance().setIconThemeById('" + vId + "')"));
+
+    vParent.add(vButton);
+
+    yCor += 30;
+  }
+}
+
+qx.Proto.preload = function(vPath) {
+  qx.manager.object.ImagePreloaderManager.getInstance().create(qx.manager.object.AliasManager.getInstance().resolvePath(vPath));
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  // Change event connection to AliasManager
+  qx.manager.object.AliasManager.getInstance().removeEventListener("change", this._onaliaschange, this);
+
+  // Delete counter field
+  this._sources = null;
+
+  // Themes
+  this._iconThemes = null;
+  this._widgetThemes = null;
+
+  return qx.manager.object.ObjectManager.prototype.dispose.call(this);
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ImagePreloaderManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ImagePreloaderManager.js
new file mode 100644 (file)
index 0000000..8c0d68e
--- /dev/null
@@ -0,0 +1,82 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+/*!
+  This singleton manage all qx.io.image.Preloader instances.
+*/
+qx.OO.defineClass("qx.manager.object.ImagePreloaderManager", qx.manager.object.ObjectManager,
+function() {
+  qx.manager.object.ObjectManager.call(this);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.add = function(vObject) {
+  this._objects[vObject.getUri()] = vObject;
+}
+
+qx.Proto.remove = function(vObject) {
+  delete this._objects[vObject.getUri()];
+}
+
+qx.Proto.has = function(vSource) {
+  return this._objects[vSource] != null;
+}
+
+qx.Proto.get = function(vSource) {
+  return this._objects[vSource];
+}
+
+qx.Proto.create = function(vSource)
+{
+  if (this._objects[vSource]) {
+    return this._objects[vSource];
+  }
+
+  return new qx.io.image.Preloader(vSource);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/MenuManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/MenuManager.js
new file mode 100644 (file)
index 0000000..b7914b4
--- /dev/null
@@ -0,0 +1,92 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_menu)
+
+************************************************************************ */
+
+/*!
+  This singleton manages multiple instances of qx.ui.menu.Menu and their state.
+*/
+qx.OO.defineClass("qx.manager.object.MenuManager", qx.manager.object.ObjectManager,
+function(){
+  qx.manager.object.ObjectManager.call(this);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.update = function(vTarget, vEventName)
+{
+  var vMenu, vHashCode;
+  var vAll = this.getAll();
+
+  for (vHashCode in vAll)
+  {
+    vMenu = vAll[vHashCode];
+
+    if(!vMenu.getAutoHide()) {
+      continue;
+    }
+
+    if (vTarget && vTarget.getMenu && vTarget.getMenu()) {
+      continue;
+    }
+
+    // Hide on global events (mouseup, window focus, window blur, ...)
+    if (!vTarget)
+    {
+      vMenu.hide();
+      continue;
+    }
+
+    // Hide only if the target is not a button inside this
+    // or any sub menu and is not the opener
+    if (vMenu.getOpener() !== vTarget && ((vTarget && !vMenu.isSubButton(vTarget)) || vEventName !== "mousedown"))
+    {
+      vMenu.hide();
+      continue;
+    }
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ObjectManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ObjectManager.js
new file mode 100644 (file)
index 0000000..c1160ab
--- /dev/null
@@ -0,0 +1,117 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+/*!
+  This class allows basic managment of assigned objects.
+*/
+qx.OO.defineClass("qx.manager.object.ObjectManager", qx.core.Target,
+function()
+{
+  qx.core.Target.call(this);
+
+  this._objects = {};
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  USER API
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.add = function(vObject)
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._objects[vObject.toHashCode()] = vObject;
+  return true;
+}
+
+qx.Proto.remove = function(vObject)
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  delete this._objects[vObject.toHashCode()];
+  return true;
+}
+
+qx.Proto.has = function(vObject) {
+  return this._objects[vObject.toHashCode()] != null;
+}
+
+qx.Proto.get = function(vObject) {
+  return this._objects[vObject.toHashCode()];
+}
+
+qx.Proto.getAll = function() {
+  return this._objects;
+}
+
+qx.Proto.enableAll = function()
+{
+  for (var vHashCode in this._objects) {
+    this._objects[vHashCode].setEnabled(true);
+  };
+};
+
+qx.Proto.disableAll = function()
+{
+  for (var vHashCode in this._objects) {
+    this._objects[vHashCode].setEnabled(false);
+  };
+};
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if(this.getDisposed()) {
+    return;
+  }
+
+  if (this._objects)
+  {
+    for (var i in this._objects) {
+      delete this._objects[i];
+    }
+
+    delete this._objects;
+  }
+
+  return qx.core.Target.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/PopupManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/PopupManager.js
new file mode 100644 (file)
index 0000000..218c988
--- /dev/null
@@ -0,0 +1,77 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_popup)
+
+************************************************************************ */
+
+/*!
+  This singleton is used to manager multiple instances of popups and their state.
+*/
+qx.OO.defineClass("qx.manager.object.PopupManager", qx.manager.object.ObjectManager,
+function() {
+  qx.manager.object.ObjectManager.call(this);
+});
+
+
+
+/*
+---------------------------------------------------------------------------
+  METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.update = function(vTarget)
+{
+  // be sure that target is correctly set (needed for contains() later)
+  if (!(vTarget instanceof qx.ui.core.Widget)) {
+    vTarget = null;
+  }
+
+  var vPopup, vHashCode;
+  var vAll = this.getAll();
+
+  for (vHashCode in vAll)
+  {
+    vPopup = vAll[vHashCode];
+
+    if(!vPopup.getAutoHide() || vTarget == vPopup || vPopup.contains(vTarget)) {
+      continue;
+    }
+
+    vPopup.hide();
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ToolTipManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ToolTipManager.js
new file mode 100644 (file)
index 0000000..f29be08
--- /dev/null
@@ -0,0 +1,191 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_popup)
+
+************************************************************************ */
+
+/*!
+  This manages ToolTip instances
+*/
+qx.OO.defineClass("qx.manager.object.ToolTipManager", qx.manager.object.ObjectManager,
+function() {
+  qx.manager.object.ObjectManager.call(this);
+});
+
+qx.OO.addProperty({ name : "currentToolTip", type : "object", instance : "qx.ui.popup.ToolTip" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyCurrentToolTip = function(propValue, propOldValue, propData)
+{
+  // Return if the new tooltip is a child of the old one
+  if(propOldValue && propOldValue.contains(propValue)) {
+    return;
+  }
+
+  // If old tooltip existing, hide it and clear widget binding
+  if(propOldValue)
+  {
+    propOldValue.hide();
+
+    propOldValue._stopShowTimer();
+    propOldValue._stopHideTimer();
+  }
+
+  // If new tooltip is not null, set it up and start the timer
+  if(propValue) {
+    propValue._startShowTimer();
+  }
+
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT INTERFACE: MOUSE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.handleMouseOver = function(e)
+{
+  var vTarget = e.getTarget();
+  var vToolTip;
+
+  // Allows us to use DOM Nodes as tooltip target :)
+  if (!(vTarget instanceof qx.ui.core.Widget) && vTarget.nodeType == 1) {
+    vTarget = qx.event.handler.EventHandler.getTargetObject(vTarget);
+  }
+
+  //Search first parent which has a tooltip
+  while(vTarget != null && !(vToolTip = vTarget.getToolTip())) {
+    vTarget = vTarget.getParent();
+  }
+
+  // Bind tooltip to widget
+  if (vToolTip != null) {
+    vToolTip.setBoundToWidget(vTarget);
+  }
+
+  // Set Property
+  this.setCurrentToolTip(vToolTip);
+}
+
+qx.Proto.handleMouseOut = function(e)
+{
+  var vTarget = e.getTarget();
+  var vRelatedTarget = e.getRelatedTarget();
+
+  var vToolTip = this.getCurrentToolTip();
+
+  // If there was a tooltip and
+  // - the destination target is the current tooltip
+  //   or
+  // - the current tooltip contains the destination target
+  if(vToolTip && (vRelatedTarget == vToolTip || vToolTip.contains(vRelatedTarget))) {
+    return;
+  }
+
+  // If the destination target exists and the target contains it
+  if(vRelatedTarget && vTarget && vTarget.contains(vRelatedTarget)) {
+    return;
+  }
+
+  // If there was a tooltip and there is no new one
+  if(vToolTip && !vRelatedTarget) {
+    this.setCurrentToolTip(null);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT INTERFACE: FOCUS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.handleFocus = function(e)
+{
+  var vTarget = e.getTarget();
+  var vToolTip = vTarget.getToolTip();
+
+  // Only set new tooltip if focus widget
+  // has one
+  if(vToolTip != null)
+  {
+    // Bind tooltip to widget
+    vToolTip.setBoundToWidget(vTarget);
+
+    // Set Property
+    this.setCurrentToolTip(vToolTip);
+  }
+}
+
+qx.Proto.handleBlur = function(e)
+{
+  var vTarget = e.getTarget();
+
+  if(!vTarget) {
+    return;
+  }
+
+  var vToolTip = this.getCurrentToolTip();
+
+  // Only set to null if blured widget is the
+  // one which has created the current tooltip
+  if(vToolTip && vToolTip == vTarget.getToolTip()) {
+    this.setCurrentToolTip(null);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/WindowManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/WindowManager.js
new file mode 100644 (file)
index 0000000..96e13ac
--- /dev/null
@@ -0,0 +1,158 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_window)
+
+************************************************************************ */
+
+/*!
+  This singleton manages qx.ui.window.Windows
+*/
+qx.OO.defineClass("qx.manager.object.WindowManager", qx.manager.object.ObjectManager,
+function() {
+  qx.manager.object.ObjectManager.call(this);
+});
+
+qx.OO.addProperty({ name : "activeWindow", type : "object" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyActiveWindow = function(propValue, propOldValue, propData)
+{
+  qx.manager.object.PopupManager.getInstance().update();
+
+  if (propOldValue) {
+    propOldValue.setActive(false);
+  }
+
+  if (propValue) {
+    propValue.setActive(true);
+  }
+
+  if (propOldValue && propOldValue.getModal()) {
+    propOldValue.getTopLevelWidget().release(propOldValue);
+  }
+
+  if (propValue && propValue.getModal()) {
+    propValue.getTopLevelWidget().block(propValue);
+  }
+
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.update = function(oTarget)
+{
+  var vWindow, vHashCode;
+  var vAll = this.getAll();
+
+  for (var vHashCode in vAll)
+  {
+    vWindow = vAll[vHashCode];
+
+    if(!vWindow.getAutoHide()) {
+      continue;
+    }
+
+    vWindow.hide();
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MANAGER INTERFACE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.compareWindows = function(w1, w2)
+{
+  switch(w1.getWindowManager().getActiveWindow())
+  {
+    case w1:
+      return 1;
+
+    case w2:
+      return -1;
+  }
+
+  return w1.getZIndex() - w2.getZIndex();
+}
+
+qx.Proto.add = function(vWindow)
+{
+  qx.manager.object.ObjectManager.prototype.add.call(this, vWindow);
+
+  // this.debug("Add: " + vWindow);
+  this.setActiveWindow(vWindow);
+}
+
+qx.Proto.remove = function(vWindow)
+{
+  qx.manager.object.ObjectManager.prototype.remove.call(this, vWindow);
+
+  // this.debug("Remove: " + vWindow);
+
+  if (this.getActiveWindow() == vWindow)
+  {
+    var a = [];
+    for (var i in this._objects) {
+      a.push(this._objects[i]);
+    }
+
+    var l = a.length;
+
+    if (l==0)
+    {
+      this.setActiveWindow(null);
+    }
+    else if (l==1)
+    {
+      this.setActiveWindow(a[0]);
+    }
+    else if (l>1)
+    {
+      a.sort(this.compareWindows);
+      this.setActiveWindow(a[l-1]);
+    }
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/DomSelectionManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/DomSelectionManager.js
new file mode 100644 (file)
index 0000000..3205dc4
--- /dev/null
@@ -0,0 +1,242 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.manager.selection.DomSelectionManager", qx.manager.selection.SelectionManager,
+function(vBoundedWidget)
+{
+  qx.manager.selection.SelectionManager.call(this, vBoundedWidget);
+
+  // the children does not fire onmouseover events so we could
+  // not enable this and make it functional
+  this.setDragSelection(false);
+
+  this._selectedItems.getItemHashCode = this.getItemHashCode;
+});
+
+
+
+/*
+---------------------------------------------------------------------------
+  MAPPING TO BOUNDED WIDGET (DOM NODES)
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getItemEnabled = function(oItem) {
+  return true;
+}
+
+qx.Proto.getItemClassName = function(vItem) {
+  return vItem.className || "";
+}
+
+qx.Proto.setItemClassName = function(vItem, vClassName) {
+  return vItem.className = vClassName;
+}
+
+qx.Proto.getItemBaseClassName = function(vItem)
+{
+  var p = vItem.className.split(" ")[0];
+  return p ? p : "Status";
+}
+
+qx.Proto.getNextSibling = function(vItem) {
+  return vItem.nextSibling;
+}
+
+qx.Proto.getPreviousSibling = function(vItem) {
+  return vItem.previousSibling;
+}
+
+qx.Proto.getFirst = function() {
+  return this.getItems()[0];
+}
+
+qx.Proto.getLast = function()
+{
+  var vItems = this.getItems();
+  return vItems[vItems.length-1];
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MAPPING TO ITEM DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getItemLeft = function(vItem) {
+  return vItem.offsetLeft;
+}
+
+qx.Proto.getItemTop = function(vItem) {
+  return vItem.offsetTop;
+}
+
+qx.Proto.getItemWidth = function(vItem) {
+  return vItem.offsetWidth;
+}
+
+qx.Proto.getItemHeight = function(vItem) {
+  return vItem.offsetHeight;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MAPPING TO ITEM PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getItemHashCode = function(oItem)
+{
+  if (oItem._hash) {
+    return oItem._hash;
+  }
+
+  return oItem._hash = qx.core.Object.toHashCode(oItem);
+}
+
+qx.Proto.isBefore = function(vItem1, vItem2)
+{
+  var pa = vItem1.parentNode;
+
+  for (var i=0, l=pa.childNodes.length; i<l; i++)
+  {
+    switch(pa.childNodes[i])
+    {
+      case vItem2:
+        return false;
+
+      case vItem1:
+        return true;
+    }
+  }
+}
+
+qx.Proto.scrollItemIntoView = function(vItem) {
+  this.getBoundedWidget().scrollItemIntoView(vItem);
+}
+
+qx.Proto.getItems = function() {
+  return this.getBoundedWidget().getItems();
+}
+
+qx.Proto.getAbove = function(vItem)
+{
+  var vParent = vItem.parentNode;
+  var vFound = false;
+  var vLeft = vItem.offsetLeft;
+  var vChild;
+
+  for (var i=vParent.childNodes.length-1; i>0; i--)
+  {
+    vChild = vParent.childNodes[i];
+
+    if (vFound == false)
+    {
+      if (vChild == vItem) {
+        vFound = true;
+      }
+    }
+    else
+    {
+      if (vChild.offsetLeft == vLeft)
+      {
+        return vChild;
+      }
+    }
+  }
+}
+
+qx.Proto.getUnder = function(vItem)
+{
+  var vParent = vItem.parentNode;
+  var vFound = false;
+  var vLeft = vItem.offsetLeft;
+  var vChild;
+
+  for (var i=0, l=vParent.childNodes.length; i<l; i++)
+  {
+    vChild = vParent.childNodes[i];
+
+    if (vFound == false)
+    {
+      if (vChild == vItem) {
+        vFound = true;
+      }
+    }
+    else
+    {
+      if (vChild.offsetLeft == vLeft)
+      {
+        return vChild;
+      }
+    }
+  }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ITEM CSS STATE MANAGMENT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._updateState = function(vItem, vState, vIsState)
+{
+  var c = this.getItemClassName(vItem);
+  var n = this.getItemBaseClassName(vItem) + "-" + vState;
+
+  this.setItemClassName(vItem, vIsState ? qx.lang.String.add(c, n, " ") : qx.lang.String.remove(c, n, " "));
+}
+
+qx.Proto.renderItemSelectionState = function(vItem, vIsSelected) {
+  this._updateState(vItem, "Selected", vIsSelected);
+}
+
+qx.Proto.renderItemAnchorState = function(vItem, vIsAnchor) {
+  this._updateState(vItem, "Anchor", vIsAnchor);
+}
+
+qx.Proto.renderItemLeadState = function(vItem, vIsLead) {
+  this._updateState(vItem, "Lead", vIsLead);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/RadioManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/RadioManager.js
new file mode 100644 (file)
index 0000000..bac72a4
--- /dev/null
@@ -0,0 +1,292 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+/*!
+  Each instance manage vItems set of radio options: qx.ui.form.RadioButton, qx.ui.toolbar.RadioButton, ...
+*/
+qx.OO.defineClass("qx.manager.selection.RadioManager", qx.core.Target,
+function(vName, vMembers)
+{
+  // we don't need the manager data structures
+  qx.core.Target.call(this);
+
+  // create item array
+  this._items = [];
+
+  // apply name property
+  this.setName(qx.util.Validation.isValidString(vName) ? vName : qx.manager.selection.RadioManager.AUTO_NAME_PREFIX + this._hashCode);
+
+  if (qx.util.Validation.isValidArray(vMembers)) {
+    // add() iterates over arguments, but vMembers is an array
+    this.add.apply(this, vMembers);
+  }
+});
+
+qx.manager.selection.RadioManager.AUTO_NAME_PREFIX = "qx-radio-";
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "selected" });
+qx.OO.addProperty({ name : "name", type : "string" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getItems = function() {
+  return this._items;
+}
+
+qx.Proto.handleItemChecked = function(vItem, vChecked)
+{
+  if (vChecked)
+  {
+    this.setSelected(vItem);
+  }
+  else if (this.getSelected() == vItem)
+  {
+    this.setSelected(null);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REGISTRY
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.add = function(varargs)
+{
+  var vItems = arguments;
+  var vLength = vItems.length;
+
+  var vLast = vItems[vLength-1];
+
+  if (!(vLast instanceof qx.ui.core.Parent) && !(vLast instanceof qx.ui.basic.Terminator)) {
+    vLength--;
+  }
+
+  var vItem;
+  for (var i=0; i<vLength; i++)
+  {
+    vItem = vItems[i];
+
+    if(qx.lang.Array.contains(this._items, vItem)) {
+      return;
+    }
+
+    // Push RadioButton to array
+    this._items.push(vItem);
+
+    // Inform radio button about new manager
+    vItem.setManager(this);
+
+    // Need to update internal value?
+    if(vItem.getChecked()) {
+      this.setSelected(vItem);
+    }
+
+    // Make enabled the same status as the the manager has
+    vItem.setEnabled(this.getEnabled());
+
+    // Apply Make name the same
+    vItem.setName(this.getName());
+  }
+}
+
+qx.Proto.remove = function(vItem)
+{
+  // Remove RadioButton from array
+  qx.lang.Array.remove(this._items, vItem);
+
+  // Inform radio button about new manager
+  vItem.setManager(null);
+
+  // if the radio was checked, set internal selection to null
+  if(vItem.getChecked()) {
+    this.setSelected(null);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifySelected = function(propValue, propOldValue, propData)
+{
+  if (propOldValue && propOldValue.getChecked()) {
+    propOldValue.setChecked(false);
+  }
+
+  if (propValue && !propValue.getChecked()) {
+    propValue.setChecked(true);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
+{
+  for (var i=0, vItems=this._items, vLength=vItems.length; i<vLength; i++) {
+    vItems[i].setEnabled(propValue);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyName = function(propValue, propOldValue, propData)
+{
+  for (var i=0, vItems=this._items, vLength=vItems.length; i<vLength; i++) {
+    vItems[i].setName(propValue);
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SELECTION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.selectNext = function(vItem)
+{
+  var vIndex = this._items.indexOf(vItem);
+
+  if(vIndex == -1) {
+    return;
+  }
+
+  var i = 0;
+  var vLength = this._items.length;
+
+  // Find next enabled item
+  vIndex = (vIndex + 1) % vLength;
+  while(i < vLength && !this._items[vIndex].getEnabled())
+  {
+    vIndex = (vIndex + 1) % vLength;
+    i++;
+  }
+
+  this._selectByIndex(vIndex);
+}
+
+qx.Proto.selectPrevious = function(vItem)
+{
+  var vIndex = this._items.indexOf(vItem);
+
+  if(vIndex == -1) {
+    return;
+  }
+
+  var i = 0;
+  var vLength = this._items.length;
+
+  // Find previous enabled item
+  vIndex = (vIndex - 1 + vLength) % vLength;
+  while(i < vLength && !this._items[vIndex].getEnabled())
+  {
+    vIndex = (vIndex - 1 + vLength) % vLength;
+    i++;
+  }
+
+  this._selectByIndex(vIndex);
+}
+
+qx.Proto._selectByIndex = function(vIndex)
+{
+  if(this._items[vIndex].getEnabled())
+  {
+    this.setSelected(this._items[vIndex]);
+    this._items[vIndex].setFocused(true);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this.forceSelected(null);
+
+  if (this._items)
+  {
+    for (var i, vItems=this._items, vLength=vItems.length; i<vLength; i++)
+    {
+      vItems[i].dispose();
+      delete vItems[i];
+    }
+
+    vItems=null;
+    delete this._items;
+  }
+
+  return qx.core.Target.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/SelectionManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/SelectionManager.js
new file mode 100644 (file)
index 0000000..a37c245
--- /dev/null
@@ -0,0 +1,1433 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+/**
+ * This class represents a selection and manage incoming events for widgets
+ * which need selection support.
+ *
+ * @event changeSelection {qx.event.type.DataEvent} sets the data property of the event object to an arryas of selected items.
+ */
+qx.OO.defineClass("qx.manager.selection.SelectionManager", qx.core.Target,
+function(vBoundedWidget)
+{
+  qx.core.Target.call(this);
+
+  this._selectedItems = new qx.type.Selection(this);
+
+  if (qx.util.Validation.isValid(vBoundedWidget)) {
+    this.setBoundedWidget(vBoundedWidget);
+  }
+});
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+This contains the currently assigned widget (qx.ui.form.List, ...)
+*/
+qx.OO.addProperty({ name : "boundedWidget", type : "object" });
+
+/*!
+Should multiple selection be allowed?
+*/
+qx.OO.addProperty({ name : "multiSelection", type : "boolean", defaultValue : true });
+
+/*!
+Enable drag selection?
+*/
+qx.OO.addProperty({ name : "dragSelection", type : "boolean", defaultValue : true });
+
+/*!
+Should the user be able to select
+*/
+qx.OO.addProperty({ name : "canDeselect", type : "boolean", defaultValue : true });
+
+/*!
+Should a change event be fired?
+*/
+qx.OO.addProperty({ name : "fireChange", type : "boolean", defaultValue : true });
+
+/*!
+The current anchor in range selections.
+*/
+qx.OO.addProperty({ name : "anchorItem", type : "object" });
+
+/*!
+The last selected item
+*/
+qx.OO.addProperty({ name : "leadItem", type : "object" });
+
+/*!
+Grid selection
+*/
+qx.OO.addProperty({ name : "multiColumnSupport", type : "boolean", defaultValue : false });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyAnchorItem = function(propValue, propOldValue, propData)
+{
+  if (propOldValue) {
+    this.renderItemAnchorState(propOldValue, false);
+  }
+
+  if (propValue) {
+    this.renderItemAnchorState(propValue, true);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyLeadItem = function(propValue, propOldValue, propData)
+{
+  if (propOldValue) {
+    this.renderItemLeadState(propOldValue, false);
+  }
+
+  if (propValue) {
+    this.renderItemLeadState(propValue, true);
+  }
+
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MAPPING TO BOUNDED WIDGET
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._getFirst = function() {
+  return this.getBoundedWidget().getFirstVisibleChild();
+}
+
+qx.Proto._getLast = function() {
+  return this.getBoundedWidget().getLastVisibleChild();
+}
+
+qx.Proto.getFirst = function()
+{
+  var vItem = this._getFirst();
+  if (vItem) {
+    return vItem.isEnabled() ? vItem : this.getNext(vItem);
+  }
+}
+
+qx.Proto.getLast = function()
+{
+  var vItem = this._getLast();
+  if (vItem) {
+    return vItem.isEnabled() ? vItem : this.getPrevious(vItem);
+  }
+}
+
+qx.Proto.getItems = function() {
+  return this.getBoundedWidget().getChildren();
+}
+
+qx.Proto.getNextSibling = function(vItem) {
+  return vItem.getNextSibling();
+}
+
+qx.Proto.getPreviousSibling = function(vItem) {
+  return vItem.getPreviousSibling();
+}
+
+qx.Proto.getNext = function(vItem)
+{
+  while(vItem)
+  {
+    vItem = this.getNextSibling(vItem);
+
+    if (!vItem) {
+      break;
+    }
+
+    if (this.getItemEnabled(vItem)) {
+      return vItem;
+    }
+  }
+
+  return null;
+}
+
+qx.Proto.getPrevious = function(vItem)
+{
+  while(vItem)
+  {
+    vItem = this.getPreviousSibling(vItem);
+
+    if (!vItem) {
+      break;
+    }
+
+    if (this.getItemEnabled(vItem)) {
+      return vItem;
+    }
+  }
+
+  return null;
+}
+
+qx.Proto.isBefore = function(vItem1, vItem2)
+{
+  var cs = this.getItems();
+  return cs.indexOf(vItem1) < cs.indexOf(vItem2);
+}
+
+qx.Proto.isEqual = function(vItem1, vItem2) {
+  return vItem1 == vItem2;
+}
+
+
+
+/*
+---------------------------------------------------------------------------
+  MAPPING TO ITEM PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getItemHashCode = function(vItem) {
+  return vItem.toHashCode();
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MAPPING TO ITEM DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.scrollItemIntoView = function(vItem, vTopLeft) {
+  vItem.scrollIntoView(vTopLeft);
+}
+
+qx.Proto.getItemLeft = function(vItem) {
+  return vItem.getOffsetLeft();
+}
+
+qx.Proto.getItemTop = function(vItem) {
+  return vItem.getOffsetTop();
+}
+
+qx.Proto.getItemWidth = function(vItem) {
+  return vItem.getOffsetWidth();
+}
+
+qx.Proto.getItemHeight = function(vItem) {
+  return vItem.getOffsetHeight();
+}
+
+qx.Proto.getItemEnabled = function(vItem) {
+  return vItem.getEnabled();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ITEM STATE MANAGMENT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.renderItemSelectionState = function(vItem, vIsSelected)
+{
+  vIsSelected ? vItem.addState("selected") : vItem.removeState("selected");
+
+  if (vItem.handleStateChange) {
+    vItem.handleStateChange();
+  }
+}
+
+qx.Proto.renderItemAnchorState = function(vItem, vIsAnchor)
+{
+  vIsAnchor ? vItem.addState("anchor") : vItem.removeState("anchor");
+
+  if (vItem.handleStateChange != null) {
+    vItem.handleStateChange();
+  }
+}
+
+qx.Proto.renderItemLeadState = function(vItem, vIsLead)
+{
+  vIsLead ? vItem.addState("lead") : vItem.removeState("lead");
+
+  if (vItem.handleStateChange != null) {
+    vItem.handleStateChange();
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SELECTION HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getItemSelected = function(vItem) {
+  return this._selectedItems.contains(vItem);
+}
+
+/*!
+Make a single item selected / not selected
+
+#param vItem[qx.ui.core.Widget]: Item which should be selected / not selected
+#param vSelected[Boolean]: Should this item be selected?
+*/
+qx.Proto.setItemSelected = function(vItem, vSelected)
+{
+  var hc = this.getItemHashCode(vItem);
+
+  switch(this.getMultiSelection())
+  {
+    // Multiple item selection is allowed
+    case true:
+      if (!this.getItemEnabled(vItem)) {
+        return;
+      }
+
+      // If selection state is not to be changed => return
+      if (this.getItemSelected(vItem) == vSelected) {
+        return;
+      }
+
+      // Otherwise render new state
+      this.renderItemSelectionState(vItem, vSelected);
+
+      // Add item to selection hash / delete it from there
+      vSelected ? this._selectedItems.add(vItem) : this._selectedItems.remove(vItem);
+
+      // Dispatch change Event
+      this._dispatchChange();
+
+      break;
+
+
+
+    // Multiple item selection is NOT allowed
+    case false:
+      var item0 = this.getSelectedItems()[0];
+
+
+
+      if (vSelected)
+      {
+        // Precheck for any changes
+        var old = item0;
+
+        if (this.isEqual(vItem, old)) {
+          return;
+        }
+
+        // Reset rendering of previous selected item
+        if (old != null) {
+          this.renderItemSelectionState(old, false);
+        }
+
+        // Render new item as selected
+        this.renderItemSelectionState(vItem, true);
+
+        // Reset current selection hash
+        this._selectedItems.removeAll();
+
+        // Add new one
+        this._selectedItems.add(vItem);
+
+        // Dispatch change Event
+        this._dispatchChange();
+      }
+      else
+      {
+        // Pre-check if item is currently selected
+        // Do not allow deselection in single selection mode
+        if (!this.isEqual(item0, vItem))
+        {
+          // Reset rendering as selected item
+          this.renderItemSelectionState(vItem, false);
+
+          // Reset current selection hash
+          this._selectedItems.removeAll();
+
+          // Dispatch change Event
+          this._dispatchChange();
+        }
+      }
+
+      break;
+
+  }
+}
+
+
+
+
+
+
+
+
+/*!
+  Get the selected items (objects)
+*/
+qx.Proto.getSelectedItems = function() {
+  return this._selectedItems.toArray();
+}
+
+qx.Proto.getSelectedItem = function() {
+  return this._selectedItems.getFirst();
+}
+
+/*!
+Select given items
+
+#param vItems[Array of Widgets]: Items to select
+*/
+qx.Proto.setSelectedItems = function(vItems)
+{
+  var oldVal = this._getChangeValue();
+
+  // Temporary disabling of event fire
+  var oldFireChange = this.getFireChange();
+  this.setFireChange(false);
+
+  // Deselect all currently selected items
+  this._deselectAll();
+
+  // Apply new selection
+  var vItem;
+  var vItemLength = vItems.length;
+
+  for (var i=0; i<vItemLength; i++)
+  {
+    vItem = vItems[i];
+
+    if (!this.getItemEnabled(vItem)) {
+      continue;
+    }
+
+    // Add item to selection
+    this._selectedItems.add(vItem);
+
+    // Render new state for item
+    this.renderItemSelectionState(vItem, true);
+  }
+
+  // Recover change event status
+  this.setFireChange(oldFireChange);
+
+  // Dispatch change Event
+  if (oldFireChange && this._hasChanged(oldVal)) {
+    this._dispatchChange();
+  }
+}
+
+
+qx.Proto.setSelectedItem = function(vItem)
+{
+  if (!vItem) {
+    return;
+  }
+
+  if (!this.getItemEnabled(vItem)) {
+    return;
+  }
+
+  var oldVal = this._getChangeValue();
+
+  // Temporary disabling of event fire
+  var oldFireChange = this.getFireChange();
+  this.setFireChange(false);
+
+  // Deselect all currently selected items
+  this._deselectAll();
+
+  // Add item to selection
+  this._selectedItems.add(vItem);
+
+  // Render new state for item
+  this.renderItemSelectionState(vItem, true);
+
+  // Recover change event status
+  this.setFireChange(oldFireChange);
+
+  // Dispatch change Event
+  if (oldFireChange && this._hasChanged(oldVal)) {
+    this._dispatchChange();
+  }
+}
+
+
+
+
+
+/*!
+  Select all items.
+*/
+qx.Proto.selectAll = function()
+{
+  var oldVal = this._getChangeValue();
+
+  // Temporary disabling of event fire
+  var oldFireChange = this.getFireChange();
+  this.setFireChange(false);
+
+  // Call sub method to select all items
+  this._selectAll();
+
+  // Recover change event status
+  this.setFireChange(oldFireChange);
+
+  // Dispatch change Event
+  if (oldFireChange && this._hasChanged(oldVal)) {
+    this._dispatchChange();
+  }
+}
+
+/*!
+  Sub method for selectAll. Handles the real work
+  to select all items.
+*/
+qx.Proto._selectAll = function()
+{
+  if (!this.getMultiSelection()) {
+    return;
+  }
+
+  var vItem;
+  var vItems = this.getItems();
+  var vItemsLength = vItems.length;
+
+  // Reset current selection hash
+  this._selectedItems.removeAll();
+
+  for (var i=0; i<vItemsLength; i++)
+  {
+    vItem = vItems[i];
+
+    if (!this.getItemEnabled(vItem)) {
+      continue;
+    }
+
+    // Add item to selection
+    this._selectedItems.add(vItem);
+
+    // Render new state for item
+    this.renderItemSelectionState(vItem, true);
+  }
+
+  return true;
+}
+
+
+
+
+
+/*!
+  Deselect all items.
+*/
+qx.Proto.deselectAll = function()
+{
+  var oldVal = this._getChangeValue();
+
+  // Temporary disabling of event fire
+  var oldFireChange = this.getFireChange();
+  this.setFireChange(false);
+
+  // Call sub method to deselect all items
+  this._deselectAll();
+
+  // Recover change event status
+  this.setFireChange(oldFireChange);
+
+  // Dispatch change Event
+  if (oldFireChange && this._hasChanged(oldVal))
+    this._dispatchChange();
+  }
+
+/*!
+  Sub method for deselectAll. Handles the real work
+  to deselect all items.
+*/
+qx.Proto._deselectAll = function()
+{
+  // Render new state for items
+  var items = this._selectedItems.toArray();
+  for (var i = 0; i < items.length; i++) {
+    this.renderItemSelectionState(items[i], false);
+  }
+
+  // Delete all entries in selectedItems hash
+  this._selectedItems.removeAll();
+
+  return true;
+}
+
+
+
+
+/*!
+Select a range of items.
+
+#param vItem1[qx.ui.core.Widget]: Start item
+#param vItem2[qx.ui.core.Widget]: Stop item
+*/
+qx.Proto.selectItemRange = function(vItem1, vItem2)
+{
+  var oldVal = this._getChangeValue();
+
+  // Temporary disabling of event fire
+  var oldFireChange = this.getFireChange();
+  this.setFireChange(false);
+
+  // Call sub method to select the range of items
+  this._selectItemRange(vItem1, vItem2, true);
+
+  // Recover change event status
+  this.setFireChange(oldFireChange);
+
+  // Dispatch change Event
+  if (oldFireChange && this._hasChanged(oldVal)) {
+    this._dispatchChange();
+  }
+}
+
+
+
+
+/*!
+Sub method for selectItemRange. Handles the real work
+to select a range of items.
+
+#param vItem1[qx.ui.core.Widget]: Start item
+#param vItem2[qx.ui.core.Widget]: Stop item
+#param vDelect[Boolean]: Deselect currently selected items first?
+*/
+qx.Proto._selectItemRange = function(vItem1, vItem2, vDeselect)
+{
+  // this.debug("SELECT_RANGE: " + vItem1.toText() + "<->" + vItem2.toText());
+  // this.debug("SELECT_RANGE: " + vItem1.pos + "<->" + vItem2.pos);
+
+  // Pre-Check a revert call if vItem2 is before vItem1
+  if (this.isBefore(vItem2, vItem1)) {
+    return this._selectItemRange(vItem2, vItem1, vDeselect);
+  }
+
+  // Deselect all
+  if (vDeselect) {
+    this._deselectAll();
+  }
+
+  var vCurrentItem = vItem1;
+
+  while (vCurrentItem != null)
+  {
+    if (this.getItemEnabled(vCurrentItem))
+    {
+      // Add item to selection
+      this._selectedItems.add(vCurrentItem);
+
+      // Render new state for item
+      this.renderItemSelectionState(vCurrentItem, true);
+    }
+
+    // Stop here if we reached target item
+    if (this.isEqual(vCurrentItem, vItem2)) {
+      break;
+    }
+
+    // Get next item
+    vCurrentItem = this.getNext(vCurrentItem);
+  }
+
+  return true;
+}
+
+/*!
+Internal method for deselection of ranges.
+
+#param vItem1[qx.ui.core.Widget]: Start item
+#param vItem2[qx.ui.core.Widget]: Stop item
+*/
+qx.Proto._deselectItemRange = function(vItem1, vItem2)
+{
+  // Pre-Check a revert call if vItem2 is before vItem1
+  if (this.isBefore(vItem2, vItem1)) {
+    return this._deselectItemRange(vItem2, vItem1);
+  }
+
+  var vCurrentItem = vItem1;
+
+  while (vCurrentItem != null)
+  {
+    // Add item to selection
+    this._selectedItems.remove(vCurrentItem);
+
+    // Render new state for item
+    this.renderItemSelectionState(vCurrentItem, false);
+
+    // Stop here if we reached target item
+    if (this.isEqual(vCurrentItem, vItem2)) {
+      break;
+    }
+
+    // Get next item
+    vCurrentItem = this.getNext(vCurrentItem);
+  }
+}
+
+
+/*
+---------------------------------------------------------------------------
+  MOUSE EVENT HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._activeDragSession = false;
+
+qx.Proto.handleMouseDown = function(vItem, e)
+{
+  // Only allow left and right button
+  if (!e.isLeftButtonPressed() && !e.isRightButtonPressed()) {
+    return;
+  }
+
+  // Keep selection on right click on already selected item
+  if (e.isRightButtonPressed() && this.getItemSelected(vItem)) {
+    return;
+  }
+
+  // Shift Key
+  //   or
+  // Click on an unseleted item (without Strg)
+  if (e.getShiftKey() || this.getDragSelection() || (!this.getItemSelected(vItem) && !e.getCtrlKey()))
+  {
+    // Handle event
+    this._onmouseevent(vItem, e);
+  }
+  else
+  {
+    // Update lead item
+    this.setLeadItem(vItem);
+  }
+
+
+  // Handle dragging
+  this._activeDragSession = this.getDragSelection();
+
+  if (this._activeDragSession)
+  {
+    // Add mouseup listener and register as capture widget
+    this.getBoundedWidget().addEventListener("mouseup", this._ondragup, this);
+    this.getBoundedWidget().setCapture(true);
+  }
+}
+
+qx.Proto._ondragup = function(e)
+{
+  this.getBoundedWidget().removeEventListener("mouseup", this._ondragup, this);
+  this.getBoundedWidget().setCapture(false);
+  this._activeDragSession = false;
+}
+
+qx.Proto.handleMouseUp = function(vItem, e)
+{
+  if (!e.isLeftButtonPressed()) {
+    return;
+  }
+
+  if (e.getCtrlKey() || this.getItemSelected(vItem) && !this._activeDragSession) {
+    this._onmouseevent(vItem, e);
+  }
+
+  if (this._activeDragSession)
+  {
+    this._activeDragSession = false;
+    this.getBoundedWidget().setCapture(false);
+  }
+}
+
+qx.Proto.handleMouseOver = function(oItem, e)
+{
+  if (! this.getDragSelection() || !this._activeDragSession) {
+    return;
+  }
+
+  this._onmouseevent(oItem, e, true);
+}
+
+// currently unused placeholder
+qx.Proto.handleClick = function(vItem, e) {}
+
+// currently unused placeholder
+qx.Proto.handleDblClick = function(vItem, e) {}
+
+
+/*!
+Internal handler for all mouse events bound to this manager.
+*/
+qx.Proto._onmouseevent = function(oItem, e, bOver)
+{
+  if (!this.getItemEnabled(oItem)) {
+    return;
+  }
+
+  // ********************************************************************
+  //   Init
+  // ********************************************************************
+
+  // Cache current (old) values
+  var oldVal = this._getChangeValue();
+  var oldLead = this.getLeadItem();
+
+  // Temporary disabling of event fire
+  var oldFireChange = this.getFireChange();
+  this.setFireChange(false);
+
+  // Cache selection and count
+  var selectedItems = this.getSelectedItems();
+  var selectedCount = selectedItems.length;
+
+  // Update lead item
+  this.setLeadItem(oItem);
+
+  // Cache current anchor item
+  var currentAnchorItem = this.getAnchorItem();
+
+  // Cache keys pressed
+  var vCtrlKey = e.getCtrlKey();
+  var vShiftKey = e.getShiftKey();
+
+
+  // ********************************************************************
+  //   Do we need to update the anchor?
+  // ********************************************************************
+
+  if (!currentAnchorItem || selectedCount == 0 || (vCtrlKey && !vShiftKey && this.getMultiSelection() && !this.getDragSelection()))
+  {
+    this.setAnchorItem(oItem);
+    currentAnchorItem = oItem;
+  }
+
+
+
+  // ********************************************************************
+  //   Mode #1: Replace current selection with new one
+  // ********************************************************************
+  if ((!vCtrlKey && !vShiftKey && !this._activeDragSession || !this.getMultiSelection()))
+  {
+    if (!this.getItemEnabled(oItem)) {
+      return;
+    }
+
+    // Remove current selection
+    this._deselectAll();
+
+    // Update anchor item
+    this.setAnchorItem(oItem);
+
+    if (this._activeDragSession)
+    {
+      // a little bit hacky, but seems to be a fast way to detect if we slide to top or to bottom
+      this.scrollItemIntoView((this.getBoundedWidget().getScrollTop() > (this.getItemTop(oItem)-1) ? this.getPrevious(oItem) : this.getNext(oItem)) || oItem);
+    }
+
+    if (!this.getItemSelected(oItem)) {
+      this.renderItemSelectionState(oItem, true);
+    }
+
+    // Clear up and add new one
+    //this._selectedItems.removeAll();
+    this._selectedItems.add(oItem);
+
+    this._addToCurrentSelection = true;
+  }
+
+
+  // ********************************************************************
+  //   Mode #2: (De-)Select item range in mouse drag session
+  // ********************************************************************
+  else if (this._activeDragSession && bOver)
+  {
+    if (oldLead) {
+      this._deselectItemRange(currentAnchorItem, oldLead);
+    }
+
+    // Drag down
+    if (this.isBefore(currentAnchorItem, oItem))
+    {
+      if (this._addToCurrentSelection)
+      {
+        this._selectItemRange(currentAnchorItem, oItem, false);
+      }
+      else
+      {
+        this._deselectItemRange(currentAnchorItem, oItem);
+      }
+    }
+
+    // Drag up
+    else
+    {
+      if (this._addToCurrentSelection)
+      {
+        this._selectItemRange(oItem, currentAnchorItem, false);
+      }
+      else
+      {
+        this._deselectItemRange(oItem, currentAnchorItem);
+      }
+    }
+
+    // a little bit hacky, but seems to be a fast way to detect if we slide to top or to bottom
+    this.scrollItemIntoView((this.getBoundedWidget().getScrollTop() > (this.getItemTop(oItem)-1) ? this.getPrevious(oItem) : this.getNext(oItem)) || oItem);
+  }
+
+
+  // ********************************************************************
+  //   Mode #3: Add new item to current selection (ctrl pressed)
+  // ********************************************************************
+  else if (this.getMultiSelection() && vCtrlKey && !vShiftKey)
+  {
+    if (!this._activeDragSession) {
+      this._addToCurrentSelection = !(this.getCanDeselect() && this.getItemSelected(oItem));
+    }
+
+    this.setItemSelected(oItem, this._addToCurrentSelection);
+    this.setAnchorItem(oItem);
+  }
+
+
+  // ********************************************************************
+  //   Mode #4: Add new (or continued) range to selection
+  // ********************************************************************
+  else if (this.getMultiSelection() && vCtrlKey && vShiftKey)
+  {
+    if (!this._activeDragSession) {
+      this._addToCurrentSelection = !(this.getCanDeselect() && this.getItemSelected(oItem));
+    }
+
+    if (this._addToCurrentSelection)
+    {
+      this._selectItemRange(currentAnchorItem, oItem, false);
+    }
+    else
+    {
+      this._deselectItemRange(currentAnchorItem, oItem);
+    }
+  }
+
+  // ********************************************************************
+  //   Mode #5: Replace selection with new range selection
+  // ********************************************************************
+  else if (this.getMultiSelection() && !vCtrlKey && vShiftKey)
+  {
+    if (this.getCanDeselect())
+    {
+      this._selectItemRange(currentAnchorItem, oItem, true);
+    }
+
+    else
+    {
+      if (oldLead) {
+        this._deselectItemRange(currentAnchorItem, oldLead);
+      }
+
+      this._selectItemRange(currentAnchorItem, oItem, false);
+    }
+  }
+
+
+
+  // Recover change event status
+  this.setFireChange(oldFireChange);
+
+  // Dispatch change Event
+  if(oldFireChange && this._hasChanged(oldVal)) {
+    this._dispatchChange();
+  }
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  KEY EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.handleKeyDown = function(vDomEvent) {
+  this.warn(
+    "qx.manager.selection.SelectionManager.handleKeyDown is deprecated! " +
+    "Use keypress insted and bind it to the onkeypress event."
+  );
+  this.handleKeyPress(vDomEvent);
+}
+
+
+/**
+ * Handles key event to perform selection and navigation
+ *
+ * @param vDomEvent (Element) DOM event object
+ */
+qx.Proto.handleKeyPress = function(vDomEvent)
+{
+  var oldVal = this._getChangeValue();
+
+  // Temporary disabling of event fire
+  var oldFireChange = this.getFireChange();
+  this.setFireChange(false);
+
+  // Ctrl+A: Select all
+  if (vDomEvent.getKeyIdentifier() == "A" && vDomEvent.getCtrlKey())
+  {
+    if (this.getMultiSelection())
+    {
+      this._selectAll();
+
+      // Update lead item to this new last
+      // (or better here: first) selected item
+      this.setLeadItem(this.getFirst());
+    }
+  }
+
+  // Default operation
+  else
+  {
+    var aIndex = this.getAnchorItem();
+    var itemToSelect = this.getItemToSelect(vDomEvent);
+
+    // this.debug("Anchor: " + (aIndex ? aIndex.getLabel() : "null"));
+    // this.debug("ToSelect: " + (itemToSelect ? itemToSelect.getLabel() : "null"));
+
+    if (itemToSelect && this.getItemEnabled(itemToSelect))
+    {
+      // Update lead item to this new last selected item
+      this.setLeadItem(itemToSelect);
+
+      // Scroll new item into view
+      this.scrollItemIntoView(itemToSelect);
+
+      // Stop event handling
+      vDomEvent.preventDefault();
+
+      // Select a range
+      if (vDomEvent.getShiftKey() && this.getMultiSelection())
+      {
+        // Make it a little bit more failsafe:
+        // Set anchor if not given already. Allows us to select
+        // a range without any previous selection.
+        if (aIndex == null) {
+          this.setAnchorItem(itemToSelect);
+        }
+
+        // Select new range (and clear up current selection first)
+        this._selectItemRange(this.getAnchorItem(), itemToSelect, true);
+      }
+      else if (!vDomEvent.getCtrlKey())
+      {
+        // Clear current selection
+        this._deselectAll();
+
+        // Update new item to be selected
+        this.renderItemSelectionState(itemToSelect, true);
+
+        // Add item to new selection
+        this._selectedItems.add(itemToSelect);
+
+        // Update anchor to this new item
+        // (allows following shift range selection)
+        this.setAnchorItem(itemToSelect);
+      }
+      else if (vDomEvent.getKeyIdentifier() == "Space")
+      {
+        if (this._selectedItems.contains(itemToSelect))
+        {
+          // Update new item to be selected
+          this.renderItemSelectionState(itemToSelect, false);
+
+          // Add item to new selection
+          this._selectedItems.remove(itemToSelect);
+
+          // Fix anchor item
+          this.setAnchorItem(this._selectedItems.getFirst());
+        }
+        else
+        {
+          // Clear current selection
+          if (!vDomEvent.getCtrlKey() || !this.getMultiSelection()) {
+            this._deselectAll();
+          }
+
+          // Update new item to be selected
+          this.renderItemSelectionState(itemToSelect, true);
+
+          // Add item to new selection
+          this._selectedItems.add(itemToSelect);
+
+          // Update anchor to this new item
+          // (allows following shift range selection)
+          this.setAnchorItem(itemToSelect);
+        }
+      }
+    }
+  }
+
+  // Recover change event status
+  this.setFireChange(oldFireChange);
+
+  // Dispatch change Event
+  if (oldFireChange && this._hasChanged(oldVal)) {
+    this._dispatchChange();
+  }
+}
+
+qx.Proto.getItemToSelect = function(vKeyboardEvent)
+{
+  // Don't handle ALT here
+  if (vKeyboardEvent.getAltKey()) {
+    return null;
+  }
+
+  // Handle event by keycode
+  switch (vKeyboardEvent.getKeyIdentifier())
+  {
+    case "Home":
+      return this.getHome(this.getLeadItem());
+
+    case "End":
+      return this.getEnd(this.getLeadItem());
+
+
+    case "Down":
+      return this.getDown(this.getLeadItem());
+
+    case "Up":
+      return this.getUp(this.getLeadItem());
+
+
+    case "Left":
+      return this.getLeft(this.getLeadItem());
+
+    case "Right":
+      return this.getRight(this.getLeadItem());
+
+
+    case "PageUp":
+      return this.getPageUp(this.getLeadItem()) || this.getHome(this.getLeadItem());
+
+    case "PageDown":
+      return this.getPageDown(this.getLeadItem()) || this.getEnd(this.getLeadItem());
+
+
+    case "Space":
+      if (vKeyboardEvent.getCtrlKey()) {
+        return this.getLeadItem();
+      }
+  }
+
+  return null;
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHANGE HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._dispatchChange = function()
+{
+  if (!this.getFireChange()) {
+    return;
+  }
+
+  if (this.hasEventListeners("changeSelection")) {
+    this.dispatchEvent(new qx.event.type.DataEvent("changeSelection", this.getSelectedItems()), true);
+  }
+}
+
+qx.Proto._hasChanged = function(sOldValue) {
+  return sOldValue != this._getChangeValue();
+}
+
+qx.Proto._getChangeValue = function() {
+  return this._selectedItems.getChangeValue();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  POSITION HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getHome = function() {
+  return this.getFirst();
+}
+
+qx.Proto.getEnd = function() {
+  return this.getLast();
+}
+
+qx.Proto.getDown = function(vItem)
+{
+  if (!vItem) {
+    return this.getFirst();
+  }
+
+  return this.getMultiColumnSupport() ? (this.getUnder(vItem) || this.getLast()) : this.getNext(vItem);
+}
+
+qx.Proto.getUp = function(vItem)
+{
+  if (!vItem) {
+    return this.getLast();
+  }
+
+  return this.getMultiColumnSupport() ? (this.getAbove(vItem) || this.getFirst()) : this.getPrevious(vItem);
+}
+
+qx.Proto.getLeft = function(vItem)
+{
+  if (!this.getMultiColumnSupport()) {
+    return null;
+  }
+
+  return !vItem ? this.getLast() : this.getPrevious(vItem);
+}
+
+qx.Proto.getRight = function(vItem)
+{
+  if (!this.getMultiColumnSupport()) {
+    return null;
+  }
+
+  return !vItem ? this.getFirst() : this.getNext(vItem);
+}
+
+qx.Proto.getAbove = function(vItem)
+{
+  throw new Error("getAbove(): Not implemented yet");
+}
+
+qx.Proto.getUnder = function(vItem)
+{
+  throw new Error("getUnder(): Not implemented yet");
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PAGE HANDLING
+---------------------------------------------------------------------------
+*/
+
+/*!
+Jump a "page" up.
+
+#param vItem[qx.ui.core.Widget]: Relative to this widget
+*/
+qx.Proto.getPageUp = function(vItem)
+{
+  var vBoundedWidget = this.getBoundedWidget();
+  var vParentScrollTop = vBoundedWidget.getScrollTop();
+  var vParentClientHeight = vBoundedWidget.getClientHeight();
+
+  // Find next item
+  var newItem;
+  var nextItem = this.getLeadItem();
+  if (!nextItem) {
+    nextItem = this.getFirst();
+  }
+
+  // Normally we should reach the status "lead" for the
+  // nextItem after two iterations.
+  var tryLoops = 0;
+  while (tryLoops < 2)
+  {
+    while (nextItem && (this.getItemTop(nextItem) - this.getItemHeight(nextItem) >= vParentScrollTop)) {
+      nextItem = this.getUp(nextItem);
+    }
+
+    // This should never occour after the fix above
+    if (nextItem == null) {
+      break;
+    }
+
+    // If the nextItem is not anymore the leadItem
+    // Means: There has occured a change.
+    // We break here. This is normally the second step.
+    if (nextItem != this.getLeadItem())
+    {
+      // be sure that the top is reached
+      this.scrollItemIntoView(nextItem, true);
+      break;
+    }
+
+    // Update scrolling (this is normally the first step)
+    // this.debug("Scroll-Up: " + (vParentScrollTop + vParentClientHeight - 2 * this.getItemHeight(nextItem)));
+    vBoundedWidget.setScrollTop(vParentScrollTop - vParentClientHeight - this.getItemHeight(nextItem));
+
+    // Use the real applied value instead of the calulated above
+    vParentScrollTop = vBoundedWidget.getScrollTop();
+
+    // Increment counter
+    tryLoops++;
+  }
+
+  return nextItem;
+}
+
+/*!
+Jump a "page" down.
+
+#param vItem[qx.ui.core.Widget]: Relative to this widget
+*/
+qx.Proto.getPageDown = function(vItem)
+{
+  var vBoundedWidget = this.getBoundedWidget();
+  var vParentScrollTop = vBoundedWidget.getScrollTop();
+  var vParentClientHeight = vBoundedWidget.getClientHeight();
+
+  // this.debug("Bound: " + (vBoundedWidget._getTargetNode() != vBoundedWidget.getElement()));
+
+  // this.debug("ClientHeight-1: " + vBoundedWidget._getTargetNode().clientHeight);
+  // this.debug("ClientHeight-2: " + vBoundedWidget.getElement().clientHeight);
+
+  // Find next item
+  var newItem;
+  var nextItem = this.getLeadItem();
+  if (!nextItem) {
+    nextItem = this.getFirst();
+  }
+
+  // Normally we should reach the status "lead" for the
+  // nextItem after two iterations.
+  var tryLoops = 0;
+  while (tryLoops < 2)
+  {
+    // this.debug("Loop: " + tryLoops);
+    // this.debug("Info: " + nextItem + " :: " + (this.getItemTop(nextItem) + (2 * this.getItemHeight(nextItem))) + " <> " + (vParentScrollTop + vParentClientHeight));
+    // this.debug("Detail: " + vParentScrollTop + ", " + vParentClientHeight);
+
+    // Find next
+    while (nextItem && ((this.getItemTop(nextItem) + (2 * this.getItemHeight(nextItem))) <= (vParentScrollTop + vParentClientHeight))) {
+      nextItem = this.getDown(nextItem);
+    }
+
+    // This should never occour after the fix above
+    if (nextItem == null) {
+      break;
+    }
+
+    // If the nextItem is not anymore the leadItem
+    // Means: There has occured a change.
+    // We break here. This is normally the second step.
+    if (nextItem != this.getLeadItem()) {
+      break;
+    }
+
+    // Update scrolling (this is normally the first step)
+    // this.debug("Scroll-Down: " + (vParentScrollTop + vParentClientHeight - 2 * this.getItemHeight(nextItem)));
+    vBoundedWidget.setScrollTop(vParentScrollTop + vParentClientHeight - 2 * this.getItemHeight(nextItem));
+
+    // Use the real applied value instead of the calulated above
+    vParentScrollTop = vBoundedWidget.getScrollTop();
+
+    // Increment counter
+    tryLoops++;
+  }
+
+  //this.debug("Select: " + nextItem._labelObject.getHtml());
+
+  return nextItem;
+}
+
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if (this._selectedItems)
+  {
+    this._selectedItems.dispose();
+    this._selectedItems = null;
+  }
+
+  return qx.core.Target.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/TreeFullControlSelectionManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/TreeFullControlSelectionManager.js
new file mode 100644 (file)
index 0000000..6252964
--- /dev/null
@@ -0,0 +1,206 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_treefullcontrol)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.manager.selection.TreeFullControlSelectionManager", qx.manager.selection.SelectionManager,
+function(vBoundedWidget) {
+  qx.manager.selection.SelectionManager.call(this, vBoundedWidget);
+});
+
+/*!
+Should multiple selection be allowed?
+*/
+qx.OO.changeProperty({ name : "multiSelection", type : "boolean", defaultValue : false });
+
+/*!
+Enable drag selection?
+*/
+qx.OO.changeProperty({ name : "dragSelection", type : "boolean", defaultValue : false });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MAPPING TO BOUNDED WIDGET
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._getFirst = function() {
+  return qx.lang.Array.getFirst(this.getItems());
+}
+
+qx.Proto._getLast = function() {
+  return qx.lang.Array.getLast(this.getItems());
+}
+
+qx.Proto.getItems = function() {
+  return this.getBoundedWidget().getItems();
+}
+
+qx.Proto.getNext = function(vItem)
+{
+  if (vItem)
+  {
+    if (qx.ui.treefullcontrol.Tree.isOpenTreeFolder(vItem))
+    {
+      return vItem.getFirstVisibleChildOfFolder();
+    }
+    else if (vItem.isLastVisibleChild())
+    {
+      var vCurrent = vItem;
+
+      while(vCurrent && vCurrent.isLastVisibleChild()) {
+        vCurrent = vCurrent.getParentFolder();
+      }
+
+      if (vCurrent &&
+          vCurrent instanceof qx.ui.treefullcontrol.AbstractTreeElement &&
+          vCurrent.getNextVisibleSibling() &&
+          vCurrent.getNextVisibleSibling() instanceof qx.ui.treefullcontrol.AbstractTreeElement) {
+        return vCurrent.getNextVisibleSibling();
+      }
+    }
+    else
+    {
+      return vItem.getNextVisibleSibling();
+    }
+  }
+  else
+  {
+    return this.getBoundedWidget().getFirstTreeChild();
+  }
+}
+
+qx.Proto.getPrevious = function(vItem)
+{
+  if (vItem)
+  {
+    if (vItem == this.getBoundedWidget())
+    {
+      return;
+    }
+    else if (vItem.isFirstVisibleChild())
+    {
+      if (vItem.getParentFolder() instanceof qx.ui.treefullcontrol.TreeFolder) {
+        return vItem.getParentFolder();
+      }
+    }
+    else
+    {
+      var vPrev = vItem.getPreviousVisibleSibling();
+
+      if (vPrev instanceof qx.ui.treefullcontrol.AbstractTreeElement)
+      {
+        while (vPrev instanceof qx.ui.treefullcontrol.AbstractTreeElement)
+        {
+          if (qx.ui.treefullcontrol.Tree.isOpenTreeFolder(vPrev))
+          {
+            vPrev = vPrev.getLastVisibleChildOfFolder();
+          }
+          else
+          {
+            break;
+          }
+        }
+      }
+
+      return vPrev;
+    }
+  }
+  else
+  {
+    return this.getBoundedWidget().getLastTreeChild();
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MAPPING TO ITEM DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getItemTop = function(vItem)
+{
+  // Alternate method:
+  // return qx.dom.Location.getPageBoxTop(vItem.getElement()) - qx.dom.Location.getPageInnerTop(this.getBoundedWidget().getElement());
+
+  var vBoundedWidget = this.getBoundedWidget();
+  var vElement = vItem.getElement();
+  var vOffset = 0;
+
+  while (vElement && vElement.qx_Widget != vBoundedWidget)
+  {
+    vOffset += vElement.offsetTop;
+    vElement = vElement.parentNode;
+  }
+
+  return vOffset;
+}
+
+qx.Proto.getItemHeight = function(vItem)
+{
+  if (vItem instanceof qx.ui.treefullcontrol.TreeFolder &&
+      vItem._horizontalLayout)
+  {
+    return vItem._horizontalLayout.getOffsetHeight();
+  }
+  else
+  {
+    return vItem.getOffsetHeight();
+  }
+}
+
+qx.Proto.scrollItemIntoView = function(vItem)
+{
+  if (vItem instanceof qx.ui.treefullcontrol.TreeFolder &&
+      vItem._horizontalLayout)
+  {
+    return vItem._horizontalLayout.scrollIntoView();
+  }
+  else
+  {
+    return vItem.scrollIntoView();
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ITEM STATE MANAGMENT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.renderItemSelectionState = function(vItem, vIsSelected) {
+  vItem.setSelected(vIsSelected);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/TreeSelectionManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/TreeSelectionManager.js
new file mode 100644 (file)
index 0000000..d4dfe91
--- /dev/null
@@ -0,0 +1,198 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_tree)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.manager.selection.TreeSelectionManager", qx.manager.selection.SelectionManager,
+function(vBoundedWidget) {
+  qx.manager.selection.SelectionManager.call(this, vBoundedWidget);
+});
+
+/*!
+Should multiple selection be allowed?
+*/
+qx.OO.changeProperty({ name : "multiSelection", type : "boolean", defaultValue : false });
+
+/*!
+Enable drag selection?
+*/
+qx.OO.changeProperty({ name : "dragSelection", type : "boolean", defaultValue : false });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MAPPING TO BOUNDED WIDGET
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._getFirst = function() {
+  return qx.lang.Array.getFirst(this.getItems());
+}
+
+qx.Proto._getLast = function() {
+  return qx.lang.Array.getLast(this.getItems());
+}
+
+qx.Proto.getItems = function() {
+  return this.getBoundedWidget().getItems();
+}
+
+qx.Proto.getNext = function(vItem)
+{
+  if (vItem)
+  {
+    if (qx.ui.tree.Tree.isOpenTreeFolder(vItem))
+    {
+      return vItem.getFirstVisibleChildOfFolder();
+    }
+    else if (vItem.isLastVisibleChild())
+    {
+      var vCurrent = vItem;
+
+      while(vCurrent && vCurrent.isLastVisibleChild()) {
+        vCurrent = vCurrent.getParentFolder();
+      }
+
+      if (vCurrent && vCurrent instanceof qx.ui.tree.AbstractTreeElement && vCurrent.getNextVisibleSibling() && vCurrent.getNextVisibleSibling() instanceof qx.ui.tree.AbstractTreeElement) {
+        return vCurrent.getNextVisibleSibling();
+      }
+    }
+    else
+    {
+      return vItem.getNextVisibleSibling();
+    }
+  }
+  else
+  {
+    return this.getBoundedWidget().getFirstTreeChild();
+  }
+}
+
+qx.Proto.getPrevious = function(vItem)
+{
+  if (vItem)
+  {
+    if (vItem == this.getBoundedWidget())
+    {
+      return;
+    }
+    else if (vItem.isFirstVisibleChild())
+    {
+      if (vItem.getParentFolder() instanceof qx.ui.tree.TreeFolder) {
+        return vItem.getParentFolder();
+      }
+    }
+    else
+    {
+      var vPrev = vItem.getPreviousVisibleSibling();
+
+      while (vPrev instanceof qx.ui.tree.AbstractTreeElement)
+      {
+        if (qx.ui.tree.Tree.isOpenTreeFolder(vPrev))
+        {
+          vPrev = vPrev.getLastVisibleChildOfFolder();
+        }
+        else
+        {
+          break;
+        }
+      }
+
+      return vPrev;
+    }
+  }
+  else
+  {
+    return this.getBoundedWidget().getLastTreeChild();
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MAPPING TO ITEM DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getItemTop = function(vItem)
+{
+  // Alternate method:
+  // return qx.dom.Location.getPageBoxTop(vItem.getElement()) - qx.dom.Location.getPageInnerTop(this.getBoundedWidget().getElement());
+
+  var vBoundedWidget = this.getBoundedWidget();
+  var vElement = vItem.getElement();
+  var vOffset = 0;
+
+  while (vElement && vElement.qx_Widget != vBoundedWidget)
+  {
+    vOffset += vElement.offsetTop;
+    vElement = vElement.parentNode;
+  }
+
+  return vOffset;
+}
+
+qx.Proto.getItemHeight = function(vItem)
+{
+  if (vItem instanceof qx.ui.tree.TreeFolder && vItem._horizontalLayout)
+  {
+    return vItem._horizontalLayout.getOffsetHeight();
+  }
+  else
+  {
+    return vItem.getOffsetHeight();
+  }
+}
+
+qx.Proto.scrollItemIntoView = function(vItem)
+{
+  if (vItem instanceof qx.ui.tree.TreeFolder && vItem._horizontalLayout)
+  {
+    return vItem._horizontalLayout.scrollIntoView();
+  }
+  else
+  {
+    return vItem.scrollIntoView();
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ITEM STATE MANAGMENT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.renderItemSelectionState = function(vItem, vIsSelected) {
+  vItem.setSelected(vIsSelected);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/VirtualSelectionManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/VirtualSelectionManager.js
new file mode 100644 (file)
index 0000000..a3dbe19
--- /dev/null
@@ -0,0 +1,143 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_listview)
+
+************************************************************************ */
+
+/*!
+  This class represents a selection and manage incoming events for widgets which need selection support.
+*/
+qx.OO.defineClass("qx.manager.selection.VirtualSelectionManager", qx.manager.selection.SelectionManager,
+function(vBoundedWidget) {
+  qx.manager.selection.SelectionManager.call(this, vBoundedWidget);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MAPPING TO BOUNDED WIDGET
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getFirst = function() {
+  return qx.lang.Array.getFirst(this.getItems());
+}
+
+qx.Proto.getLast = function() {
+  return qx.lang.Array.getLast(this.getItems());
+}
+
+qx.Proto.getItems = function() {
+  return this.getBoundedWidget().getData();
+}
+
+qx.Proto.getNextSibling = function(vItem)
+{
+  var vData = this.getItems();
+  return vData[vData.indexOf(vItem)+1];
+}
+
+qx.Proto.getPreviousSibling = function(vItem)
+{
+  var vData = this.getItems();
+  return vData[vData.indexOf(vItem)-1];
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MAPPING TO ITEM PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getItemHashCode = function(oItem)
+{
+  if (oItem._hash) {
+    return oItem._hash;
+  }
+
+  return oItem._hash = qx.core.Object.toHashCode(oItem);
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MAPPING TO ITEM DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.scrollItemIntoView = function(vItem, vTopLeft) {
+  this.getBoundedWidget().scrollItemIntoView(vItem, vTopLeft);
+}
+
+qx.Proto.getItemLeft = function(vItem) {
+  return this.getBoundedWidget().getItemLeft(vItem);
+}
+
+qx.Proto.getItemTop = function(vItem) {
+  return this.getBoundedWidget().getItemTop(vItem);
+}
+
+qx.Proto.getItemWidth = function(vItem) {
+  return this.getBoundedWidget().getItemWidth(vItem);
+}
+
+qx.Proto.getItemHeight = function(vItem) {
+  return this.getBoundedWidget().getItemHeight(vItem);
+}
+
+/*!
+  In a qx.ui.listview.ListView there are no disabled entries support currently.
+*/
+qx.Proto.getItemEnabled = function(vItem) {
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ITEM STATE MANAGMENT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.renderItemSelectionState = function(vItem, vIsSelected) {
+  this.getBoundedWidget()._updateSelectionState(vItem, vIsSelected);
+}
+
+qx.Proto.renderItemAnchorState = function(vItem, vIsAnchor) {
+  this.getBoundedWidget()._updateAnchorState(vItem, vIsAnchor);
+}
+
+qx.Proto.renderItemLeadState = function(vItem, vIsLead) {
+  this.getBoundedWidget()._updateLeadState(vItem, vIsLead);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/net/Http.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/net/Http.js
new file mode 100644 (file)
index 0000000..33a9075
--- /dev/null
@@ -0,0 +1,31 @@
+/* ************************************************************************\r
+\r
+   qooxdoo - the new era of web development\r
+\r
+   http://qooxdoo.org\r
+\r
+   Copyright:\r
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org\r
+\r
+   License:\r
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html\r
+\r
+   Authors:\r
+     * Sebastian Werner (wpbasti)\r
+     * Andreas Ecker (ecker)\r
+\r
+************************************************************************ */\r
+\r
+/* ************************************************************************\r
+\r
+\r
+************************************************************************ */\r
+\r
+qx.OO.defineClass("qx.net.Http",\r
+{\r
+  METHOD_GET : "GET",\r
+  METHOD_POST : "POST",\r
+  METHOD_PUT : "PUT",\r
+  METHOD_HEAD : "HEAD",\r
+  METHOD_DELETE : "DELETE"\r
+});\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/net/Protocol.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/net/Protocol.js
new file mode 100644 (file)
index 0000000..f28f077
--- /dev/null
@@ -0,0 +1,35 @@
+/* ************************************************************************\r
+\r
+   qooxdoo - the new era of web development\r
+\r
+   http://qooxdoo.org\r
+\r
+   Copyright:\r
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org\r
+\r
+   License:\r
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html\r
+\r
+   Authors:\r
+     * Sebastian Werner (wpbasti)\r
+     * Andreas Ecker (ecker)\r
+\r
+************************************************************************ */\r
+\r
+/* ************************************************************************\r
+\r
+\r
+************************************************************************ */\r
+\r
+qx.OO.defineClass("qx.net.Protocol",\r
+{\r
+  HTTP : "http",\r
+  HTTPS : "https",\r
+  FTP : "ftp",\r
+  FILE : "file",\r
+\r
+  URI_HTTP : "http://",\r
+  URI_HTTPS : "https://",\r
+  URI_FTP : "ftp://",\r
+  URI_FILE : "file://"\r
+});\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/Border.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/Border.js
new file mode 100644 (file)
index 0000000..37bee91
--- /dev/null
@@ -0,0 +1,1184 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#require(qx.sys.Client)
+#load(qx.renderer.border.BorderObject)
+
+************************************************************************ */
+
+/*!
+  Border implementation for qx.ui.core.Widget instances.
+*/
+qx.OO.defineClass("qx.renderer.border.Border", qx.core.Object,
+function(vWidth, vStyle, vColor)
+{
+  qx.core.Object.call(this);
+
+  this._themedEdges = {};
+  this._initCache();
+
+  if (qx.util.Validation.isValidNumber(vWidth))
+  {
+    this.setWidth(vWidth);
+
+    if (qx.util.Validation.isValidString(vStyle)) {
+      this.setStyle(vStyle);
+    }
+
+    if (qx.util.Validation.isValid(vColor)) {
+      this.setColor(vColor);
+    }
+  }
+});
+
+
+qx.Class.enhancedCrossBrowserMode = true;
+
+qx.Proto._needsCompilationTop = true;
+qx.Proto._needsCompilationRight = true;
+qx.Proto._needsCompilationBottom = true;
+qx.Proto._needsCompilationLeft = true;
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "topWidth", type : "number", defaultValue : 0, impl : "borderTopProperty" });
+qx.OO.addProperty({ name : "rightWidth", type : "number", defaultValue : 0, impl : "borderRightProperty" });
+qx.OO.addProperty({ name : "bottomWidth", type : "number", defaultValue : 0, impl : "borderBottomProperty" });
+qx.OO.addProperty({ name : "leftWidth", type : "number", defaultValue : 0, impl : "borderLeftProperty" });
+
+qx.OO.addProperty({ name : "topStyle", type : "string", defaultValue : "none", impl : "borderTopProperty" });
+qx.OO.addProperty({ name : "rightStyle", type : "string", defaultValue : "none", impl : "borderRightProperty" });
+qx.OO.addProperty({ name : "bottomStyle", type : "string", defaultValue : "none", impl : "borderBottomProperty" });
+qx.OO.addProperty({ name : "leftStyle", type : "string", defaultValue : "none", impl : "borderLeftProperty" });
+
+qx.OO.addProperty({ name : "topColor", impl : "borderTopProperty", type : "object", instance : "qx.renderer.color.Color", convert : qx.renderer.color.ColorCache });
+qx.OO.addProperty({ name : "rightColor", impl : "borderRightProperty", type : "object", instance : "qx.renderer.color.Color", convert : qx.renderer.color.ColorCache });
+qx.OO.addProperty({ name : "bottomColor", impl : "borderBottomProperty", type : "object", instance : "qx.renderer.color.Color", convert : qx.renderer.color.ColorCache });
+qx.OO.addProperty({ name : "leftColor", impl : "borderLeftProperty", type : "object", instance : "qx.renderer.color.Color", convert : qx.renderer.color.ColorCache });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITY
+---------------------------------------------------------------------------
+*/
+
+qx.renderer.border.Border.fromString = function(vDefString)
+{
+  var vBorder = new qx.renderer.border.Border;
+  var vAllParts = vDefString.split(/\s+/);
+  var vPart, vTemp;
+
+  for (var i=0; i<vAllParts.length; i++)
+  {
+    switch(vPart = vAllParts[i])
+    {
+      case "groove":
+      case "ridge":
+      case "inset":
+      case "outset":
+      case "solid":
+      case "dotted":
+      case "dashed":
+      case "double":
+      case "none":
+        vBorder.setStyle(vPart);
+        break;
+
+      default:
+        vTemp = parseFloat(vPart);
+
+        if(vTemp == vPart || qx.lang.String.contains(vPart, "px"))
+        {
+          vBorder.setWidth(vTemp);
+        }
+        else
+        {
+          vPart = vPart.toLowerCase();
+          vBorder.setColor(new qx.renderer.color.Color(vPart));
+        }
+
+        break;
+    }
+  }
+
+  return vBorder;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  COMPATIBILITY TO qx.renderer.border.BorderOBJECT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.addListenerWidget = qx.util.Return.returnTrue;
+qx.Proto.removeListenerWidget = qx.util.Return.returnTrue;
+
+qx.Proto._sync = qx.util.Return.returnTrue;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  COMBINED SETTERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.setWidth = function(vWidth)
+{
+  this.setTopWidth(vWidth);
+  this.setRightWidth(vWidth);
+  this.setBottomWidth(vWidth);
+  this.setLeftWidth(vWidth);
+
+  return true;
+}
+
+qx.Proto.setStyle = function(vStyle)
+{
+  this.setTopStyle(vStyle);
+  this.setRightStyle(vStyle);
+  this.setBottomStyle(vStyle);
+  this.setLeftStyle(vStyle);
+
+  return true;
+}
+
+qx.Proto.setColor = function(vColor)
+{
+  this.setTopColor(vColor);
+  this.setRightColor(vColor);
+  this.setBottomColor(vColor);
+  this.setLeftColor(vColor);
+
+  return true;
+}
+
+
+
+
+qx.Proto.setTop = function(vWidth, vStyle, vColor)
+{
+  this.setTopWidth(vWidth);
+  this.setTopStyle(vStyle);
+  this.setTopColor(vColor);
+
+  return true;
+}
+
+qx.Proto.setRight = function(vWidth, vStyle, vColor)
+{
+  this.setRightWidth(vWidth);
+  this.setRightStyle(vStyle);
+  this.setRightColor(vColor);
+
+  return true;
+}
+
+qx.Proto.setBottom = function(vWidth, vStyle, vColor)
+{
+  this.setBottomWidth(vWidth);
+  this.setBottomStyle(vStyle);
+  this.setBottomColor(vColor);
+
+  return true;
+}
+
+qx.Proto.setLeft = function(vWidth, vStyle, vColor)
+{
+  this.setLeftWidth(vWidth);
+  this.setLeftStyle(vStyle);
+  this.setLeftColor(vColor);
+
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INITIALISATION OF CACHE
+---------------------------------------------------------------------------
+*/
+
+
+if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.Proto._initCache = function()
+  {
+    this._defsX =
+    {
+      borderLeft : "",
+      borderRight : "",
+
+      MozBorderLeftColors : "",
+      MozBorderRightColors : ""
+    }
+
+    this._defsY =
+    {
+      borderTop : "",
+      borderBottom : "",
+
+      MozBorderTopColors : "",
+      MozBorderBottomColors : ""
+    }
+  }
+}
+else
+{
+  qx.Proto._initCache = function()
+  {
+    this._defsX =
+    {
+      borderLeft : "",
+      borderRight : ""
+    }
+
+    this._defsY =
+    {
+      borderTop : "",
+      borderBottom : ""
+    }
+
+    if (qx.renderer.border.Border.enhancedCrossBrowserMode)
+    {
+      this._enhancedDefsX =
+      {
+        borderLeft : "",
+        borderRight : ""
+      }
+
+      this._enhancedDefsY =
+      {
+        borderTop : "",
+        borderBottom : ""
+      }
+    }
+  }
+}
+
+
+/*
+---------------------------------------------------------------------------
+  BORDER MODIFIER AND SYNCER
+---------------------------------------------------------------------------
+*/
+
+if (qx.sys.Client.getInstance().isGecko() || qx.renderer.border.Border.enhancedCrossBrowserMode)
+{
+  qx.Proto._addToThemed3DColors = function(vProp)
+  {
+    var needRegistering = qx.lang.Object.isEmpty(this._themedEdges);
+
+    this._themedEdges[vProp] = true;
+
+    if (needRegistering)
+    {
+      (new qx.renderer.color.ColorObject("ThreeDDarkShadow")).add(this);
+      (new qx.renderer.color.ColorObject("ThreeDShadow")).add(this);
+      (new qx.renderer.color.ColorObject("ThreeDLightShadow")).add(this);
+      (new qx.renderer.color.ColorObject("ThreeDHighlight")).add(this);
+    }
+  }
+
+  qx.Proto._removeFromThemed3DColors = function(vProp)
+  {
+    delete this._themedEdges[vProp];
+
+    if (qx.lang.Object.isEmpty(this._themedEdges))
+    {
+      (new qx.renderer.color.ColorObject("ThreeDDarkShadow")).remove(this);
+      (new qx.renderer.color.ColorObject("ThreeDShadow")).remove(this);
+      (new qx.renderer.color.ColorObject("ThreeDLightShadow")).remove(this);
+      (new qx.renderer.color.ColorObject("ThreeDHighlight")).remove(this);
+    }
+  }
+}
+else
+{
+  qx.Proto._addToThemed3DColors = function(vProp)
+  {
+    var needRegistering = qx.lang.Object.isEmpty(this._themedEdges);
+
+    this._themedEdges[vProp] = true;
+
+    if (needRegistering)
+    {
+      (new qx.renderer.color.ColorObject("ThreeDLightShadow")).add(this);
+    }
+  }
+
+  qx.Proto._removeFromThemed3DColors = function(vProp)
+  {
+    delete this._themedEdges[vProp];
+
+    if (qx.lang.Object.isEmpty(this._themedEdges))
+    {
+      (new qx.renderer.color.ColorObject("ThreeDLightShadow")).remove(this);
+    }
+  }
+}
+
+
+
+
+
+qx.renderer.border.Border.data =
+{
+  1 :
+  {
+    outset :
+    {
+      top : [ "threedhighlight" ],
+      right : [ "threedshadow" ],
+      bottom : [ "threedshadow" ],
+      left : [ "threedhighlight" ]
+    },
+
+    inset :
+    {
+      top : [ "threedshadow" ],
+      right : [ "threedhighlight" ],
+      bottom : [ "threedhighlight" ],
+      left : [ "threedshadow" ]
+    }
+  },
+
+  2 :
+  {
+    outset :
+    {
+      top : [ "threedlightshadow", "threedhighlight" ],
+      right : [ "threeddarkshadow", "threedshadow" ],
+      bottom : [ "threeddarkshadow", "threedshadow" ],
+      left : [ "threedlightshadow", "threedhighlight" ]
+    },
+
+    inset :
+    {
+      top : [ "threedshadow", "threeddarkshadow" ],
+      right : [ "threedhighlight", "threedlightshadow" ],
+      bottom : [ "threedhighlight", "threedlightshadow" ],
+      left : [ "threedshadow", "threeddarkshadow" ]
+    },
+
+    ridge :
+    {
+      top : [ "threedhighlight", "threedshadow" ],
+      right : [ "threedshadow", "threedhighlight" ],
+      bottom : [ "threedshadow", "threedhighlight" ],
+      left : [ "threedhighlight", "threedshadow" ]
+    },
+
+    groove :
+    {
+      top : [ "threedshadow", "threedhighlight" ],
+      right : [ "threedhighlight", "threedshadow" ],
+      bottom : [ "threedhighlight", "threedshadow" ],
+      left : [ "threedshadow", "threedhighlight" ]
+    }
+  }
+}
+
+
+
+
+
+qx.Proto._generateDefString = function(vWidth, vStyle, vColor)
+{
+  if (typeof vWidth !== "number" || vWidth < 0) {
+    return "";
+  }
+
+  var vArr = [ vWidth + "px" ];
+
+  if (qx.util.Validation.isValidString(vStyle)) {
+    vArr.push(vStyle);
+  }
+
+  if (qx.util.Validation.isValidObject(vColor) && vColor instanceof qx.renderer.color.Color) {
+    vColor = vColor.getStyle();
+  }
+
+  if (qx.util.Validation.isValidString(vColor)) {
+    vArr.push(vColor);
+  }
+
+  return vArr.join(" ");
+}
+
+
+
+
+// TODO: Add more smartness ;)
+// Only update the border edges which depends on this color object
+qx.Proto._updateColors = function(vColorObject, vNewValue)
+{
+  this._needsCompilationTop = true;
+  this._needsCompilationRight = true;
+  this._needsCompilationBottom = true;
+  this._needsCompilationLeft = true;
+
+  this._sync("top");
+  this._sync("right");
+  this._sync("bottom");
+  this._sync("left");
+}
+
+
+
+
+
+
+
+qx.Proto._handleColorRegistration = function(propValue, propOldValue, propData)
+{
+  if (qx.lang.String.contains(propData.name, "Style"))
+  {
+    switch(propValue)
+    {
+      case "outset":
+      case "inset":
+      case "groove":
+      case "ridge":
+        this._addToThemed3DColors(propData.name);
+        break;
+
+      default:
+        this._removeFromThemed3DColors(propData.name);
+    }
+  }
+
+  if (qx.lang.String.contains(propData.name, "Color"))
+  {
+    if (propOldValue instanceof qx.renderer.color.ColorObject)
+    {
+      // detect if there are no other deps anymore
+      switch(propOldValue)
+      {
+        case this.getTopColor():
+        case this.getRightColor():
+        case this.getBottomColor():
+        case this.getLeftColor():
+          break;
+
+        default:
+          propOldValue.remove(this);
+      }
+    }
+
+    if (propValue instanceof qx.renderer.color.ColorObject)
+    {
+      // simply add, internal storage is a hash key so
+      // this is not a problem also if this is already
+      // registered there.
+      propValue.add(this);
+    }
+  }
+}
+
+
+
+
+
+
+
+
+qx.Proto._modifyBorderTopProperty = function(propValue, propOldValue, propData)
+{
+  this._handleColorRegistration(propValue, propOldValue, propData);
+
+  this._needsCompilationTop = true;
+  this._useEnhancedCrossBrowserMode = null;
+
+  this._sync("top");
+
+  return true;
+}
+
+qx.Proto._modifyBorderRightProperty = function(propValue, propOldValue, propData)
+{
+  this._handleColorRegistration(propValue, propOldValue, propData);
+
+  this._needsCompilationRight = true;
+  this._useEnhancedCrossBrowserMode = null;
+
+  this._sync("right");
+
+  return true;
+}
+
+qx.Proto._modifyBorderBottomProperty = function(propValue, propOldValue, propData)
+{
+  this._handleColorRegistration(propValue, propOldValue, propData);
+
+  this._needsCompilationBottom = true;
+  this._useEnhancedCrossBrowserMode = null;
+
+  this._sync("bottom");
+
+  return true;
+}
+
+qx.Proto._modifyBorderLeftProperty = function(propValue, propOldValue, propData)
+{
+  this._handleColorRegistration(propValue, propOldValue, propData);
+
+  this._needsCompilationLeft = true;
+  this._useEnhancedCrossBrowserMode = null;
+
+  this._sync("left");
+
+  return true;
+}
+
+
+
+
+
+
+
+
+
+qx.Proto.getUseEnhancedCrossBrowserMode = function()
+{
+  if (this._useEnhancedCrossBrowserMode == null) {
+    this._useEnhancedCrossBrowserMode = this._evalUseEnhancedCrossBrowserMode();
+  }
+
+  return this._useEnhancedCrossBrowserMode;
+}
+
+qx.Proto._evalUseEnhancedCrossBrowserMode = function()
+{
+  if (this.getTopWidth() == 2) {
+    switch(this.getTopStyle()) {
+      case "outset": case "inset": case "groove": case "ridge": return true;
+    }
+  }
+
+  if (this.getRightWidth() == 2) {
+    switch(this.getRightStyle()) {
+      case "outset": case "inset": case "groove": case "ridge": return true;
+    }
+  }
+
+  if (this.getBottomWidth() == 2) {
+    switch(this.getBottomStyle()) {
+      case "outset": case "inset": case "groove": case "ridge": return true;
+    }
+  }
+
+  if (this.getLeftWidth() == 2) {
+    switch(this.getLeftStyle()) {
+      case "outset": case "inset": case "groove": case "ridge": return true;
+    }
+  }
+
+  return false;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  BORDER APPLY IMPLEMENTATION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._applyWidget = function(o)
+{
+  this._applyWidgetX(o);
+  this._applyWidgetY(o);
+}
+
+qx.Proto._resetWidget = function(o)
+{
+  this._resetWidgetX(o);
+  this._resetWidgetY(o);
+}
+
+qx.Proto._resetWidgetX = function(o) {
+  return qx.renderer.border.Border._resetBorderX(o);
+}
+
+qx.Proto._resetWidgetY = function(o) {
+  return qx.renderer.border.Border._resetBorderY(o);
+}
+
+qx.Proto._applyWidgetXCommon = function(vObject)
+{
+  if (this._needsCompilationLeft) {
+    this._compileLeft();
+  }
+
+  if (this._needsCompilationRight) {
+    this._compileRight();
+  }
+
+  for (var i in this._defsX) {
+    vObject._style[i] = this._defsX[i];
+  }
+
+  if (!qx.sys.Client.getInstance().isGecko() && qx.renderer.border.Border.enhancedCrossBrowserMode)
+  {
+    if (this.getUseEnhancedCrossBrowserMode()) {
+      vObject._createElementForEnhancedBorder();
+    }
+
+    if (vObject._borderStyle)
+    {
+      for (var i in this._enhancedDefsX) {
+        vObject._borderStyle[i] = this._enhancedDefsX[i];
+      }
+    }
+  }
+}
+
+qx.Proto._applyWidgetYCommon = function(vObject)
+{
+  if (this._needsCompilationTop) {
+    this._compileTop();
+  }
+
+  if (this._needsCompilationBottom) {
+    this._compileBottom();
+  }
+
+  for (var i in this._defsY) {
+    vObject._style[i] = this._defsY[i];
+  }
+
+  if (!qx.sys.Client.getInstance().isGecko() && qx.renderer.border.Border.enhancedCrossBrowserMode)
+  {
+    if (this.getUseEnhancedCrossBrowserMode()) {
+      vObject._createElementForEnhancedBorder();
+    }
+
+    if (vObject._borderStyle)
+    {
+      for (var i in this._enhancedDefsY) {
+        vObject._borderStyle[i] = this._enhancedDefsY[i];
+      }
+    }
+  }
+}
+
+if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.Proto._applyWidgetX = qx.Proto._applyWidgetXCommon;
+  qx.Proto._applyWidgetY = qx.Proto._applyWidgetYCommon;
+
+  qx.Proto._generateMozColorDefString = function(vWidth, vStyle, vEdge)
+  {
+    try
+    {
+      try {
+        var a = qx.renderer.border.Border.data[vWidth][vStyle][vEdge];
+      } catch(ex) {}
+
+      if (typeof a === "object")
+      {
+        for (var i=0, s=[], l=a.length; i<l; i++) {
+          s.push((new qx.renderer.color.ColorObject(a[i]).getStyle()));
+        }
+
+        return s.join(" ");
+      }
+    }
+    catch(ex) {
+      this.error("Failed to generate Mozilla Color Definition Strings", ex);
+    }
+
+    return "";
+  }
+
+  qx.Proto._compileTop = function()
+  {
+    var w=this.getTopWidth(), s=this.getTopStyle(), d=this._defsY;
+
+    d.borderTop = this._generateDefString(w, s, this.getTopColor());
+    d.MozBorderTopColors = this._generateMozColorDefString(w, s, "top");
+
+    this._needsCompilationTop = false;
+  }
+
+  qx.Proto._compileRight = function()
+  {
+    var w=this.getRightWidth(), s=this.getRightStyle(), d=this._defsX;
+
+    d.borderRight = this._generateDefString(w, s, this.getRightColor());
+    d.MozBorderRightColors = this._generateMozColorDefString(w, s, "right");
+
+    this._needsCompilationRight = false;
+  }
+
+  qx.Proto._compileBottom = function()
+  {
+    var w=this.getBottomWidth(), s=this.getBottomStyle(), d=this._defsY;
+
+    d.borderBottom = this._generateDefString(w, s, this.getBottomColor());
+    d.MozBorderBottomColors = this._generateMozColorDefString(w, s, "bottom");
+
+    this._needsCompilationBottom = false;
+  }
+
+  qx.Proto._compileLeft = function()
+  {
+    var w=this.getLeftWidth(), s=this.getLeftStyle(), d=this._defsX;
+
+    d.borderLeft = this._generateDefString(w, s, this.getLeftColor());
+    d.MozBorderLeftColors = this._generateMozColorDefString(w, s, "left");
+
+    this._needsCompilationLeft = false;
+  }
+
+  qx.renderer.border.Border._resetBorderX = function(o)
+  {
+    var s = o._style;
+    s.borderLeft = s.borderRight = s.MozBorderLeftColors = s.MozBorderRightColors = "";
+  }
+
+  qx.renderer.border.Border._resetBorderY = function(o)
+  {
+    var s = o._style;
+    s.borderTop = s.borderBottom = s.MozBorderTopColors = s.MozBorderBottomColors = "";
+  }
+}
+else
+{
+  qx.Proto._applyWidgetX = function(vObject)
+  {
+    this._applyWidgetXCommon(vObject);
+
+    if (qx.renderer.border.Border.enhancedCrossBrowserMode)
+    {
+      if (this.getUseEnhancedCrossBrowserMode()) {
+        vObject._createElementForEnhancedBorder();
+      }
+
+      if (vObject._borderStyle)
+      {
+        for (var i in this._enhancedDefsX) {
+          vObject._borderStyle[i] = this._enhancedDefsX[i];
+        }
+      }
+    }
+  }
+
+  qx.Proto._applyWidgetY = function(vObject)
+  {
+    this._applyWidgetYCommon(vObject);
+
+    if (qx.renderer.border.Border.enhancedCrossBrowserMode)
+    {
+      if (this.getUseEnhancedCrossBrowserMode()) {
+        vObject._createElementForEnhancedBorder();
+      }
+
+      if (vObject._borderStyle)
+      {
+        for (var i in this._enhancedDefsY) {
+          vObject._borderStyle[i] = this._enhancedDefsY[i];
+        }
+      }
+    }
+  }
+
+  qx.Proto._compileTop = function()
+  {
+    var vTopWidth = this.getTopWidth();
+    var vTopStyle = this.getTopStyle();
+    var vTopColor = this.getTopColor();
+
+    switch(vTopWidth)
+    {
+      case 1:
+        switch(vTopStyle)
+        {
+          case "outset":
+          case "inset":
+            vTopColor = (new qx.renderer.color.ColorObject(qx.renderer.border.Border.data[vTopWidth][vTopStyle]["top"][0]));
+            vTopStyle = "solid";
+        }
+
+        break;
+
+      case 2:
+        switch(vTopStyle)
+        {
+          case "outset":
+          case "inset":
+          case "groove":
+          case "ridge":
+            if (qx.renderer.border.Border.enhancedCrossBrowserMode)
+            {
+              try
+              {
+                var c = qx.renderer.border.Border.data[vTopWidth][vTopStyle]["top"];
+
+                if (typeof c === "object")
+                {
+                  vTopStyle = "solid";
+                  vTopWidth = 1;
+                  vTopColor = (new qx.renderer.color.ColorObject(c[1]));
+
+                  this._enhancedDefsY.borderTop = this._generateDefString(vTopWidth, vTopStyle, vTopColor);
+
+                  vTopColor = (new qx.renderer.color.ColorObject(c[0]));
+                }
+              }
+              catch(ex)
+              {
+                this.error("Failed to compile top border", ex);
+                this.warn("Details: Width=" + vTopWidth + ", Style=" + vTopStyle);
+              }
+            }
+            else
+            {
+              vTopColor = (new qx.renderer.color.ColorObject("threedlightshadow"));
+            }
+        }
+
+        break;
+    }
+
+    this._defsY.borderTop = this._generateDefString(vTopWidth, vTopStyle, vTopColor);
+    this._needsCompilationTop = false;
+  }
+
+  qx.Proto._compileRight = function()
+  {
+    var vRightWidth = this.getRightWidth();
+    var vRightStyle = this.getRightStyle();
+    var vRightColor = this.getRightColor();
+
+    switch(vRightWidth)
+    {
+      case 1:
+        switch(vRightStyle)
+        {
+          case "outset":
+          case "inset":
+            vRightColor = (new qx.renderer.color.ColorObject(qx.renderer.border.Border.data[vRightWidth][vRightStyle]["right"][0]));
+            vRightStyle = "solid";
+        }
+
+        break;
+
+      case 2:
+        switch(vRightStyle)
+        {
+          case "outset":
+          case "inset":
+          case "groove":
+          case "ridge":
+            if (qx.renderer.border.Border.enhancedCrossBrowserMode)
+            {
+              try
+              {
+                var c = qx.renderer.border.Border.data[vRightWidth][vRightStyle]["right"];
+
+                if (typeof c === "object")
+                {
+                  vRightStyle = "solid";
+                  vRightWidth = 1;
+                  vRightColor = (new qx.renderer.color.ColorObject(c[1]));
+
+                  this._enhancedDefsX.borderRight = this._generateDefString(vRightWidth, vRightStyle, vRightColor);
+
+                  vRightColor = (new qx.renderer.color.ColorObject(c[0]));
+                }
+              }
+              catch(ex)
+              {
+                this.error("Failed to compile right border", ex);
+                this.warn("Details: Width=" + vRightWidth + ", Style=" + vRightStyle);
+              }
+            }
+            else
+            {
+              vRightColor = (new qx.renderer.color.ColorObject("threedlightshadow"));
+            }
+        }
+
+        break;
+    }
+
+    this._defsX.borderRight = this._generateDefString(vRightWidth, vRightStyle, vRightColor);
+    this._needsCompilationRight = false;
+  }
+
+  qx.Proto._compileBottom = function()
+  {
+    var vBottomWidth = this.getBottomWidth();
+    var vBottomStyle = this.getBottomStyle();
+    var vBottomColor = this.getBottomColor();
+
+    switch(vBottomWidth)
+    {
+      case 1:
+        switch(vBottomStyle)
+        {
+          case "outset":
+          case "inset":
+            vBottomColor = (new qx.renderer.color.ColorObject(qx.renderer.border.Border.data[vBottomWidth][vBottomStyle]["bottom"][0]));
+            vBottomStyle = "solid";
+        }
+
+        break;
+
+      case 2:
+        switch(vBottomStyle)
+        {
+          case "outset":
+          case "inset":
+          case "groove":
+          case "ridge":
+            if (qx.renderer.border.Border.enhancedCrossBrowserMode)
+            {
+              try
+              {
+                var c = qx.renderer.border.Border.data[vBottomWidth][vBottomStyle]["bottom"];
+
+                if (typeof c === "object")
+                {
+                  vBottomStyle = "solid";
+                  vBottomWidth = 1;
+                  vBottomColor = (new qx.renderer.color.ColorObject(c[1]));
+
+                  this._enhancedDefsY.borderBottom = this._generateDefString(vBottomWidth, vBottomStyle, vBottomColor);
+
+                  vBottomColor = (new qx.renderer.color.ColorObject(c[0]));
+                }
+              }
+              catch(ex) {
+                this.error("Failed to compile bottom border", ex);
+                this.warn("Details: Width=" + vBottomWidth + ", Style=" + vBottomStyle);
+              }
+            }
+            else
+            {
+              vBottomColor = (new qx.renderer.color.ColorObject("threedlightshadow"));
+            }
+        }
+
+        break;
+    }
+
+    this._defsY.borderBottom = this._generateDefString(vBottomWidth, vBottomStyle, vBottomColor);
+    this._needsCompilationBottom = false;
+  }
+
+  qx.Proto._compileLeft = function()
+  {
+    var vLeftWidth = this.getLeftWidth();
+    var vLeftStyle = this.getLeftStyle();
+    var vLeftColor = this.getLeftColor();
+
+    switch(vLeftWidth)
+    {
+      case 1:
+        switch(vLeftStyle)
+        {
+          case "outset":
+          case "inset":
+            vLeftColor = (new qx.renderer.color.ColorObject(qx.renderer.border.Border.data[vLeftWidth][vLeftStyle]["left"][0]));
+            vLeftStyle = "solid";
+        }
+
+        break;
+
+      case 2:
+        switch(vLeftStyle)
+        {
+          case "outset":
+          case "inset":
+          case "groove":
+          case "ridge":
+            if (qx.renderer.border.Border.enhancedCrossBrowserMode)
+            {
+              try
+              {
+                var c = qx.renderer.border.Border.data[vLeftWidth][vLeftStyle]["left"];
+
+                if (typeof c === "object")
+                {
+                  vLeftStyle = "solid";
+                  vLeftWidth = 1;
+                  vLeftColor = (new qx.renderer.color.ColorObject(c[1]));
+
+                  this._enhancedDefsX.borderLeft = this._generateDefString(vLeftWidth, vLeftStyle, vLeftColor);
+
+                  vLeftColor = (new qx.renderer.color.ColorObject(c[0]));
+                }
+              }
+              catch(ex) {
+                this.error("Failed to compile left border", ex);
+                this.warn("Details: Width=" + vLeftWidth + ", Style=" + vLeftStyle);
+              }
+            }
+            else
+            {
+              vLeftColor = (new qx.renderer.color.ColorObject("threedlightshadow"));
+            }
+        }
+
+        break;
+    }
+
+    this._defsX.borderLeft = this._generateDefString(vLeftWidth, vLeftStyle, vLeftColor);
+    this._needsCompilationLeft = false;
+  }
+
+  qx.renderer.border.Border._resetBorderX = function(o)
+  {
+    var s = o._style;
+    s.borderLeft = s.borderRight = "0px none";
+
+    if (qx.renderer.border.Border.enhancedCrossBrowserMode)
+    {
+      s = o._borderStyle;
+      if (s) {
+        s.borderLeft = s.borderRight = "0px none";
+      }
+    }
+  }
+
+  qx.renderer.border.Border._resetBorderY = function(o)
+  {
+    var s = o._style;
+    s.borderTop = s.borderBottom = "0px none";
+
+    if (qx.renderer.border.Border.enhancedCrossBrowserMode)
+    {
+      s = o._borderStyle;
+      if (s) {
+        s.borderTop = s.borderBottom = "0px none";
+      }
+    }
+  }
+}
+
+
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if (typeof this._defsX === "object") {
+    for (var i in this._defsX) {
+      delete this._defsX[i];
+    }
+  }
+
+  delete this._defsX;
+
+  if (typeof this._defsY === "object") {
+    for (var i in this._defsY) {
+      delete this._defsY[i];
+    }
+  }
+
+  delete this._defsY;
+
+  if (qx.renderer.border.Border.enhancedCrossBrowserMode)
+  {
+    if (typeof this._enhancedDefsX === "object") {
+      for (var i in this._enhancedDefsX) {
+        delete this._enhancedDefsX[i];
+      }
+    }
+
+    delete this._enhancedDefsX;
+
+    if (typeof this._enhancedDefsY === "object") {
+      for (var i in this._enhancedDefsY) {
+        delete this._enhancedDefsY[i];
+      }
+    }
+
+    delete this._enhancedDefsY;
+  }
+
+  delete this._themedEdges;
+
+  return qx.core.Object.prototype.dispose.call(this);
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PRESETS
+---------------------------------------------------------------------------
+*/
+
+/*
+qx.Class.presets =
+{
+  black : new qx.Class(1, "solid", "black"),
+  white : new qx.Class(1, "solid", "white"),
+  none : new qx.Class(0, "none")
+}
+*/
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/BorderCache.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/BorderCache.js
new file mode 100644 (file)
index 0000000..cb94559
--- /dev/null
@@ -0,0 +1,62 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.border.BorderCache");
+
+qx.renderer.border.BorderCache = function(propValue, propData)
+{
+  if (qx.util.Validation.isValidArray(propValue) && propValue.length > 1)
+  {
+    propString = "";
+
+    for (var i=0, l=propValue.length, p; i<l; i++)
+    {
+      p = propValue[i];
+
+      propString += p;
+
+      if (typeof p === "number") {
+        propString += "px";
+      }
+
+      if (i<(l-1)) {
+        propString += " ";
+      }
+    }
+
+    propValue = propString;
+  }
+  else if (qx.util.Validation.isInvalidString(propValue))
+  {
+    return propValue;
+  }
+
+  if (qx.renderer.border.BorderCache._data[propValue]) {
+    return qx.renderer.border.BorderCache._data[propValue];
+  }
+
+  return qx.renderer.border.BorderCache._data[propValue] = qx.renderer.border.BorderObject.fromString(propValue);
+}
+
+qx.renderer.border.BorderCache._data = {};
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/BorderObject.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/BorderObject.js
new file mode 100644 (file)
index 0000000..e8e1dc0
--- /dev/null
@@ -0,0 +1,149 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.border.BorderObject", qx.renderer.border.Border,
+function(vWidth, vStyle, vColor)
+{
+  this._dependentObjects = {};
+
+  qx.renderer.border.Border.call(this, vWidth, vStyle, vColor);
+});
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITY
+---------------------------------------------------------------------------
+*/
+
+qx.renderer.border.BorderObject.fromString = function(vDefString)
+{
+  var vBorder = new qx.renderer.border.BorderObject;
+  var vAllParts = vDefString.split(/\s+/);
+  var vPart, vTemp;
+
+  for (var i=0; i<vAllParts.length; i++)
+  {
+    vPart = vAllParts[i];
+
+    switch(vPart)
+    {
+      case "groove":
+      case "ridge":
+      case "inset":
+      case "outset":
+      case "solid":
+      case "dotted":
+      case "dashed":
+      case "double":
+      case "none":
+        vBorder.setStyle(vPart);
+        break;
+
+      default:
+        vTemp = parseFloat(vPart);
+
+        if(vTemp == vPart || qx.lang.String.contains(vPart, "px"))
+        {
+          vBorder.setWidth(vTemp);
+        }
+        else
+        {
+          vPart = vPart.toLowerCase();
+          vBorder.setColor(qx.renderer.color.Color.themedNames[vPart] ? new qx.renderer.color.ColorObject(vPart) : new qx.renderer.color.Color(vPart));
+        }
+
+        break;
+    }
+  }
+
+  return vBorder;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  WIDGET CONNECTION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.addListenerWidget = function(o) {
+  this._dependentObjects[o.toHashCode()] = o;
+}
+
+qx.Proto.removeListenerWidget = function(o) {
+  delete this._dependentObjects[o.toHashCode()];
+}
+
+qx.Proto._sync = function(vEdge)
+{
+  var vAll = this._dependentObjects;
+  var vCurrent;
+
+  for (vKey in vAll)
+  {
+    vCurrent = vAll[vKey];
+
+    if (vCurrent.isCreated()) {
+      vCurrent._updateBorder(vEdge);
+    }
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if (typeof this._dependentObjects === "object")
+  {
+    var vAll = this._dependentObjects;
+    for (vKey in vAll) {
+      delete vAll[vKey];
+    }
+
+    vAll = null;
+    delete this._dependentObjects;
+  }
+
+  return qx.renderer.border.Border.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/BorderPresets.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/BorderPresets.js
new file mode 100644 (file)
index 0000000..9a0f863
--- /dev/null
@@ -0,0 +1,71 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+/*!
+  Some common used border styles.
+*/
+qx.OO.defineClass("qx.renderer.border.BorderPresets", qx.core.Object, function()
+{
+  qx.core.Object.call(this);
+
+  this.black = new qx.renderer.border.Border(1, "solid", "black");
+  this.white = new qx.renderer.border.Border(1, "solid", "white");
+  this.none = new qx.renderer.border.Border(0, "none");
+
+  this.inset = new qx.renderer.border.BorderObject(2, "inset");
+  this.outset = new qx.renderer.border.BorderObject(2, "outset");
+  this.groove = new qx.renderer.border.BorderObject(2, "groove");
+  this.ridge = new qx.renderer.border.BorderObject(2, "ridge");
+  this.thinInset = new qx.renderer.border.BorderObject(1, "inset");
+  this.thinOutset = new qx.renderer.border.BorderObject(1, "outset");
+
+  this.verticalDivider = new qx.renderer.border.BorderObject(1, "inset");
+  this.verticalDivider.setLeftWidth(0);
+  this.verticalDivider.setRightWidth(0);
+
+  this.horizontalDivider = new qx.renderer.border.BorderObject(1, "inset");
+  this.horizontalDivider.setTopWidth(0);
+  this.horizontalDivider.setBottomWidth(0);
+
+  this.shadow = new qx.renderer.border.BorderObject(1, "solid", "threedshadow");
+  this.lightShadow = new qx.renderer.border.BorderObject(1, "solid", "threedlightshadow");
+  this.info = new qx.renderer.border.BorderObject(1, "solid", "infotext");
+});
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/color/Color.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/color/Color.js
new file mode 100644 (file)
index 0000000..868ac6f
--- /dev/null
@@ -0,0 +1,542 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#require(qx.util.Return)
+#load(qx.renderer.color.ColorObject)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.color.Color", qx.core.Object,
+function(vValue)
+{
+  if (qx.util.Validation.isValid(vValue)) {
+    this.setValue(vValue);
+  }
+
+  qx.core.Object.call(this);
+});
+
+
+
+
+
+/* ************************************************************************
+   Class data, properties and methods
+************************************************************************ */
+
+/*
+---------------------------------------------------------------------------
+  CORE METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.renderer.color.Color.rgb2style = function(r, g, b) {
+  return "rgb(" + r + "," + g + "," + b + ")";
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CORE DATA
+---------------------------------------------------------------------------
+*/
+
+qx.renderer.color.Color.m_hex = [ "0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f" ];
+qx.renderer.color.Color.m_rgb = { 0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,b:11,c:12,d:13,e:14,f:15 }
+
+qx.renderer.color.Color.r_hex3 = /^#([0-9a-f]{1})([0-9a-f]{1})([0-9a-f]{1})$/;
+qx.renderer.color.Color.r_hex6 = /^#([0-9a-f]{1})([0-9a-f]{1})([0-9a-f]{1})([0-9a-f]{1})([0-9a-f]{1})([0-9a-f]{1})$/;
+qx.renderer.color.Color.r_cssrgb = /^rgb\(\s*([0-9]{1,3}\.{0,1}[0-9]*)\s*,\s*([0-9]{1,3}\.{0,1}[0-9]*)\s*,\s*([0-9]{1,3}\.{0,1}[0-9]*)\s*\)$/;
+
+qx.renderer.color.Color.r_rgb = /^[0-9]{1,3},[0-9]{1,3},[0-9]{1,3}$/;
+qx.renderer.color.Color.r_number = /^[0-9]{1,3}\.{0,1}[0-9]*$/;
+qx.renderer.color.Color.r_percent = /^[0-9]{1,3}\.{0,1}[0-9]*%$/;
+
+qx.renderer.color.Color.htmlNames =
+{
+  maroon : [ 128,0,0 ],
+  red : [ 255,0,0 ],
+  orange : [ 255,165,0 ],
+  yellow : [ 255,255,0 ],
+  olive : [ 128,128,0 ],
+  purple : [ 128,0,128 ],
+  fuchsia : [ 255,0,255 ],
+  white : [ 255,255,255 ],
+  lime : [ 0,255,0 ],
+  green : [ 0,128,0 ],
+  navy : [ 0,0,128 ],
+  blue : [ 0,0,255 ],
+  aqua : [ 0,255,255 ],
+  teal : [ 0,128,128 ],
+  black : [ 0,0,0 ],
+  silver : [ 192,192,192 ],
+  gray : [ 128,128,128 ],
+  transparent : [-1,-1,-1]
+}
+
+// TODO: Add some IE related colors (IE 4.x)
+// http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/colors/colors.asp
+/*
+qx.renderer.color.Color.cssNames =
+{
+
+}
+*/
+
+/*
+  ActiveBorder: Active window border.
+  ActiveCaption: Active window caption.
+
+  AppWorkspace: Background color of multiple document interface.
+  Background: Desktop background.
+
+  ButtonFace: Face color for three-dimensional display elements.
+  ButtonHighlight: Highlight color for three-dimensional display elements (for edges facing away from the light source).
+  ButtonShadow: Shadow color for three-dimensional display elements.
+  ButtonText: Text on push buttons.
+
+  CaptionText: Text in caption, size box, and scrollbar arrow box.
+  GrayText: Grayed (disabled) text.
+
+  Highlight: Item(s) selected in a control.
+  HighlightText: Text of item(s) selected in a control.
+
+  InactiveBorder: Inactive window border.
+  InactiveCaption: Inactive window caption.
+  InactiveCaptionText: Color of text in an inactive caption.
+
+  InfoBackground: Background color for tooltip controls.
+  InfoText: Text color for tooltip controls.
+
+  Menu: Menu background.
+  MenuText: Text in menus.
+
+  Scrollbar: Scroll bar gray area.
+
+  ThreeDDarkShadow: Dark shadow for three-dimensional display elements.
+  ThreeDFace: Face color for three-dimensional display elements.
+  ThreeDHighlight: Highlight color for three-dimensional display elements.
+  ThreeDLightShadow: Light color for three-dimensional display elements (for edges facing the light source).
+  ThreeDShadow: Dark shadow for three-dimensional display elements.
+
+  Window: Window background.
+  WindowFrame: Window frame.
+  WindowText: Text in windows.
+*/
+
+qx.renderer.color.Color.themedNames =
+{
+  activeborder : 1,
+  activecaption : 1,
+  appworkspace : 1,
+  background : 1,
+  buttonface : 1,
+  buttonhighlight : 1,
+  buttonshadow : 1,
+  buttontext : 1,
+  captiontext : 1,
+  graytext : 1,
+  highlight : 1,
+  highlighttext : 1,
+  inactiveborder : 1,
+  inactivecaption : 1,
+  inactivecaptiontext : 1,
+  infobackground : 1,
+  infotext : 1,
+  menu : 1,
+  menutext : 1,
+  scrollbar : 1,
+  threeddarkshadow : 1,
+  threedface : 1,
+  threedhighlight : 1,
+  threedlightshadow : 1,
+  threedshadow : 1,
+  window : 1,
+  windowframe : 1,
+  windowtext : 1
+}
+
+
+
+
+
+
+
+/* ************************************************************************
+   Instance data, properties and methods
+************************************************************************ */
+
+/*
+---------------------------------------------------------------------------
+  UTILITY
+---------------------------------------------------------------------------
+*/
+
+qx.renderer.color.Color.fromString = function(vDefString) {
+  return new qx.renderer.color.Color(vDefString);
+}
+
+qx.renderer.color.Color.fromRandom = function() {
+  return new qx.renderer.color.Color([Math.round(255*Math.random()), Math.round(255*Math.random()), Math.round(255*Math.random())]);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DATA
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._value = null;
+qx.Proto._style = null;
+
+qx.Proto._isRgbColor = false;
+qx.Proto._isHtmlColor = false;
+qx.Proto._isThemedColor = false;
+
+qx.Proto._red = null;
+qx.Proto._green = null;
+qx.Proto._blue = null;
+
+qx.Proto._hex = null;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  COMPATIBILITY METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.add = qx.util.Return.returnTrue;
+qx.Proto.remove = qx.util.Return.returnTrue;
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PUBLIC METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.isRgbColor = function() {
+  return this._isRgbColor;
+}
+
+qx.Proto.isHtmlColor = function() {
+  return this._isHtmlColor;
+}
+
+qx.Proto.isThemedColor = function() {
+  return this._isThemedColor;
+}
+
+
+
+
+qx.Proto.setValue = function(vValue)
+{
+  this._normalize(vValue);
+
+  if (this._isThemedColor) {
+    throw new Error("Please use qx.renderer.color.ColorObject for themed colors!");
+  }
+}
+
+qx.Proto.getValue = function() {
+  return this._value || "";
+}
+
+
+
+
+qx.Proto.getStyle = function()
+{
+  if (this._style == null) {
+    this._evalStyle();
+  }
+
+  return this._style;
+}
+
+qx.Proto._evalStyle = function()
+{
+  if (this._isRgbColor)
+  {
+    this._style = qx.renderer.color.Color.rgb2style(this._red, this._green, this._blue);
+  }
+  else if (this._isThemedColor)
+  {
+    this._applyThemedValue();
+  }
+  else if (this._isHtmlColor)
+  {
+    this._style = this._value;
+  }
+  else if (qx.util.Validation.isValid(this._value))
+  {
+    throw new Error("_evalStyle could not handle non-rgb colors :" + this.getValue() + "!");
+  }
+}
+
+
+
+
+qx.Proto.getHex = function()
+{
+  if (this._hex == null) {
+    this._evalHex();
+  }
+
+  return this._hex;
+}
+
+qx.Proto._evalHex = function()
+{
+  if (this._isRgbColor)
+  {
+    var a = ["#"];
+
+    var r = this.getRed();
+    a.push(qx.renderer.color.Color.m_hex[Math.floor(r/16)]);
+    a.push(qx.renderer.color.Color.m_hex[Math.floor(r%16)]);
+
+    var g = this.getGreen();
+    a.push(qx.renderer.color.Color.m_hex[Math.floor(g/16)]);
+    a.push(qx.renderer.color.Color.m_hex[Math.floor(g%16)]);
+
+    var b = this.getBlue();
+    a.push(qx.renderer.color.Color.m_hex[Math.floor(b/16)]);
+    a.push(qx.renderer.color.Color.m_hex[Math.floor(b%16)]);
+
+    this._hex = a.join("");
+  }
+  else
+  {
+    // TODO
+  }
+}
+
+
+
+
+qx.Proto.getRed = function()
+{
+  if (this._red == null) {
+    this._evalRgb();
+  }
+
+  return this._red;
+}
+
+qx.Proto.getGreen = function()
+{
+  if (this._green == null) {
+    this._evalRgb();
+  }
+
+  return this._green;
+}
+
+qx.Proto.getBlue = function()
+{
+  if (this._blue == null) {
+    this._evalRgb();
+  }
+
+  return this._blue;
+}
+
+
+
+
+qx.Proto._evalRgb = function()
+{
+  if (this._isThemedColor)
+  {
+    this._applyThemedValue();
+  }
+  else if (this._isHtmlColor)
+  {
+    var a = qx.renderer.color.Color.htmlNames[this._value];
+
+    this._red = a[0];
+    this._green = a[1];
+    this._blue = a[2];
+  }
+  else
+  {
+    throw new Error("_evalRgb needs implementation!");
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PRIVATE METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._normalize = function(vInValue)
+{
+  this._isThemedColor = this._isRgbColor = this._isHtmlColor = false;
+  this._hex = null;
+
+  var invalid = new Error("Invalid color: " + vInValue);
+
+  switch(typeof vInValue)
+  {
+    case "string":
+      vInValue = vInValue.toLowerCase();
+
+      if (qx.renderer.color.Color.htmlNames[vInValue])
+      {
+        this._isHtmlColor = true;
+      }
+      else if (qx.renderer.color.Color.themedNames[vInValue])
+      {
+        this._isThemedColor = true;
+      }
+      else if (qx.renderer.color.Color.r_cssrgb.test(vInValue))
+      {
+        this._red   = parseInt(RegExp.$1);
+        this._green = parseInt(RegExp.$2);
+        this._blue  = parseInt(RegExp.$3);
+
+        this._isRgbColor = true;
+      }
+      else if (qx.renderer.color.Color.r_hex3.test(vInValue))
+      {
+        this._hex = vInValue;
+
+        this._red   = (qx.renderer.color.Color.m_rgb[RegExp.$1] * 16) + qx.renderer.color.Color.m_rgb[RegExp.$1];
+        this._green = (qx.renderer.color.Color.m_rgb[RegExp.$2] * 16) + qx.renderer.color.Color.m_rgb[RegExp.$2];
+        this._blue  = (qx.renderer.color.Color.m_rgb[RegExp.$3] * 16) + qx.renderer.color.Color.m_rgb[RegExp.$3];
+
+        this._isRgbColor = true;
+      }
+      else if (qx.renderer.color.Color.r_hex6.test(vInValue))
+      {
+        this._hex = vInValue;
+
+        this._red   = (qx.renderer.color.Color.m_rgb[RegExp.$1] * 16) + qx.renderer.color.Color.m_rgb[RegExp.$2];
+        this._green = (qx.renderer.color.Color.m_rgb[RegExp.$3] * 16) + qx.renderer.color.Color.m_rgb[RegExp.$4];
+        this._blue  = (qx.renderer.color.Color.m_rgb[RegExp.$5] * 16) + qx.renderer.color.Color.m_rgb[RegExp.$6];
+
+        this._isRgbColor = true;
+      }
+      else
+      {
+        throw invalid;
+      }
+
+      break;
+
+    case "number":
+      if (vInValue >= 0 && vInValue <= 255)
+      {
+        this._red = this._green = this._blue = vInValue;
+        this._isRgbColor = true;
+      }
+      else
+      {
+        throw invalid;
+      }
+
+      break;
+
+    case "object":
+      if (qx.util.Validation.isValidArray(vInValue) && vInValue.length == 3)
+      {
+        this._red = vInValue[0];
+        this._green = vInValue[1];
+        this._blue = vInValue[2];
+
+        this._isRgbColor = true;
+        break;
+      }
+
+    default:
+      throw invalid;
+  }
+
+  if (!this._isRgbColor)
+  {
+    this._red = this._green = this._blue = null;
+    this._style = this._isHtmlColor ? vInValue : null;
+  }
+  else
+  {
+    this._style = null;
+
+    if (!(this._red >= 0 && this._red <= 255 && this._green >= 0 && this._green <= 255 && this._blue >= 0 && this._blue <= 255)) {
+      throw invalid;
+    }
+  }
+
+  return this._value = vInValue;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  delete this._value;
+  delete this._style;
+
+  delete this._red;
+  delete this._green;
+  delete this._blue;
+
+  delete this._isRgbColor;
+  delete this._isHtmlColor;
+  delete this._isThemedColor;
+
+  return qx.core.Object.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/color/ColorCache.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/color/ColorCache.js
new file mode 100644 (file)
index 0000000..add29d1
--- /dev/null
@@ -0,0 +1,83 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.color.ColorCache");
+
+qx.renderer.color.ColorCache = function(propValue)
+{
+  var propKey;
+  var propKeyAsStyle = false;
+
+  switch(typeof propValue)
+  {
+    case "string":
+      if (propValue != "") {
+        propValue = propKey = propValue.toLowerCase();
+        break;
+      }
+
+      return propValue;
+
+    case "number":
+      if (propValue >= 0 && propValue <= 255)
+      {
+        propKey = propValue.toString();
+        break;
+      }
+
+      return propValue;
+
+    case "object":
+      if (propValue == null || propValue instanceof qx.renderer.color.Color) {
+        return propValue;
+      }
+
+      // Try to detect array of RGB values
+      if (typeof propValue.join === "function" && propValue.length == 3)
+      {
+        propKey = "rgb(" + propValue.join(",") + ")";
+        propKeyAsStyle = true;
+        break;
+      }
+
+    default:
+      return propValue;
+  }
+
+  if (qx.renderer.color.ColorCache._data[propKey]) {
+    return qx.renderer.color.ColorCache._data[propKey];
+  }
+
+  // this.debug("Create new color instance: " + propKey);
+
+  var vColorObject = qx.renderer.color.ColorCache._data[propKey] = qx.renderer.color.Color.themedNames[propValue] ? new qx.renderer.color.ColorObject(propValue) : new qx.renderer.color.Color(propValue);
+
+  if (propKeyAsStyle) {
+    vColorObject._style = propKey;
+  }
+
+  return vColorObject;
+}
+
+qx.renderer.color.ColorCache._data = {};
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/color/ColorObject.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/color/ColorObject.js
new file mode 100644 (file)
index 0000000..57b6566
--- /dev/null
@@ -0,0 +1,154 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.color.ColorObject", qx.renderer.color.Color,
+function(vValue)
+{
+  // this.debug("Value: " + vValue);
+  this.setValue(vValue);
+
+  if(qx.manager.object.ColorManager.getInstance().has(this._value)) {
+    return qx.manager.object.ColorManager.getInstance().get(this._value);
+  }
+
+  qx.core.Object.call(this);
+
+  // Register this color object to manager instance
+  qx.manager.object.ColorManager.getInstance().add(this);
+
+  // Here will all objects with a dependency to this
+  // color stored.
+  this._dependentObjects = {};
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITY
+---------------------------------------------------------------------------
+*/
+
+qx.renderer.color.ColorObject.fromString = function(vDefString) {
+  return new qx.renderer.color.ColorObject(vDefString);
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PUBLIC METHODS
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Set a new value from selected theme (only for Operating System Colors)
+*/
+qx.Proto._updateTheme = function(vTheme)
+{
+  if (!this._isThemedColor) {
+    throw new Error("Could not redefine themed value of non os colors!");
+  }
+
+  this._applyThemedValue();
+  this._syncObjects();
+}
+
+qx.Proto._applyThemedValue = function()
+{
+  var vTheme = qx.manager.object.ColorManager.getInstance().getColorTheme();
+  var vRgb = vTheme.getValueByName(this._value);
+
+  if (vRgb)
+  {
+    this._red = vRgb[0];
+    this._green = vRgb[1];
+    this._blue = vRgb[2];
+  }
+
+  this._style = vTheme.getStyleByName(this._value);
+  this._hex = null;
+}
+
+qx.Proto._syncObjects = function()
+{
+  for (var i in this._dependentObjects) {
+    this._dependentObjects[i]._updateColors(this, this._style);
+  }
+}
+
+qx.Proto.setValue = function(vValue)
+{
+  this._normalize(vValue);
+  this._syncObjects();
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  OBJECT MANAGMENT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.add = function(vObject) {
+  this._dependentObjects[vObject.toHashCode()] = vObject;
+}
+
+qx.Proto.remove = function(vObject) {
+  delete this._dependentObjects[vObject.toHashCode()];
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if (this._dependentObjects)
+  {
+    for (var i in this._dependentObjects) {
+      delete this._dependentObjects[i];
+    }
+
+    delete this._dependentObjects;
+  }
+
+  return qx.renderer.color.Color.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/font/Font.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/font/Font.js
new file mode 100644 (file)
index 0000000..ceac713
--- /dev/null
@@ -0,0 +1,218 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+#load(qx.renderer.font.FontObject)
+
+************************************************************************ */
+
+/*!
+  Font implementation for qx.ui.core.Widget instances.
+*/
+
+qx.OO.defineClass("qx.renderer.font.Font", qx.core.Object,
+function(vSize, vName)
+{
+  qx.core.Object.call(this);
+
+  this._defs = {};
+
+  if (qx.util.Validation.isValidNumber(vSize)) {
+    this.setSize(vSize);
+  }
+
+  if (qx.util.Validation.isValidString(vName)) {
+    this.setName(vName);
+  }
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "size", type : "number", impl : "style" });
+qx.OO.addProperty({ name : "name", type : "string", impl : "style" });
+qx.OO.addProperty({ name : "bold", type : "boolean", defaultValue : false, impl : "style" });
+qx.OO.addProperty({ name : "italic", type : "boolean", defaultValue : false, impl : "style" });
+qx.OO.addProperty({ name : "underline", type : "boolean", defaultValue : false, impl : "style" });
+qx.OO.addProperty({ name : "strikeout", type : "boolean", defaultValue : false, impl : "style" });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyStyle = function(propValue, propOldValue, propData)
+{
+  this._needsCompilation = true;
+  return true;
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITY
+---------------------------------------------------------------------------
+*/
+
+qx.renderer.font.Font.fromString = function(s)
+{
+  var vFont = new qx.renderer.font.Font;
+  var vAllParts = s.split(/\s+/);
+  var vName = [];
+  var vPart;
+
+  for (var i = 0; i < vAllParts.length; i++)
+  {
+    switch(vPart = vAllParts[i])
+    {
+      case "bold":
+        vFont.setBold(true);
+        break;
+
+      case "italic":
+        vFont.setItalic(true);
+        break;
+
+      case "underline":
+        vFont.setUnderline(true);
+        break;
+
+      case "strikeout":
+        vFont.setStrikeout(true);
+        break;
+
+      default:
+        var vTemp = parseFloat(vPart);
+
+        if(vTemp == vPart || qx.lang.String.contains(vPart, "px"))
+        {
+          vFont.setSize(vTemp);
+        }
+        else
+        {
+          vName.push(vPart);
+        }
+
+        break;
+    }
+  }
+
+  if(vName.length > 0) {
+    vFont.setName(vName.join(" "));
+  }
+
+  return vFont;
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITY
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._needsCompilation = true;
+
+qx.Proto._compile = function()
+{
+  var vName = this.getName();
+  var vSize = this.getSize();
+  var vBold = this.getBold();
+  var vItalic = this.getItalic();
+  var vUnderline = this.getUnderline();
+  var vStrikeout = this.getStrikeout();
+  var vDecoration = "";
+
+  if (this.getUnderline()) {
+    vDecoration = "underline";
+  }
+
+  if (this.getStrikeout()) {
+    vDecoration += " " + "strikeout";
+  }
+
+  this._defs.fontFamily = qx.util.Validation.isValidString(vName) ? vName : "";
+  this._defs.fontSize = qx.util.Validation.isValidNumber(vSize) ? vSize + "px" : "";
+  this._defs.fontWeight = this.getBold() ? "bold" : "normal";
+  this._defs.fontStyle = this.getItalic() ? "italic" : "normal";
+  this._defs.textDecoration = qx.util.Validation.isValidString(vDecoration) ? vDecoration : "";
+
+  this._needsCompilation = false;
+}
+
+qx.Proto._applyWidget = function(vWidget)
+{
+  if (this._needsCompilation) {
+    this._compile();
+  }
+
+  vWidget.setStyleProperty("fontFamily", this._defs.fontFamily);
+  vWidget.setStyleProperty("fontSize", this._defs.fontSize);
+  vWidget.setStyleProperty("fontWeight", this._defs.fontWeight);
+  vWidget.setStyleProperty("fontStyle", this._defs.fontStyle);
+  vWidget.setStyleProperty("textDecoration", this._defs.textDecoration);
+}
+
+qx.Proto._resetWidget = function(vWidget)
+{
+  vWidget.removeStyleProperty("fontFamily");
+  vWidget.removeStyleProperty("fontSize");
+  vWidget.removeStyleProperty("fontWeight");
+  vWidget.removeStyleProperty("fontStyle");
+  vWidget.removeStyleProperty("textDecoration");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  delete this._defs;
+
+  return qx.core.Object.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/font/FontCache.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/font/FontCache.js
new file mode 100644 (file)
index 0000000..03b1ee7
--- /dev/null
@@ -0,0 +1,70 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.font.FontCache");
+
+qx.renderer.font.FontCache = function(propValue, propData)
+{
+  var propKey;
+  var propKeyAsStyle = false;
+
+  switch(typeof propValue)
+  {
+    case "string":
+      if (propValue != "")
+      {
+        propValue = propKey = propValue.toLowerCase();
+        break;
+      }
+
+      return propValue;
+
+    case "number":
+      propKey = propValue.toString();
+      break;
+
+    case "object":
+      if (propValue == null || propValue instanceof qx.renderer.font.Font) {
+        return propValue;
+      }
+
+      // Try to detect array of RGB values
+      if (typeof propValue.join === "function")
+      {
+        propKey = propValue.join(" ").toLowerCase();
+        break;
+      }
+
+    default:
+      return propValue;
+  }
+
+  if (qx.renderer.font.FontCache._data[propKey]) {
+    return qx.renderer.font.FontCache._data[propKey];
+  }
+
+  return qx.renderer.font.FontCache._data[propKey] = qx.renderer.font.Font.fromString(propKey);
+}
+
+qx.renderer.font.FontCache._data = {};
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/font/FontObject.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/font/FontObject.js
new file mode 100644 (file)
index 0000000..674b1f9
--- /dev/null
@@ -0,0 +1,93 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.font.FontObject", qx.renderer.font.Font,
+function(vSize, vName)
+{
+  this._dependentObjects = {};
+
+  qx.renderer.font.Font.call(this, vSize, vName);
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  WIDGET CONNECTION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.addListenerWidget = function(o) {
+  this._dependentObjects[o.toHashCode()] = o;
+}
+
+qx.Proto.removeListenerWidget = function(o) {
+  delete this._dependentObjects[o.toHashCode()];
+}
+
+qx.Proto._sync = function(vEdge)
+{
+  var vAll = this._dependentObjects;
+  var vCurrent;
+
+  for (vKey in vAll)
+  {
+    vCurrent = vAll[vKey];
+
+    if (vCurrent.isCreated()) {
+      vCurrent._updateFont(vEdge);
+    }
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if (typeof this._dependentObjects === "object")
+  {
+    for (vKey in this._dependentObjects) {
+      delete this._dependentObjects[vKey];
+    }
+
+    delete this._dependentObjects;
+  }
+
+  return qx.renderer.font.Font.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/CanvasLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/CanvasLayoutImpl.js
new file mode 100644 (file)
index 0000000..dec4297
--- /dev/null
@@ -0,0 +1,297 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#module(ui_layout)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.layout.CanvasLayoutImpl", qx.renderer.layout.LayoutImpl,
+function(vWidget) {
+  qx.renderer.layout.LayoutImpl.call(this, vWidget);
+});
+
+
+
+/*!
+  Global Structure:
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+  [10] LAYOUT CHILD
+  [11] DISPOSER
+
+
+  Inherits from qx.renderer.layout.LayoutImpl:
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+  [11] DISPOSER
+*/
+
+
+
+/*
+---------------------------------------------------------------------------
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Compute and return the box width of the given child
+*/
+qx.Proto.computeChildBoxWidth = function(vChild)
+{
+  var vValue = null;
+
+  if (vChild._computedLeftTypeNull || vChild._computedRightTypeNull)
+  {
+    vValue = vChild.getWidthValue();
+  }
+  else if (vChild._hasParent)
+  {
+    vValue = this.getWidget().getInnerWidth() - vChild.getLeftValue() - vChild.getRightValue();
+  }
+
+  return vValue || vChild._computeBoxWidthFallback();
+}
+
+/*!
+  Compute and return the box height of the given child
+*/
+qx.Proto.computeChildBoxHeight = function(vChild)
+{
+  var vValue = null;
+
+  if (vChild._computedTopTypeNull || vChild._computedBottomTypeNull)
+  {
+    vValue = vChild.getHeightValue();
+  }
+  else if (vChild._hasParent)
+  {
+    vValue = this.getWidget().getInnerHeight() - vChild.getTopValue() - vChild.getBottomValue();
+  }
+
+  return vValue || vChild._computeBoxHeightFallback();
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Compute and return the needed width of the given child
+*/
+qx.Proto.computeChildNeededWidth = function(vChild)
+{
+  var vLeft = vChild._computedLeftTypePercent ? null : vChild.getLeftValue();
+  var vRight = vChild._computedRightTypePercent ? null : vChild.getRightValue();
+  var vMinBox = vChild._computedMinWidthTypePercent ? null : vChild.getMinWidthValue();
+  var vMaxBox = vChild._computedMaxWidthTypePercent ? null : vChild.getMaxWidthValue();
+
+  if (vLeft != null && vRight != null)
+  {
+    var vBox = vChild.getPreferredBoxWidth() || 0;
+  }
+  else
+  {
+    var vBox = (vChild._computedWidthTypePercent ? null : vChild.getWidthValue()) || vChild.getPreferredBoxWidth() || 0;
+  }
+
+  return qx.lang.Number.limit(vBox, vMinBox, vMaxBox) + vLeft + vRight + vChild.getMarginLeft() + vChild.getMarginRight();
+}
+
+/*!
+  Compute and return the needed height of the given child
+*/
+qx.Proto.computeChildNeededHeight = function(vChild)
+{
+  var vTop = vChild._computedTopTypePercent ? null : vChild.getTopValue();
+  var vBottom = vChild._computedBottomTypePercent ? null : vChild.getBottomValue();
+  var vMinBox = vChild._computedMinHeightTypePercent ? null : vChild.getMinHeightValue();
+  var vMaxBox = vChild._computedMaxHeightTypePercent ? null : vChild.getMaxHeightValue();
+
+  if (vTop != null && vBottom != null)
+  {
+    var vBox = vChild.getPreferredBoxHeight() || 0;
+  }
+  else
+  {
+    var vBox = (vChild._computedHeightTypePercent ? null : vChild.getHeightValue()) || vChild.getPreferredBoxHeight() || 0;
+  }
+
+  return qx.lang.Number.limit(vBox, vMinBox, vMaxBox) + vTop + vBottom + vChild.getMarginTop() + vChild.getMarginBottom();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Actions that should be done if the inner width of the widget was changed.
+  Normally this includes update to percent values and ranges.
+*/
+qx.Proto.updateChildOnInnerWidthChange = function(vChild)
+{
+  // this makes sure that both functions get executed before return
+  var vUpdatePercent = vChild._recomputePercentX();
+  var vUpdateRange = vChild._recomputeRangeX();
+
+  return vUpdatePercent || vUpdateRange;
+}
+
+/*!
+  Actions that should be done if the inner height of the widget was changed.
+  Normally this includes update to percent values and ranges.
+*/
+qx.Proto.updateChildOnInnerHeightChange = function(vChild)
+{
+  // this makes sure that both functions get executed before return
+  var vUpdatePercent = vChild._recomputePercentY();
+  var vUpdateRange = vChild._recomputeRangeY();
+
+  return vUpdatePercent || vUpdateRange;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [10] LAYOUT CHILD
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This is called from qx.ui.core.Widget and  it's task is to apply the layout
+  (excluding border and padding) to the child.
+*/
+qx.Proto.layoutChild = function(vChild, vJobs)
+{
+  this.layoutChild_sizeX_essentialWrapper(vChild, vJobs);
+  this.layoutChild_sizeY_essentialWrapper(vChild, vJobs);
+
+  this.layoutChild_sizeLimitX(vChild, vJobs);
+  this.layoutChild_sizeLimitY(vChild, vJobs);
+
+  this.layoutChild_locationX(vChild, vJobs);
+  this.layoutChild_locationY(vChild, vJobs);
+
+  this.layoutChild_marginX(vChild, vJobs);
+  this.layoutChild_marginY(vChild, vJobs);
+}
+
+if (qx.sys.Client.getInstance().isMshtml() || qx.sys.Client.getInstance().isOpera())
+{
+  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.width || vJobs.minWidth || vJobs.maxWidth || vJobs.left || vJobs.right)
+    {
+      if (vChild._computedMinWidthTypeNull && vChild._computedWidthTypeNull && vChild._computedMaxWidthTypeNull && !(!vChild._computedLeftTypeNull && !vChild._computedRightTypeNull))
+      {
+        vChild._resetRuntimeWidth();
+      }
+      else
+      {
+        vChild._applyRuntimeWidth(vChild.getBoxWidth());
+      }
+    }
+  }
+
+  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.height || vJobs.minHeight || vJobs.maxHeight || vJobs.top || vJobs.bottom)
+    {
+      if (vChild._computedMinHeightTypeNull && vChild._computedHeightTypeNull && vChild._computedMaxHeightTypeNull && !(!vChild._computedTopTypeNull && !vChild._computedBottomTypeNull))
+      {
+        vChild._resetRuntimeHeight();
+      }
+      else
+      {
+        vChild._applyRuntimeHeight(vChild.getBoxHeight());
+      }
+    }
+  }
+}
+else
+{
+  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.width) {
+      vChild._computedWidthTypeNull ? vChild._resetRuntimeWidth() : vChild._applyRuntimeWidth(vChild.getWidthValue());
+    }
+  }
+
+  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.height) {
+      vChild._computedHeightTypeNull ? vChild._resetRuntimeHeight() : vChild._applyRuntimeHeight(vChild.getHeightValue());
+    }
+  }
+}
+
+qx.Proto.layoutChild_locationX = function(vChild, vJobs)
+{
+  var vWidget = this.getWidget();
+
+  if (vJobs.initial || vJobs.left || vJobs.parentPaddingLeft) {
+    vChild._computedLeftTypeNull ? vChild._computedRightTypeNull && vWidget.getPaddingLeft() > 0 ? vChild._applyRuntimeLeft(vWidget.getPaddingLeft()) : vChild._resetRuntimeLeft() : vChild._applyRuntimeLeft(vChild.getLeftValue() + vWidget.getPaddingLeft());
+  }
+
+  if (vJobs.initial || vJobs.right || vJobs.parentPaddingRight) {
+    vChild._computedRightTypeNull ? vChild._computedLeftTypeNull && vWidget.getPaddingRight() > 0 ? vChild._applyRuntimeRight(vWidget.getPaddingRight()) : vChild._resetRuntimeRight() : vChild._applyRuntimeRight(vChild.getRightValue() + vWidget.getPaddingRight());
+  }
+}
+
+qx.Proto.layoutChild_locationY = function(vChild, vJobs)
+{
+  var vWidget = this.getWidget();
+
+  if (vJobs.initial || vJobs.top || vJobs.parentPaddingTop) {
+    vChild._computedTopTypeNull ? vChild._computedBottomTypeNull && vWidget.getPaddingTop() > 0 ? vChild._applyRuntimeTop(vWidget.getPaddingTop()) : vChild._resetRuntimeTop() : vChild._applyRuntimeTop(vChild.getTopValue() + vWidget.getPaddingTop());
+  }
+
+  if (vJobs.initial || vJobs.bottom || vJobs.parentPaddingBottom) {
+    vChild._computedBottomTypeNull ? vChild._computedTopTypeNull && vWidget.getPaddingBottom() > 0 ? vChild._applyRuntimeBottom(vWidget.getPaddingBottom()) : vChild._resetRuntimeBottom() : vChild._applyRuntimeBottom(vChild.getBottomValue() + vWidget.getPaddingBottom());
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/DockLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/DockLayoutImpl.js
new file mode 100644 (file)
index 0000000..c948fca
--- /dev/null
@@ -0,0 +1,488 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_layout)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.layout.DockLayoutImpl", qx.renderer.layout.LayoutImpl,
+function(vWidget) {
+  qx.renderer.layout.LayoutImpl.call(this, vWidget);
+});
+
+
+/*!
+  Global Structure:
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+  [10] LAYOUT CHILD
+  [11] DISPOSER
+
+
+  Inherits from qx.renderer.layout.LayoutImpl:
+  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+  [11] DISPOSER
+*/
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [00] ADDITIONAL GLOBAL DATA AND METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.renderer.layout.DockLayoutImpl.METHOD_LOCATION = "layoutChild_location_";
+
+qx.renderer.layout.DockLayoutImpl._childRanking = {
+  vertical : function(c) { return c.getVerticalAlign() ? 1e6 : c.getHorizontalAlign() ? 2e6 : 3e6; },
+  horizontal : function(c) { return c.getHorizontalAlign() ? 1e6 : c.getVerticalAlign() ? 2e6 : 3e6; },
+  ordered : function(c) { return c.getHorizontalAlign() || c.getVerticalAlign() ? 1e6 : 2e6; }
+}
+
+qx.renderer.layout.DockLayoutImpl._childCheck =
+{
+  common : function(vChild) {
+    if (!(vChild._computedLeftTypeNull && vChild._computedRightTypeNull && vChild._computedTopTypeNull && vChild._computedBottomTypeNull)) {
+      throw new Error("qx.renderer.layout.DockLayoutImpl: It is not allowed to define any location values for children: " + vChild + "!");
+    }
+  },
+
+  horizontal : function(vChild)
+  {
+    if (!(vChild._computedMinHeightTypeNull && vChild._computedHeightTypeNull && vChild._computedMaxHeightTypeNull)) {
+      throw new Error("qx.renderer.layout.DockLayoutImpl: It is not allowed to define any vertical dimension for 'horizontal' placed children: " + vChild + "!");
+    }
+  },
+
+  vertical : function(vChild)
+  {
+    if (!(vChild._computedMinWidthTypeNull && vChild._computedWidthTypeNull && vChild._computedMaxWidthTypeNull)) {
+      throw new Error("qx.renderer.layout.DockLayoutImpl: It is not allowed to define any horizontal dimension for 'vertical' placed children: " + vChild + "!");
+    }
+  },
+
+  "default" : function(vChild)
+  {
+    qx.renderer.layout.DockLayoutImpl._childCheck.horizontal(vChild);
+    qx.renderer.layout.DockLayoutImpl._childCheck.vertical(vChild);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Compute and return the box width of the given child
+*/
+qx.Proto.computeChildBoxWidth = function(vChild)
+{
+  if (this.getChildAlignMode(vChild) == "horizontal") {
+    return vChild.getWidthValue() || vChild._computeBoxWidthFallback();
+  }
+
+  return this.getWidget().getInnerWidth() - this._lastLeft - this._lastRight;
+}
+
+/*!
+  Compute and return the box height of the given child
+*/
+qx.Proto.computeChildBoxHeight = function(vChild)
+{
+  if (this.getChildAlignMode(vChild) == "vertical") {
+    return vChild.getHeightValue() || vChild._computeBoxHeightFallback();
+  }
+
+  return this.getWidget().getInnerHeight() - this._lastTop - this._lastBottom;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Actions that should be done if the inner width of the widget was changed.
+  Normally this includes update to percent values and ranges.
+*/
+qx.Proto.updateChildOnInnerWidthChange = function(vChild)
+{
+  vChild._recomputePercentX();
+  vChild.addToLayoutChanges("location");
+
+  // inform the caller if there were any notable changes occured
+  return true;
+}
+
+/*!
+  Actions that should be done if the inner height of the widget was changed.
+  Normally this includes update to percent values and ranges.
+*/
+qx.Proto.updateChildOnInnerHeightChange = function(vChild)
+{
+  vChild._recomputePercentY();
+  vChild.addToLayoutChanges("location");
+
+  // inform the caller if there were any notable changes occured
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Invalidate and recompute things because of job in queue (before the rest of job handling will be executed).
+*/
+qx.Proto.updateSelfOnJobQueueFlush = qx.util.Return.returnFalse;
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Updates children on special jobs
+*/
+qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue)
+{
+  if (vQueue.mode || vQueue.addChild || vQueue.removeChild) {
+    this.getWidget()._addChildrenToLayoutQueue("location");
+  }
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This method have full control of the order in which the
+  registered (or also non-registered) children should be
+  layouted on the horizontal axis.
+*/
+qx.Proto.flushChildrenQueue = function(vChildrenQueue)
+{
+  var vWidget=this.getWidget(), vChildren=vWidget.getVisibleChildren(), vChildrenLength=vChildren.length, vMode=vWidget.getMode();
+
+  // reset layout
+  this._lastLeft = this._lastRight = this._lastTop = this._lastBottom = 0;
+
+  // sorting children
+  var vRankImpl = qx.renderer.layout.DockLayoutImpl._childRanking[vMode];
+  var vOrderedChildren = qx.lang.Array.copy(vChildren).sort(function(c1, c2) {
+    return (vRankImpl(c1) + vChildren.indexOf(c1)) - (vRankImpl(c2) + vChildren.indexOf(c2));
+  });
+
+  // flushing children
+  for (var i=0; i<vChildrenLength; i++) {
+    vWidget._layoutChild(vOrderedChildren[i]);
+  }
+}
+
+qx.Proto.getChildAlign = function(vChild) {
+  return vChild.getVerticalAlign() || vChild.getHorizontalAlign() || "default";
+}
+
+qx.Proto.getChildAlignMode = function(vChild) {
+  return vChild.getVerticalAlign() ? "vertical" : vChild.getHorizontalAlign() ? "horizontal" : "default";
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [10] LAYOUT CHILD
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This is called from qx.ui.core.Widget and  it's task is to apply the layout
+  (excluding border and padding) to the child.
+*/
+qx.Proto.layoutChild = function(vChild, vJobs)
+{
+  qx.renderer.layout.DockLayoutImpl._childCheck.common(vChild);
+  qx.renderer.layout.DockLayoutImpl._childCheck[this.getChildAlignMode(vChild)](vChild);
+
+  this.layoutChild_sizeX_essentialWrapper(vChild, vJobs);
+  this.layoutChild_sizeY_essentialWrapper(vChild, vJobs);
+
+  this.layoutChild_sizeLimitX(vChild, vJobs);
+  this.layoutChild_sizeLimitY(vChild, vJobs);
+
+  this[qx.renderer.layout.DockLayoutImpl.METHOD_LOCATION + this.getChildAlign(vChild)](vChild, vJobs);
+}
+
+qx.Proto.layoutChild_location_top = function(vChild, vJobs)
+{
+  vChild._applyRuntimeTop(this._lastTop);
+  vChild._applyRuntimeLeft(this._lastLeft);
+
+  this.layoutChild_location_horizontal(vChild);
+
+  this._lastTop += vChild.getBoxHeight();
+}
+
+qx.Proto.layoutChild_location_left = function(vChild, vJobs)
+{
+  vChild._applyRuntimeLeft(this._lastLeft);
+  vChild._applyRuntimeTop(this._lastTop);
+
+  this.layoutChild_location_vertical(vChild);
+
+  this._lastLeft += vChild.getBoxWidth();
+}
+
+
+
+
+
+
+
+if (qx.sys.Client.getInstance().isMshtml() || qx.sys.Client.getInstance().isOpera())
+{
+  qx.Proto._applyComputedWidth = function(vChild)
+  {
+    // direct recompute (need to be done, while layouting as the
+    // _last* variable changes during layout process)
+    vChild._recomputeBoxWidth();
+
+    // wrong: simple invalidates are enough here
+    // correct: needs recompute to inform children (to update centering for example)
+    vChild._recomputeOuterWidth();
+    vChild._recomputeInnerWidth();
+
+    // apply calculated width
+    vChild._applyRuntimeWidth(vChild.getBoxWidth());
+  }
+
+  qx.Proto._applyComputedHeight = function(vChild)
+  {
+    // direct recompute (need to be done, while layouting as the
+    // _last* variable changes during layout process)
+    vChild._recomputeBoxHeight();
+
+    // wrong: simple invalidates are enough here
+    // correct: needs recompute to inform children (to update centering for example)
+    vChild._recomputeOuterHeight();
+    vChild._recomputeInnerHeight();
+
+    // apply calculated height
+    vChild._applyRuntimeHeight(vChild.getBoxHeight());
+  }
+
+  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
+  {
+    // We need to respect all dimension properties on the horizontal axis in internet explorer to set the 'width' style
+    if (vJobs.initial || vJobs.width || vJobs.minWidth || vJobs.maxWidth) {
+      vChild._computedWidthTypeNull && vChild._computedMinWidthTypeNull && vChild._computedMaxWidthTypeNull ? vChild._resetRuntimeWidth() : vChild._applyRuntimeWidth(vChild.getBoxWidth());
+    }
+  }
+
+  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
+  {
+    // We need to respect all dimension properties on the vertical axis in internet explorer to set the 'height' style
+    if (vJobs.initial || vJobs.height || vJobs.minHeight || vJobs.maxHeight) {
+      vChild._computedHeightTypeNull && vChild._computedMinHeightTypeNull && vChild._computedMaxHeightTypeNull ? vChild._resetRuntimeHeight() : vChild._applyRuntimeHeight(vChild.getBoxHeight());
+    }
+  }
+
+  qx.Proto.layoutChild_location_horizontal = function(vChild) {
+    this._applyComputedWidth(vChild);
+  }
+
+  qx.Proto.layoutChild_location_vertical = function(vChild) {
+    this._applyComputedHeight(vChild);
+  }
+
+  qx.Proto.layoutChild_location_right = function(vChild, vJobs)
+  {
+    vChild._applyRuntimeLeft(this.getWidget().getInnerWidth() - this._lastRight - vChild.getBoxWidth());
+    vChild._applyRuntimeTop(this._lastTop);
+
+    this.layoutChild_location_vertical(vChild);
+
+    this._lastRight += vChild.getBoxWidth();
+  }
+
+  qx.Proto.layoutChild_location_bottom = function(vChild, vJobs)
+  {
+    vChild._applyRuntimeTop(this.getWidget().getInnerHeight() - this._lastBottom - vChild.getBoxHeight());
+    vChild._applyRuntimeLeft(this._lastLeft);
+
+    this.layoutChild_location_horizontal(vChild);
+
+    this._lastBottom += vChild.getBoxHeight();
+  }
+
+  qx.Proto.layoutChild_location_default = function(vChild, vJobs)
+  {
+    var vWidget = this.getWidget();
+
+    vChild._resetRuntimeRight();
+    vChild._resetRuntimeBottom();
+
+    vChild._applyRuntimeTop(this._lastTop);
+    vChild._applyRuntimeLeft(this._lastLeft);
+
+    this._applyComputedWidth(vChild);
+    this._applyComputedHeight(vChild);
+  }
+}
+else
+{
+  qx.Proto._applyComputedWidth = function(vChild)
+  {
+    // direct recompute (need to be done, while layouting as the
+    // _last* variable changes during layout process)
+    vChild._recomputeBoxWidth();
+
+    // wrong: simple invalidates are enough here
+    // correct: needs recompute to inform children (to update centering for example)
+    vChild._recomputeOuterWidth();
+    vChild._recomputeInnerWidth();
+  }
+
+  qx.Proto._applyComputedHeight = function(vChild)
+  {
+    // direct recompute (need to be done, while layouting as the
+    // _last* variable changes during layout process)
+    vChild._recomputeBoxHeight();
+
+    // wrong: simple invalidates are enough here
+    // correct: needs recompute to inform children (to update centering for example)
+    vChild._recomputeOuterHeight();
+    vChild._recomputeInnerHeight();
+  }
+
+  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.width) {
+      vChild._computedWidthTypeNull ? vChild._resetRuntimeWidth() : vChild._applyRuntimeWidth(vChild.getWidthValue());
+    }
+  }
+
+  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.height) {
+      vChild._computedHeightTypeNull ? vChild._resetRuntimeHeight() : vChild._applyRuntimeHeight(vChild.getHeightValue());
+    }
+  }
+
+  qx.Proto.layoutChild_location_horizontal = function(vChild)
+  {
+    this._applyComputedWidth(vChild);
+    vChild._applyRuntimeRight(this._lastRight);
+  }
+
+  qx.Proto.layoutChild_location_vertical = function(vChild)
+  {
+    this._applyComputedHeight(vChild);
+    vChild._applyRuntimeBottom(this._lastBottom);
+  }
+
+  qx.Proto.layoutChild_location_right = function(vChild, vJobs)
+  {
+    vChild._applyRuntimeRight(this._lastRight);
+    vChild._applyRuntimeTop(this._lastTop);
+
+    this.layoutChild_location_vertical(vChild);
+
+    this._lastRight += vChild.getBoxWidth();
+  }
+
+  qx.Proto.layoutChild_location_bottom = function(vChild, vJobs)
+  {
+    vChild._applyRuntimeBottom(this._lastBottom);
+    vChild._applyRuntimeLeft(this._lastLeft);
+
+    this.layoutChild_location_horizontal(vChild);
+
+    this._lastBottom += vChild.getBoxHeight();
+  }
+
+  qx.Proto.layoutChild_location_default = function(vChild, vJobs)
+  {
+    vChild._resetRuntimeWidth();
+    vChild._resetRuntimeHeight();
+
+    vChild._applyRuntimeTop(this._lastTop);
+    vChild._applyRuntimeRight(this._lastRight);
+    vChild._applyRuntimeBottom(this._lastBottom);
+    vChild._applyRuntimeLeft(this._lastLeft);
+
+    this._applyComputedWidth(vChild);
+    this._applyComputedHeight(vChild);
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/FlowLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/FlowLayoutImpl.js
new file mode 100644 (file)
index 0000000..cd11e3d
--- /dev/null
@@ -0,0 +1,426 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_layout)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.layout.FlowLayoutImpl", qx.renderer.layout.LayoutImpl,
+function(vWidget) {
+  qx.renderer.layout.LayoutImpl.call(this, vWidget);
+});
+
+qx.renderer.layout.FlowLayoutImpl.STR_FIRST = "getFirstVisibleChild";
+qx.renderer.layout.FlowLayoutImpl.STR_LAST = "getLastVisibleChild";
+qx.renderer.layout.FlowLayoutImpl.STR_NEXT = "getNextSibling";
+qx.renderer.layout.FlowLayoutImpl.STR_PREVIOUS = "getPreviousSibling";
+
+
+/*!
+  Global Structure:
+
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+  [10] LAYOUT CHILD
+  [11] DISPOSER
+
+  Inherits from qx.renderer.layout.LayoutImpl:
+
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+  [11] DISPOSER
+*/
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Compute and return the width needed by all children of this widget
+*/
+qx.Proto.computeChildrenNeededWidth = function()
+{
+  var w = this.getWidget();
+  return qx.renderer.layout.LayoutImpl.prototype.computeChildrenNeededWidth_sum.call(this) + ((w.getVisibleChildrenLength()-1) * w.getHorizontalSpacing());
+}
+
+/*!
+  Calculate the layout to get the needed height of the children
+*/
+qx.Proto.computeChildrenNeededHeight = function()
+{
+  var vWidget = this.getWidget();
+
+  var vInnerWidth = vWidget.getInnerWidth();
+
+  var vHorizontalSpacing = vWidget.getHorizontalSpacing();
+  var vVerticalSpacing = vWidget.getVerticalSpacing();
+  var vReversed = vWidget.getReverseChildrenOrder();
+
+  var vRowWidth = 0;
+  var vRowHeight = 0;
+
+  var vRowHeightSum = 0;
+
+  for (var i=0, ch=vWidget.getVisibleChildren(), chl=ch.length, chc; i<chl; i++)
+  {
+    chc = vReversed ? ch[chl-1-i] : ch[i];
+
+    vRowWidth += chc.getNeededWidth();
+
+    if (vRowWidth > vInnerWidth)
+    {
+      vRowHeightSum += vRowHeight + vVerticalSpacing;
+      vRowWidth = chc.getNeededWidth();
+      vRowHeight = chc.getNeededHeight();
+    }
+    else
+    {
+      vRowHeight = Math.max(vRowHeight, chc.getNeededHeight());
+    }
+
+    vRowWidth += vHorizontalSpacing;
+  }
+
+  return vRowHeightSum + vRowHeight;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Things to do and layout when any of the childs changes it's outer width.
+  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
+*/
+qx.Proto.updateSelfOnChildOuterWidthChange = function(vChild)
+{
+  // If a child only change it's width also recompute the height
+  // as the layout flows around here
+  //this.getWidget()._recomputeNeededHeightHelper();
+  this.getWidget()._invalidatePreferredInnerHeight();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Actions that should be done if the inner width of the widget was changed.
+  Normally this includes update to percent values and ranges.
+*/
+qx.Proto.updateChildOnInnerWidthChange = function(vChild)
+{
+  vChild._recomputePercentX();
+  vChild.addToLayoutChanges("location");
+
+  return true;
+}
+
+/*!
+  Actions that should be done if the inner height of the widget was changed.
+  Normally this includes update to percent values and ranges.
+*/
+qx.Proto.updateChildOnInnerHeightChange = function(vChild)
+{
+  vChild._recomputePercentY();
+  vChild.addToLayoutChanges("location");
+
+  return true;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Updates children on special jobs
+*/
+qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue)
+{
+  if (vQueue.horizontalSpacing || vQueue.verticalSpacing || vQueue.reverseChildrenOrder || vQueue.horizontalChildrenAlign || vQueue.verticalChildrenAlign) {
+    this.getWidget()._addChildrenToLayoutQueue("location");
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This method combines calls of methods which should be done if a widget should be removed from the current layout.
+  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
+*/
+qx.Proto.updateChildrenOnRemoveChild = function(vChild, vIndex)
+{
+  var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, i=-1;
+
+  if (w.getReverseChildrenOrder())
+  {
+    while((chc=ch[++i]) && i<vIndex) {
+      chc.addToLayoutChanges("location");
+    }
+  }
+  else
+  {
+    i+=vIndex;
+    while(chc=ch[++i]) {
+      chc.addToLayoutChanges("location");
+    }
+  }
+}
+
+/*!
+  This method combines calls of methods which should be done if a child should be moved
+  inside the same parent to a new positions.
+  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
+*/
+qx.Proto.updateChildrenOnMoveChild = function(vChild, vIndex, vOldIndex)
+{
+  for (var i=Math.min(vIndex, vOldIndex), ch=this.getWidget().getVisibleChildren(), l=ch.length; i<l; i++) {
+    ch[i].addToLayoutChanges("location");
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This method have full control of the order in which the
+  registered (or also non-registered) children should be
+  layouted on the horizontal axis.
+*/
+
+qx.Proto.flushChildrenQueue = function(vChildrenQueue)
+{
+  var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, chh;
+
+  if (w.getReverseChildrenOrder())
+  {
+    // layout all childs from the first child
+    // with an own layout request to the end
+    var i=chl, changed=false;
+    while(chc=ch[--i])
+    {
+      chh = chc.toHashCode();
+
+      if (changed || vChildrenQueue[chh])
+      {
+        w._layoutChild(chc);
+        changed = true;
+      }
+    }
+  }
+  else
+  {
+    // layout all childs from the first child
+    // with an own layout request to the end
+    var i=-1, changed=false;
+    while(chc=ch[++i])
+    {
+      chh = chc.toHashCode();
+
+      if (changed || vChildrenQueue[chh])
+      {
+        w._layoutChild(chc);
+        changed = true;
+      }
+    }
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [10] LAYOUT CHILD
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.layoutChild = function(vChild, vJobs)
+{
+  this.layoutChild_sizeX_essentialWrapper(vChild, vJobs);
+  this.layoutChild_sizeY_essentialWrapper(vChild, vJobs);
+
+  this.layoutChild_sizeLimitX(vChild, vJobs);
+  this.layoutChild_sizeLimitY(vChild, vJobs);
+
+  this.layoutChild_marginX(vChild, vJobs);
+  this.layoutChild_marginY(vChild, vJobs);
+
+  this.layoutChild_location(vChild, vJobs);
+}
+
+if (qx.sys.Client.getInstance().isMshtml() || qx.sys.Client.getInstance().isOpera())
+{
+  /*!
+    We need to respect all dimension properties on the horizontal axis in
+    internet explorer to set the 'width' style
+  */
+  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.width || vJobs.minWidth || vJobs.maxWidth) {
+      vChild._computedWidthTypeNull && vChild._computedMinWidthTypeNull && vChild._computedMaxWidthTypeNull ? vChild._resetRuntimeWidth() : vChild._applyRuntimeWidth(vChild.getBoxWidth());
+    }
+  }
+
+  /*!
+    We need to respect all dimension properties on the vertical axis in
+    internet explorer to set the 'height' style
+  */
+  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.height || vJobs.minHeight || vJobs.maxHeight) {
+      vChild._computedHeightTypeNull && vChild._computedMinHeightTypeNull && vChild._computedMaxHeightTypeNull ? vChild._resetRuntimeHeight() : vChild._applyRuntimeHeight(vChild.getBoxHeight());
+    }
+  }
+}
+else
+{
+  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.width) {
+      vChild._computedWidthTypeNull ? vChild._resetRuntimeWidth() : vChild._applyRuntimeWidth(vChild.getWidthValue());
+    }
+  }
+
+  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.height) {
+      vChild._computedHeightTypeNull ? vChild._resetRuntimeHeight() : vChild._applyRuntimeHeight(vChild.getHeightValue());
+    }
+  }
+}
+
+qx.Proto.layoutChild_location = function(vChild, vJobs)
+{
+  var vWidget = this.getWidget();
+  var vReverse = vWidget.getReverseChildrenOrder();
+
+  var vMethodBegin = vReverse ? qx.renderer.layout.FlowLayoutImpl.STR_LAST : qx.renderer.layout.FlowLayoutImpl.STR_FIRST;
+  var vMethodContinue = vReverse ? qx.renderer.layout.FlowLayoutImpl.STR_NEXT : qx.renderer.layout.FlowLayoutImpl.STR_PREVIOUS;
+
+  if (vChild == vWidget[vMethodBegin]())
+  {
+    vChild._cachedLocationHorizontal = vChild._cachedLocationVertical = vChild._cachedRow = 0;
+  }
+  else
+  {
+    var vTempChild = vChild[vMethodContinue]();
+
+    // stupidly update cache value (check them later)
+    vChild._cachedLocationHorizontal = vTempChild._cachedLocationHorizontal + vTempChild.getOuterWidth() + vWidget.getHorizontalSpacing();
+    vChild._cachedLocationVertical = vTempChild._cachedLocationVertical;
+    vChild._cachedRow = vTempChild._cachedRow;
+
+    // check now
+    if ((vChild._cachedLocationHorizontal + vChild.getOuterWidth()) > vWidget.getInnerWidth())
+    {
+      // evaluate width of previous row
+      vRowMax = vTempChild.getOuterHeight();
+      while((vTempChild = vTempChild[vMethodContinue]()) && vTempChild._cachedRow == vChild._cachedRow) {
+        vRowMax = Math.max(vRowMax, vTempChild.getOuterHeight());
+      }
+
+      // switch to new row
+      vChild._cachedLocationHorizontal = 0;
+      vChild._cachedLocationVertical += vWidget.getVerticalSpacing() + vRowMax;
+      vChild._cachedRow++;
+    }
+  }
+
+  // add margins and parent padding
+  if (vWidget.getHorizontalChildrenAlign() == "right")
+  {
+    vChild._resetRuntimeLeft();
+    vChild._applyRuntimeRight(vWidget.getPaddingRight() + vChild._cachedLocationHorizontal);
+  }
+  else
+  {
+    vChild._resetRuntimeRight();
+    vChild._applyRuntimeLeft(vWidget.getPaddingLeft() + vChild._cachedLocationHorizontal);
+  }
+
+  if (vWidget.getVerticalChildrenAlign() == "bottom")
+  {
+    vChild._resetRuntimeTop();
+    vChild._applyRuntimeBottom(vWidget.getPaddingBottom() + vChild._cachedLocationVertical);
+  }
+  else
+  {
+    vChild._resetRuntimeBottom();
+    vChild._applyRuntimeTop(vWidget.getPaddingTop() + vChild._cachedLocationVertical);
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/GridLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/GridLayoutImpl.js
new file mode 100644 (file)
index 0000000..ecb8c89
--- /dev/null
@@ -0,0 +1,300 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_layout)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.layout.GridLayoutImpl", qx.renderer.layout.LayoutImpl,
+function(vWidget) {
+  qx.renderer.layout.LayoutImpl.call(this, vWidget);
+});
+
+
+
+
+/*!
+  Global Structure:
+
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+  [10] LAYOUT CHILD
+  [11] DISPOSER
+
+  Inherits from qx.renderer.layout.LayoutImpl:
+
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+  [11] DISPOSER
+*/
+
+
+
+/*
+---------------------------------------------------------------------------
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Compute and return the box width of the given child.
+*/
+qx.Proto.computeChildBoxWidth = function(vChild)
+{
+  var vWidget = this.getWidget();
+  var vColWidth = vWidget.getColumnInnerWidth(vChild._col, vChild._row);
+
+  // extend colwidth to spanned area
+  if (vWidget.isSpanStart(vChild._col, vChild._row))
+  {
+    var vEntry = vWidget.getSpanEntry(vChild._col, vChild._row);
+    for (var i=1; i<vEntry.colLength; i++)
+    {
+      // right padding from the previous cell
+      vColWidth += vWidget.getComputedCellPaddingRight(vChild._col + i - 1, vChild._row);
+
+      // left padding from the current cell
+      vColWidth += vWidget.getComputedCellPaddingLeft(vChild._col + i, vChild._row);
+
+      // spacing between previous and current cell
+      vColWidth += vWidget.getHorizontalSpacing();
+
+      // inner width of the current cell plus
+      vColWidth += vWidget.getColumnInnerWidth(vChild._col + i, vChild._row);
+    }
+  }
+
+  return vChild.getAllowStretchX() ? vColWidth : Math.min(vChild.getWidthValue(), vColWidth);
+}
+
+/*!
+  Compute and return the box height of the given child.
+*/
+qx.Proto.computeChildBoxHeight = function(vChild)
+{
+  var vWidget = this.getWidget();
+  var vRowHeight = vWidget.getRowInnerHeight(vChild._col, vChild._row);
+
+  // extend colwidth to spanned area
+  if (vWidget.isSpanStart(vChild._col, vChild._row))
+  {
+    var vEntry = vWidget.getSpanEntry(vChild._col, vChild._row);
+    for (var i=1; i<vEntry.rowLength; i++)
+    {
+      // right padding from the previous cell
+      vRowHeight += vWidget.getComputedCellPaddingBottom(vChild._col, vChild._row + i - 1);
+
+      // left padding from the current cell
+      vRowHeight += vWidget.getComputedCellPaddingTop(vChild._col, vChild._row + i);
+
+      // spacing between previous and current cell
+      vRowHeight += vWidget.getVerticalSpacing();
+
+      // inner width of the current cell plus
+      vRowHeight += vWidget.getRowInnerHeight(vChild._col, vChild._row + i);
+    }
+  }
+
+  return vChild.getAllowStretchY() ? vRowHeight : Math.min(vChild.getHeightValue(), vRowHeight);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Compute and return the width needed by all children of this widget
+  which is in a grid layout the width used by all columns.
+*/
+qx.Proto.computeChildrenNeededWidth = function()
+{
+  var vWidget = this.getWidget();
+  var vSpacingX = vWidget.getHorizontalSpacing();
+  var vSum = -vSpacingX;
+
+  for (var i=0, l=vWidget.getColumnCount(); i<l; i++) {
+    vSum += vWidget.getColumnBoxWidth(i) + vSpacingX;
+  }
+
+  return vSum;
+}
+
+/*!
+  Compute and return the height needed by all children of this widget
+  which is in a grid layout the height used by all rows.
+*/
+qx.Proto.computeChildrenNeededHeight = function()
+{
+  var vWidget = this.getWidget();
+  var vSpacingY = vWidget.getVerticalSpacing();
+  var vSum = -vSpacingY;
+
+  for (var i=0, l=vWidget.getRowCount(); i<l; i++) {
+    vSum += vWidget.getRowBoxHeight(i) + vSpacingY;
+  }
+
+  return vSum;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Actions that should be done if the inner width of the widget was changed.
+  Normally this includes update to percent values and ranges.
+*/
+qx.Proto.updateChildOnInnerWidthChange = function(vChild)
+{
+  vChild._recomputePercentX();
+  vChild.addToLayoutChanges("locationX");
+
+  return true;
+}
+
+/*!
+  Actions that should be done if the inner height of the widget was changed.
+  Normally this includes update to percent values and ranges.
+*/
+qx.Proto.updateChildOnInnerHeightChange = function(vChild)
+{
+  vChild._recomputePercentY();
+  vChild.addToLayoutChanges("locationY");
+
+  return true;
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [10] LAYOUT CHILD
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This is called from qx.ui.core.Widget and  it's task is to apply the layout
+  (excluding border and padding) to the child.
+*/
+
+qx.Proto.layoutChild = function(vChild, vJobs)
+{
+  var vWidget = this.getWidget();
+
+  this.layoutChild_sizeX(vChild, vJobs);
+  this.layoutChild_sizeY(vChild, vJobs);
+
+  this.layoutChild_sizeLimitX(vChild, vJobs);
+  this.layoutChild_sizeLimitY(vChild, vJobs);
+
+  this.layoutChild_marginX(vChild, vJobs);
+  this.layoutChild_marginY(vChild, vJobs);
+
+  this.layoutChild_locationX(vChild, vJobs);
+  this.layoutChild_locationY(vChild, vJobs);
+}
+
+qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
+{
+  vChild._applyRuntimeWidth(vChild.getBoxWidth());
+}
+
+qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
+{
+  vChild._applyRuntimeHeight(vChild.getBoxHeight());
+}
+
+qx.Proto.layoutChild_locationX = function(vChild, vJobs)
+{
+  var vWidget = this.getWidget();
+  var vSpacingX = vWidget.getHorizontalSpacing();
+  var vLocSumX = vWidget.getPaddingLeft() + vWidget.getComputedCellPaddingLeft(vChild._col, vChild._row);
+
+  for (var i=0; i<vChild._col; i++) {
+    vLocSumX += vWidget.getColumnBoxWidth(i) + vSpacingX;
+  }
+
+  switch(vChild.getHorizontalAlign() || vWidget.getColumnHorizontalAlignment(vChild._col) || vWidget.getRowHorizontalAlignment(vChild._row) || vWidget.getHorizontalChildrenAlign())
+  {
+    case "center":
+      vLocSumX += Math.round((vWidget.getColumnInnerWidth(vChild._col, vChild._row) - vChild.getBoxWidth()) / 2);
+      break;
+
+    case "right":
+      vLocSumX += vWidget.getColumnInnerWidth(vChild._col, vChild._row) - vChild.getBoxWidth();
+      break;
+  }
+
+  vChild._applyRuntimeLeft(vLocSumX);
+}
+
+qx.Proto.layoutChild_locationY = function(vChild, vJobs)
+{
+  var vWidget = this.getWidget();
+  var vSpacingY = vWidget.getVerticalSpacing();
+  var vLocSumY = vWidget.getPaddingTop() + vWidget.getComputedCellPaddingTop(vChild._col, vChild._row);
+
+  for (var i=0; i<vChild._row; i++) {
+    vLocSumY += vWidget.getRowBoxHeight(i) + vSpacingY;
+  }
+
+  switch(vChild.getVerticalAlign() || vWidget.getRowVerticalAlignment(vChild._row) || vWidget.getColumnVerticalAlignment(vChild._col) || vWidget.getVerticalChildrenAlign())
+  {
+    case "middle":
+      vLocSumY += Math.round((vWidget.getRowInnerHeight(vChild._col, vChild._row) - vChild.getBoxHeight()) / 2);
+      break;
+
+    case "bottom":
+      vLocSumY += vWidget.getRowInnerHeight(vChild._col, vChild._row) - vChild.getBoxHeight();
+      break;
+  }
+
+  vChild._applyRuntimeTop(vLocSumY);
+}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/HorizontalBoxLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/HorizontalBoxLayoutImpl.js
new file mode 100644 (file)
index 0000000..6276f30
--- /dev/null
@@ -0,0 +1,863 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+#module(ui_layout)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.layout.HorizontalBoxLayoutImpl", qx.renderer.layout.LayoutImpl,
+function(vWidget) {
+  qx.renderer.layout.LayoutImpl.call(this, vWidget);
+});
+
+qx.OO.addProperty({ name : "enableFlexSupport", type : "boolean", defaultValue : true });
+
+/*!
+  Global Structure:
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+  [10] LAYOUT CHILD
+  [11] DISPOSER
+
+
+  Inherits from qx.renderer.layout.LayoutImpl:
+  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [11] DISPOSER
+*/
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Compute and return the box width of the given child.
+*/
+qx.Proto.computeChildBoxWidth = function(vChild) {
+  return vChild.getWidthValue() || vChild._computeBoxWidthFallback();
+}
+
+/*!
+  Compute and return the box height of the given child.
+*/
+qx.Proto.computeChildBoxHeight = function(vChild)
+{
+  if (this.getWidget().getStretchChildrenOrthogonalAxis() && vChild._computedHeightTypeNull && vChild.getAllowStretchY()) {
+    return this.getWidget().getInnerHeight();
+  }
+
+  return vChild.getHeightValue() || vChild._computeBoxHeightFallback();
+}
+
+/*!
+  Computes the width of all flexible children.
+*/
+qx.Proto.computeChildrenFlexWidth = function()
+{
+  if (this._childrenFlexWidthComputed || !this.getEnableFlexSupport()) {
+    return;
+  }
+
+  this._childrenFlexWidthComputed = true;
+
+  // this.debug("computeChildrenFlexWidth");
+
+  var vWidget = this.getWidget();
+  var vChildren = vWidget.getVisibleChildren();
+  var vChildrenLength = vChildren.length;
+  var vCurrentChild;
+  var vFlexibleChildren = [];
+  var vAvailWidth = vWidget.getInnerWidth();
+  var vUsedWidth = vWidget.getSpacing() * (vChildrenLength-1);
+  var vIterator;
+
+
+  // *************************************************************
+  // 1. Compute the sum of all static sized children and finding
+  //    all flexible children.
+  // *************************************************************
+  for (vIterator=0; vIterator<vChildrenLength; vIterator++)
+  {
+    vCurrentChild = vChildren[vIterator];
+
+    if (vCurrentChild._computedWidthTypeFlex)
+    {
+      vFlexibleChildren.push(vCurrentChild);
+
+      if (vWidget._computedWidthTypeAuto) {
+        vUsedWidth += vCurrentChild.getPreferredBoxWidth();
+      }
+    }
+    else
+    {
+      vUsedWidth += vCurrentChild.getOuterWidth();
+    }
+  }
+
+  // this.debug("Width: " + vUsedWidth + "/" + vAvailWidth);
+  // this.debug("Flexible Count: " + vFlexibleChildren.length);
+
+
+  // *************************************************************
+  // 2. Compute the sum of all flexible children widths
+  // *************************************************************
+  var vRemainingWidth = vAvailWidth - vUsedWidth;
+  var vFlexibleChildrenLength = vFlexibleChildren.length;
+  var vPrioritySum = 0;
+
+  for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++) {
+    vPrioritySum += vFlexibleChildren[vIterator]._computedWidthParsed;
+  }
+
+
+  // *************************************************************
+  // 3. Calculating the size of each 'part'.
+  // *************************************************************
+  var vPartWidth = vRemainingWidth / vPrioritySum;
+
+
+  if (!vWidget.getUseAdvancedFlexAllocation())
+  {
+    // *************************************************************
+    // 4a. Computing the flex width value of each flexible child
+    //     and add the width to the usedWidth, so that we can
+    //     fix rounding problems later.
+    // *************************************************************
+    for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
+    {
+      vCurrentChild = vFlexibleChildren[vIterator];
+
+      vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthParsed * vPartWidth);
+      vUsedWidth += vCurrentChild._computedWidthFlexValue;
+    }
+  }
+  else
+  {
+    // *************************************************************
+    // 4b. Calculating the diff. Which means respect the min/max
+    //     width configuration in flex and store the higher/lower
+    //     data in a diff.
+    // *************************************************************
+
+    var vAllocationDiff = 0;
+    var vMinAllocationLoops, vFlexibleChildrenLength, vAdjust, vCurrentAllocationSum, vFactorSum, vComputedFlexibleWidth;
+
+    for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
+    {
+      vCurrentChild = vFlexibleChildren[vIterator];
+
+      vComputedFlexibleWidth = vCurrentChild._computedWidthFlexValue = vCurrentChild._computedWidthParsed * vPartWidth;
+      vAllocationDiff += vComputedFlexibleWidth - qx.lang.Number.limit(vComputedFlexibleWidth, vCurrentChild.getMinWidthValue(), vCurrentChild.getMaxWidthValue());
+    }
+
+    // Rounding diff
+    vAllocationDiff = Math.round(vAllocationDiff);
+
+    if (vAllocationDiff == 0)
+    {
+      // *************************************************************
+      // 5a. If the diff is equal zero we must not do anything more
+      //     and do nearly identical the same like in 4a. which means
+      //     to round the calculated flex value and add it to the
+      //     used width so we can fix rounding problems later.
+      // *************************************************************
+
+      // Rounding values and fixing rounding errors
+      for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
+      {
+        vCurrentChild = vFlexibleChildren[vIterator];
+
+        vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthFlexValue);
+        vUsedWidth += vCurrentChild._computedWidthFlexValue;
+      }
+    }
+    else
+    {
+      // *************************************************************
+      // 5b. Find maximum loops of each adjustable child to adjust
+      //     the width until the min/max width limits are reached.
+      // *************************************************************
+
+      var vUp = vAllocationDiff > 0;
+      for (vIterator=vFlexibleChildrenLength-1; vIterator>=0; vIterator--)
+      {
+        vCurrentChild = vFlexibleChildren[vIterator];
+
+        if (vUp)
+        {
+          vAdjust = (vCurrentChild.getMaxWidthValue() || Infinity) - vCurrentChild._computedWidthFlexValue;
+
+          if (vAdjust > 0)
+          {
+            vCurrentChild._allocationLoops = Math.floor(vAdjust / vCurrentChild._computedWidthParsed);
+          }
+          else
+          {
+            qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
+
+            vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthFlexValue);
+            vUsedWidth += Math.round(vCurrentChild._computedWidthFlexValue + vAdjust);
+          }
+        }
+        else
+        {
+          vAdjust = qx.util.Validation.isValidNumber(vCurrentChild.getMinWidthValue()) ? vCurrentChild._computedWidthFlexValue - vCurrentChild.getMinWidthValue() : vCurrentChild._computedWidthFlexValue;
+
+          if (vAdjust > 0)
+          {
+            vCurrentChild._allocationLoops = Math.floor(vAdjust / vCurrentChild._computedWidthParsed);
+          }
+          else
+          {
+            qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
+
+            vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthFlexValue);
+            vUsedWidth += Math.round(vCurrentChild._computedWidthFlexValue - vAdjust);
+          }
+        }
+      }
+
+      // *************************************************************
+      // 6. Try to reallocate the width between flexible children
+      //    so that the requirements through min/max limits
+      //    are satisfied.
+      // *************************************************************
+      while (vAllocationDiff != 0 && vFlexibleChildrenLength > 0)
+      {
+        vFlexibleChildrenLength = vFlexibleChildren.length;
+        vMinAllocationLoops = Infinity;
+        vFactorSum = 0;
+
+        // Find minimal loop amount
+        for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
+        {
+          vMinAllocationLoops = Math.min(vMinAllocationLoops, vFlexibleChildren[vIterator]._allocationLoops);
+          vFactorSum += vFlexibleChildren[vIterator]._computedWidthParsed;
+        }
+
+        // Be sure that the adjustment is not bigger/smaller than diff
+        vCurrentAllocationSum = Math.min(vFactorSum * vMinAllocationLoops, vAllocationDiff);
+
+        // this.debug("Diff: " + vAllocationDiff);
+        // this.debug("Min Loops: " + vMinAllocationLoops);
+        // this.debug("Sum: " + vCurrentAllocationSum);
+        // this.debug("Factor: " + vFactorSum);
+
+        // Reducing diff by current sum
+        vAllocationDiff -= vCurrentAllocationSum;
+
+        // Adding sizes to children to adjust
+        for (vIterator=vFlexibleChildrenLength-1; vIterator>=0; vIterator--)
+        {
+          vCurrentChild = vFlexibleChildren[vIterator];
+          vCurrentChild._computedWidthFlexValue += vCurrentAllocationSum / vFactorSum * vCurrentChild._computedWidthParsed;
+
+          if (vCurrentChild._allocationLoops == vMinAllocationLoops)
+          {
+            vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthFlexValue);
+
+            vUsedWidth += vCurrentChild._computedWidthFlexValue;
+            delete vCurrentChild._allocationLoops;
+            qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
+          }
+          else
+          {
+            if (vAllocationDiff == 0)
+            {
+              vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthFlexValue);
+              vUsedWidth += vCurrentChild._computedWidthFlexValue;
+              delete vCurrentChild._allocationLoops;
+            }
+            else
+            {
+              vCurrentChild._allocationLoops -= vMinAllocationLoops;
+            }
+          }
+        }
+      }
+    }
+  }
+
+  // *************************************************************
+  // 7. Fix rounding errors
+  // *************************************************************
+  vCurrentChild._computedWidthFlexValue += vAvailWidth - vUsedWidth;
+}
+
+qx.Proto.invalidateChildrenFlexWidth = function() {
+  delete this._childrenFlexWidthComputed;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Compute and return the width needed by all children of this widget
+*/
+qx.Proto.computeChildrenNeededWidth = function()
+{
+  var w = this.getWidget();
+  return qx.renderer.layout.LayoutImpl.prototype.computeChildrenNeededWidth_sum.call(this) + ((w.getVisibleChildrenLength()-1) * w.getSpacing());
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Things to do and layout when any of the childs changes its outer width.
+  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
+*/
+qx.Proto.updateSelfOnChildOuterWidthChange = function(vChild)
+{
+  // if a childrens outer width changes we need to update our accumulated
+  // width of all childrens (used for center or right alignments)
+  this.getWidget()._invalidateAccumulatedChildrenOuterWidth();
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Actions that should be done if the inner width of the widget was changed.
+  Normally this includes update to percent values and ranges.
+*/
+qx.Proto.updateChildOnInnerWidthChange = function(vChild)
+{
+  if (this.getWidget().getHorizontalChildrenAlign() == "center") {
+    vChild.addToLayoutChanges("locationX");
+  }
+
+  // use variables here to be sure to call both methods.
+  var vUpdatePercent = vChild._recomputePercentX();
+  var vUpdateFlex = vChild._recomputeFlexX();
+
+  // inform the caller if there were any notable changes occured
+  return vUpdatePercent || vUpdateFlex;
+}
+
+/*!
+  Actions that should be done if the inner height of the widget was changed.
+  Normally this includes update to percent values and ranges.
+*/
+qx.Proto.updateChildOnInnerHeightChange = function(vChild)
+{
+  // use variables here to be sure to call both methods.
+  var vUpdatePercent = vChild._recomputePercentY();
+  var vUpdateStretch = vChild._recomputeStretchingY();
+
+  // priority to childs internal alignment
+  if ((vChild.getVerticalAlign() || this.getWidget().getVerticalChildrenAlign()) == "middle") {
+    vChild.addToLayoutChanges("locationY");
+  }
+
+  // inform the caller if there were any notable changes occured
+  return vUpdatePercent || vUpdateStretch;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Invalidate and recompute things because of job in queue (before the rest of job handling will be executed).
+*/
+qx.Proto.updateSelfOnJobQueueFlush = function(vJobQueue)
+{
+  if (vJobQueue.addChild || vJobQueue.removeChild) {
+    this.getWidget()._invalidateAccumulatedChildrenOuterWidth();
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Updates children on special jobs
+*/
+qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue)
+{
+  var vStretchX=false, vStretchY=false;
+  var vWidget = this.getWidget();
+
+  // switching the orientation need updates for stretching on both axis
+  if (vQueue.orientation) {
+    vStretchX = vStretchY = true;
+  }
+
+  // different updates depending from the current orientation (or the new one)
+  if (vQueue.spacing || vQueue.orientation || vQueue.reverseChildrenOrder || vQueue.horizontalChildrenAlign) {
+    vWidget._addChildrenToLayoutQueue("locationX");
+  }
+
+  if (vQueue.verticalChildrenAlign) {
+    vWidget._addChildrenToLayoutQueue("locationY");
+  }
+
+  if (vQueue.stretchChildrenOrthogonalAxis) {
+    vStretchY = true;
+  }
+
+  // if stretching should be reworked reset the previous one and add
+  // a layout job to update the width respectively height.
+  if (vStretchX)
+  {
+    vWidget._recomputeChildrenStretchingX();
+    vWidget._addChildrenToLayoutQueue("width");
+  }
+
+  if (vStretchY)
+  {
+    vWidget._recomputeChildrenStretchingY();
+    vWidget._addChildrenToLayoutQueue("height");
+  }
+
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This method combines calls of methods which should be done if a widget should be removed from the current layout.
+  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
+*/
+qx.Proto.updateChildrenOnRemoveChild = function(vChild, vIndex)
+{
+  var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, i=-1;
+
+  // Fix index to be at the first flex child
+  if (this.getEnableFlexSupport())
+  {
+    for (i=0; i<chl; i++)
+    {
+      chc = ch[i];
+      if (chc.getHasFlexX())
+      {
+        vIndex = Math.min(vIndex, i);
+        break;
+      }
+    }
+
+    i=-1;
+  }
+
+  // Handle differently depending on layout mode
+  switch(w.getLayoutMode())
+  {
+    case "right":
+    case "left-reversed":
+      while((chc=ch[++i]) && i<vIndex) {
+        chc.addToLayoutChanges("locationX");
+      }
+
+      break;
+
+    case "center":
+    case "center-reversed":
+      while(chc=ch[++i]) {
+        chc.addToLayoutChanges("locationX");
+      }
+
+      break;
+
+    default:
+      i+=vIndex;
+      while(chc=ch[++i]) {
+        chc.addToLayoutChanges("locationX");
+      }
+  }
+}
+
+/*!
+  This method combines calls of methods which should be done if a child should be moved
+  inside the same parent to a new positions.
+  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
+*/
+qx.Proto.updateChildrenOnMoveChild = function(vChild, vIndex, vOldIndex)
+{
+  var vChildren = this.getWidget().getVisibleChildren();
+
+  var vStart = Math.min(vIndex, vOldIndex);
+  var vStop = Math.max(vIndex, vOldIndex)+1;
+
+  for (var i=vStart; i<vStop; i++) {
+    vChildren[i].addToLayoutChanges("locationX");
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This method have full control of the order in which the
+  registered (or also non-registered) children should be
+  layouted on the horizontal axis.
+*/
+qx.Proto.flushChildrenQueue = function(vChildrenQueue)
+{
+  var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, i;
+
+  // This block is needed for flex handling and
+  // will inform flex children if there was any
+  // change to the other content
+  if (this.getEnableFlexSupport())
+  {
+    this.invalidateChildrenFlexWidth();
+
+    for (i=0; i<chl; i++)
+    {
+      chc = ch[i];
+      if (chc.getHasFlexX())
+      {
+        chc._computedWidthValue = null;
+
+        if (chc._recomputeBoxWidth())
+        {
+          chc._recomputeOuterWidth();
+          chc._recomputeInnerWidth();
+        }
+
+        vChildrenQueue[chc.toHashCode()] = chc;
+        chc._layoutChanges.width = true;
+      }
+    }
+  }
+
+  switch(w.getLayoutMode())
+  {
+    case "right":
+    case "left-reversed":
+      // find the last child which has a layout request
+      for (var i=chl-1; i>=0 && !vChildrenQueue[ch[i].toHashCode()]; i--) {}
+
+      // layout all children before this last child
+      for (var j=0; j<=i; j++) {
+        w._layoutChild(chc=ch[j]);
+      }
+
+      break;
+
+    case "center":
+    case "center-reversed":
+      // re-layout all children
+      i = -1;
+      while(chc=ch[++i]) {
+        w._layoutChild(chc);
+      }
+
+      break;
+
+    default:
+      // layout all childs from the first child
+      // with an own layout request to the end
+      i = -1;
+      var changed=false;
+      while(chc=ch[++i])
+      {
+        if (changed || vChildrenQueue[chc.toHashCode()])
+        {
+          w._layoutChild(chc);
+          changed = true;
+        }
+      }
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [10] LAYOUT CHILD
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This is called from qx.ui.core.Widget and  it's task is to apply the layout
+  (excluding border and padding) to the child.
+*/
+qx.Proto.layoutChild = function(vChild, vJobs)
+{
+  this.layoutChild_sizeX(vChild, vJobs);
+  this.layoutChild_sizeY(vChild, vJobs);
+
+  this.layoutChild_sizeLimitX(vChild, vJobs);
+  this.layoutChild_sizeLimitY(vChild, vJobs);
+
+  this.layoutChild_locationX(vChild, vJobs);
+  this.layoutChild_locationY(vChild, vJobs);
+
+  this.layoutChild_marginX(vChild, vJobs);
+  this.layoutChild_marginY(vChild, vJobs);
+}
+
+if (qx.sys.Client.getInstance().isMshtml() || qx.sys.Client.getInstance().isOpera() || qx.sys.Client.getInstance().isWebkit() )
+{
+  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.width || vJobs.minWidth || vJobs.maxWidth)
+    {
+      if (vChild._isWidthEssential() && (!vChild._computedWidthTypeNull || !vChild._computedMinWidthTypeNull || !vChild._computedMaxWidthTypeNull))
+      {
+        vChild._applyRuntimeWidth(vChild.getBoxWidth());
+      }
+      else
+      {
+        vChild._resetRuntimeWidth();
+      }
+    }
+  }
+
+  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.height || vJobs.minHeight || vJobs.maxHeight)
+    {
+      if ((vChild._isHeightEssential() && (!vChild._computedHeightTypeNull || !vChild._computedMinHeightTypeNull || !vChild._computedMaxHeightTypeNull)) || (vChild.getAllowStretchY() && this.getWidget().getStretchChildrenOrthogonalAxis()))
+      {
+        vChild._applyRuntimeHeight(vChild.getBoxHeight());
+      }
+      else
+      {
+        vChild._resetRuntimeHeight();
+      }
+    }
+  }
+}
+else
+{
+  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.width)
+    {
+      if (vChild._isWidthEssential() && !vChild._computedWidthTypeNull)
+      {
+        vChild._applyRuntimeWidth(vChild.getWidthValue());
+      }
+      else
+      {
+        vChild._resetRuntimeWidth();
+      }
+    }
+  }
+
+  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.height)
+    {
+      if (vChild._isHeightEssential() && !vChild._computedHeightTypeNull)
+      {
+        vChild._applyRuntimeHeight(vChild.getHeightValue());
+      }
+      else
+      {
+        vChild._resetRuntimeHeight();
+      }
+    }
+  }
+}
+
+qx.Proto.layoutChild_locationX = function(vChild, vJobs)
+{
+  var vWidget = this.getWidget();
+
+  // handle first child
+  if (vWidget.getFirstVisibleChild() == vChild)
+  {
+    switch(vWidget.getLayoutMode())
+    {
+      case "right":
+      case "left-reversed":
+        var vPos = vWidget.getPaddingRight() + vWidget.getAccumulatedChildrenOuterWidth() - vChild.getOuterWidth();
+        break;
+
+      case "center":
+      case "center-reversed":
+        var vPos = vWidget.getPaddingLeft() + Math.round((vWidget.getInnerWidth() - vWidget.getAccumulatedChildrenOuterWidth()) / 2);
+        break;
+
+      default:
+        var vPos = vWidget.getPaddingLeft();
+    }
+  }
+
+  // handle any following child
+  else
+  {
+    var vPrev = vChild.getPreviousVisibleSibling();
+
+    switch(vWidget.getLayoutMode())
+    {
+      case "right":
+      case "left-reversed":
+        var vPos = vPrev._cachedLocationHorizontal - vChild.getOuterWidth() - vWidget.getSpacing();
+        break;
+
+      default:
+        var vPos = vPrev._cachedLocationHorizontal + vPrev.getOuterWidth() + vWidget.getSpacing();
+    }
+  }
+
+  // store for next sibling
+  vChild._cachedLocationHorizontal = vPos;
+
+  // apply styles
+  switch(vWidget.getLayoutMode())
+  {
+    case "right":
+    case "right-reversed":
+    case "center-reversed":
+      // add relative positions (like 'position:relative' in css)
+      vPos += !vChild._computedRightTypeNull ? vChild.getRightValue() : !vChild._computedLeftTypeNull ? -(vChild.getLeftValue()) : 0;
+
+      vChild._resetRuntimeLeft();
+      vChild._applyRuntimeRight(vPos);
+      break;
+
+    default:
+      // add relative positions (like 'position:relative' in css)
+      vPos += !vChild._computedLeftTypeNull ? vChild.getLeftValue() : !vChild._computedRightTypeNull ? -(vChild.getRightValue()) : 0;
+
+      vChild._resetRuntimeRight();
+      vChild._applyRuntimeLeft(vPos);
+  }
+}
+
+qx.Proto.layoutChild_locationY = function(vChild, vJobs)
+{
+  var vWidget = this.getWidget();
+
+  // special stretching support
+  if (qx.sys.Client.getInstance().isGecko() && vChild.getAllowStretchY() && vWidget.getStretchChildrenOrthogonalAxis() && vChild._computedHeightTypeNull)
+  {
+    vChild._applyRuntimeTop(vWidget.getPaddingTop() || 0);
+    vChild._applyRuntimeBottom(vWidget.getPaddingBottom() || 0);
+
+    return;
+  }
+
+  // priority to childs internal alignment
+  var vAlign = vChild.getVerticalAlign() || vWidget.getVerticalChildrenAlign();
+
+  // handle middle alignment
+  var vPos = vAlign == "middle" ? Math.round((vWidget.getInnerHeight() - vChild.getOuterHeight()) / 2) : 0;
+
+  // the bottom alignment use the real 'bottom' styleproperty to
+  // use the best available method in modern browsers
+  if (vAlign == "bottom")
+  {
+    // add parent padding
+    vPos += vWidget.getPaddingBottom();
+
+    // relative positions (like 'position:relative' in css)
+    if (!vChild._computedBottomTypeNull) {
+      vPos += vChild.getBottomValue();
+    }
+    else if (!vChild._computedTopTypeNull) {
+      vPos -= vChild.getTopValue();
+    }
+
+    // apply styles
+    vChild._resetRuntimeTop();
+    vChild._applyRuntimeBottom(vPos);
+  }
+  else
+  {
+    // add parent padding
+    vPos += vWidget.getPaddingTop();
+
+    // relative positions (like 'position:relative' in css)
+    if (!vChild._computedTopTypeNull) {
+      vPos += vChild.getTopValue();
+    }
+    else if (!vChild._computedBottomTypeNull) {
+      vPos -= vChild.getBottomValue();
+    }
+
+    // apply styles
+    vChild._resetRuntimeBottom();
+    vChild._applyRuntimeTop(vPos);
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/LayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/LayoutImpl.js
new file mode 100644 (file)
index 0000000..5855d7d
--- /dev/null
@@ -0,0 +1,442 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#module(ui_layout)
+#require(qx.sys.Client)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.layout.LayoutImpl", qx.core.Object,
+function(vWidget)
+{
+  qx.core.Object.call(this);
+
+  this._widget = vWidget;
+});
+
+
+
+
+/*!
+  Returns the associated widget
+*/
+qx.Proto.getWidget = function() {
+  return this._widget;
+}
+
+
+/*!
+  Global Structure:
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+  [10] LAYOUT CHILD
+  [11] DISPOSER
+*/
+
+
+/*
+---------------------------------------------------------------------------
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Compute and return the box width of the given child
+*/
+qx.Proto.computeChildBoxWidth = function(vChild) {
+  return vChild.getWidthValue() || vChild._computeBoxWidthFallback();
+}
+
+/*!
+  Compute and return the box height of the given child
+*/
+qx.Proto.computeChildBoxHeight = function(vChild) {
+  return vChild.getHeightValue() || vChild._computeBoxHeightFallback();
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Compute and return the needed width of the given child
+*/
+qx.Proto.computeChildNeededWidth = function(vChild)
+{
+  // omit ultra long lines, these two variables only needed once
+  // here, but this enhance the readability of the code :)
+  var vMinBox = vChild._computedMinWidthTypePercent ? null : vChild.getMinWidthValue();
+  var vMaxBox = vChild._computedMaxWidthTypePercent ? null : vChild.getMaxWidthValue();
+
+  var vBox = (vChild._computedWidthTypePercent || vChild._computedWidthTypeFlex ? null : vChild.getWidthValue()) || vChild.getPreferredBoxWidth() || 0;
+
+  return qx.lang.Number.limit(vBox, vMinBox, vMaxBox) + vChild.getMarginLeft() + vChild.getMarginRight();
+}
+
+/*!
+  Compute and return the needed height of the given child
+*/
+qx.Proto.computeChildNeededHeight = function(vChild)
+{
+  // omit ultra long lines, these two variables only needed once
+  // here, but this enhance the readability of the code :)
+  var vMinBox = vChild._computedMinHeightTypePercent ? null : vChild.getMinHeightValue();
+  var vMaxBox = vChild._computedMaxHeightTypePercent ? null : vChild.getMaxHeightValue();
+
+  var vBox = (vChild._computedHeightTypePercent || vChild._computedHeightTypeFlex ? null : vChild.getHeightValue()) || vChild.getPreferredBoxHeight() || 0;
+
+  return qx.lang.Number.limit(vBox, vMinBox, vMaxBox) + vChild.getMarginTop() + vChild.getMarginBottom();
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Calculate the maximum needed width of all children
+*/
+qx.Proto.computeChildrenNeededWidth_max = function()
+{
+  for (var i=0, ch=this.getWidget().getVisibleChildren(), chl=ch.length, maxv=0; i<chl; i++) {
+    maxv = Math.max(maxv, ch[i].getNeededWidth());
+  }
+
+  return maxv;
+}
+
+/*!
+  Calculate the maximum needed height of all children
+*/
+qx.Proto.computeChildrenNeededHeight_max = function()
+{
+  for (var i=0, ch=this.getWidget().getVisibleChildren(), chl=ch.length, maxv=0; i<chl; i++) {
+    maxv = Math.max(maxv, ch[i].getNeededHeight());
+  }
+
+  return maxv;
+}
+
+qx.Proto.computeChildrenNeededWidth_sum = function()
+{
+  for (var i=0, ch=this.getWidget().getVisibleChildren(), chl=ch.length, sumv=0; i<chl; i++) {
+    sumv += ch[i].getNeededWidth();
+  }
+
+  return sumv;
+}
+
+qx.Proto.computeChildrenNeededHeight_sum = function()
+{
+  for (var i=0, ch=this.getWidget().getVisibleChildren(), chl=ch.length, sumv=0; i<chl; i++) {
+    sumv += ch[i].getNeededHeight();
+  }
+
+  return sumv;
+}
+
+/*!
+  Compute and return the width needed by all children of this widget
+*/
+qx.Proto.computeChildrenNeededWidth = qx.Proto.computeChildrenNeededWidth_max;
+
+/*!
+  Compute and return the height needed by all children of this widget
+*/
+qx.Proto.computeChildrenNeededHeight = qx.Proto.computeChildrenNeededHeight_max;
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Things to do and layout when any of the childs changes its outer width.
+  Needed by layouts where the children depend on each other, like flow or box layouts.
+*/
+qx.Proto.updateSelfOnChildOuterWidthChange = function(vChild) {}
+
+/*!
+  Things to do and layout when any of the childs changes its outer height.
+  Needed by layouts where the children depend on each other, like flow or box layouts.
+*/
+qx.Proto.updateSelfOnChildOuterHeightChange = function(vChild) {}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Actions that should be done if the inner width of the layout widget has changed.
+  Normally this includes updates to percent values and ranges.
+*/
+qx.Proto.updateChildOnInnerWidthChange = function(vChild) {}
+
+/*!
+  Actions that should be done if the inner height of the layout widget has changed.
+  Normally this includes updates to percent values and ranges.
+*/
+qx.Proto.updateChildOnInnerHeightChange = function(vChild) {}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Invalidate and recompute cached data according to job queue.
+  This is executed at the beginning of the job queue handling.
+*/
+qx.Proto.updateSelfOnJobQueueFlush = function(vJobQueue) {}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Updates children on job queue flush.
+  This is executed at the end of the job queue handling.
+*/
+qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue) {}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Add child to current layout. Rarely needed by some layout implementations.
+*/
+qx.Proto.updateChildrenOnAddChild = function(vChild, vIndex) {}
+
+/*!
+  Remove child from current layout.
+  Needed by layouts where the children depend on each other, like flow or box layouts.
+*/
+qx.Proto.updateChildrenOnRemoveChild = function(vChild, vIndex) {}
+
+/*!
+  Move child within its parent to a new position.
+  Needed by layouts where the children depend on each other, like flow or box layouts.
+*/
+qx.Proto.updateChildrenOnMoveChild = function(vChild, vIndex, vOldIndex) {}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Has full control of the order in which the registered
+  (or non-registered) children should be layouted.
+*/
+qx.Proto.flushChildrenQueue = function(vChildrenQueue)
+{
+  var vWidget = this.getWidget();
+
+  for (var vHashCode in vChildrenQueue) {
+    vWidget._layoutChild(vChildrenQueue[vHashCode]);
+  }
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [10] LAYOUT CHILD
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Called from qx.ui.core.Widget. Its task is to apply the layout
+  (excluding border and padding) to the child.
+*/
+qx.Proto.layoutChild = function(vChild, vJobs) {}
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto.layoutChild_sizeLimitX = qx.util.Return.returnTrue;
+  qx.Proto.layoutChild_sizeLimitY = qx.util.Return.returnTrue;
+}
+else
+{
+  /*!
+    Apply min-/max-width/height to the child. Direct usage of stylesheet properties.
+    This is only possible in modern capable clients (i.e. excluding all current
+    versions of Internet Explorer)
+  */
+  qx.Proto.layoutChild_sizeLimitX = function(vChild, vJobs)
+  {
+    if (vJobs.minWidth) {
+      vChild._computedMinWidthTypeNull ? vChild._resetRuntimeMinWidth() : vChild._applyRuntimeMinWidth(vChild.getMinWidthValue());
+    }
+    else if (vJobs.initial && !vChild._computedMinWidthTypeNull) {
+      vChild._applyRuntimeMinWidth(vChild.getMinWidthValue());
+    }
+
+    if (vJobs.maxWidth) {
+      vChild._computedMaxWidthTypeNull ? vChild._resetRuntimeMaxWidth() : vChild._applyRuntimeMaxWidth(vChild.getMaxWidthValue());
+    }
+    else if (vJobs.initial && !vChild._computedMaxWidthTypeNull) {
+      vChild._applyRuntimeMaxWidth(vChild.getMaxWidthValue());
+    }
+  }
+
+  qx.Proto.layoutChild_sizeLimitY = function(vChild, vJobs)
+  {
+    if (vJobs.minHeight) {
+      vChild._computedMinHeightTypeNull ? vChild._resetRuntimeMinHeight() : vChild._applyRuntimeMinHeight(vChild.getMinHeightValue());
+    }
+    else if (vJobs.initial && !vChild._computedMinHeightTypeNull) {
+      vChild._applyRuntimeMinHeight(vChild.getMinHeightValue());
+    }
+
+    if (vJobs.maxHeight) {
+      vChild._computedMaxHeightTypeNull ? vChild._resetRuntimeMaxHeight() : vChild._applyRuntimeMaxHeight(vChild.getMaxHeightValue());
+    }
+    else if (vJobs.initial && !vChild._computedMaxHeightTypeNull) {
+      vChild._applyRuntimeMaxHeight(vChild.getMaxHeightValue());
+    }
+  }
+}
+
+/*!
+  Apply the margin values as pure stylesheet equivalent.
+*/
+qx.Proto.layoutChild_marginX = function(vChild, vJobs)
+{
+  if (vJobs.marginLeft || vJobs.initial)
+  {
+    var vValueLeft = vChild.getMarginLeft();
+    vValueLeft != null ? vChild._applyRuntimeMarginLeft(vValueLeft) : vChild._resetRuntimeMarginLeft();
+  }
+
+  if (vJobs.marginRight || vJobs.initial)
+  {
+    var vValueRight = vChild.getMarginRight();
+    vValueRight != null ? vChild._applyRuntimeMarginRight(vValueRight) : vChild._resetRuntimeMarginRight();
+  }
+}
+
+qx.Proto.layoutChild_marginY = function(vChild, vJobs)
+{
+  if (vJobs.marginTop || vJobs.initial)
+  {
+    var vValueTop = vChild.getMarginTop();
+    vValueTop != null ? vChild._applyRuntimeMarginTop(vValueTop) : vChild._resetRuntimeMarginTop();
+  }
+
+  if (vJobs.marginBottom || vJobs.initial)
+  {
+    var vValueBottom = vChild.getMarginBottom();
+    vValueBottom != null ? vChild._applyRuntimeMarginBottom(vValueBottom) : vChild._resetRuntimeMarginBottom();
+  }
+}
+
+qx.Proto.layoutChild_sizeX_essentialWrapper = function(vChild, vJobs) {
+  return vChild._isWidthEssential() ? this.layoutChild_sizeX(vChild, vJobs) : vChild._resetRuntimeWidth();
+}
+
+qx.Proto.layoutChild_sizeY_essentialWrapper = function(vChild, vJobs) {
+  return vChild._isHeightEssential() ? this.layoutChild_sizeY(vChild, vJobs) : vChild._resetRuntimeHeight();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [11] DISPOSER
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Dispose the layout implmentation and release the associated widget.
+*/
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  this._widget = null;
+
+  qx.core.Object.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuButtonLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuButtonLayoutImpl.js
new file mode 100644 (file)
index 0000000..c62b60e
--- /dev/null
@@ -0,0 +1,183 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_menu)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.layout.MenuButtonLayoutImpl", qx.renderer.layout.HorizontalBoxLayoutImpl,
+function(vWidget)
+{
+  qx.renderer.layout.HorizontalBoxLayoutImpl.call(this, vWidget);
+
+  // We don't need flex support, should make things a bit faster,
+  // as this omits some additional loops in qx.renderer.layout.HorizontalBoxLayoutImpl.
+  this.setEnableFlexSupport(false);
+});
+
+
+/*!
+  Global Structure:
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+  [10] LAYOUT CHILD
+  [11] DISPOSER
+
+
+  Inherits from qx.renderer.layout.HorizontalBoxLayoutImpl:
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+  [11] DISPOSER
+*/
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Compute and return the width needed by all children of this widget
+*/
+qx.Proto.computeChildrenNeededWidth = function()
+{
+  // Caching the widget reference
+  var vWidget = this.getWidget();
+
+  // Ignore the verticalBoxLayout inside qx.ui.menu.Menu
+  var vMenu = vWidget.getParent().getParent();
+
+  // Let the menu do the real hard things
+  return vMenu.getMenuButtonNeededWidth();
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Things to do and layout when any of the childs changes its outer width.
+  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
+*/
+qx.Proto.updateSelfOnChildOuterWidthChange = function(vChild)
+{
+  // Caching the widget reference
+  var vWidget = this.getWidget();
+
+  // Ignore the verticalBoxLayout inside qx.ui.menu.Menu
+  var vMenu = vWidget.getParent().getParent();
+
+  // Send out invalidate signals
+  switch(vChild)
+  {
+    case vWidget._iconObject:
+      vMenu._invalidateMaxIconWidth();
+      break;
+
+    case vWidget._labelObject:
+      vMenu._invalidateMaxLabelWidth();
+      break;
+
+    case vWidget._shortcutObject:
+      vMenu._invalidateMaxShortcutWidth();
+      break;
+
+    case vWidget._arrowObject:
+      vMenu._invalidateMaxArrowWidth();
+      break;
+  }
+
+  // Call superclass implementation
+  return qx.renderer.layout.HorizontalBoxLayoutImpl.prototype.updateSelfOnChildOuterWidthChange.call(this, vChild);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [10] LAYOUT CHILD
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.layoutChild_locationX = function(vChild, vJobs)
+{
+  // Caching the widget reference
+  var vWidget = this.getWidget();
+
+  // Ignore the verticalBoxLayout inside qx.ui.menu.Menu
+  var vMenu = vWidget.getParent().getParent();
+
+  // Left position of the child
+  var vPos = null;
+
+  // Ask the menu instance for the correct location
+  switch(vChild)
+  {
+    case vWidget._iconObject:
+      vPos = vMenu.getIconPosition();
+      break;
+
+    case vWidget._labelObject:
+      vPos = vMenu.getLabelPosition();
+      break;
+
+    case vWidget._shortcutObject:
+      vPos = vMenu.getShortcutPosition();
+      break;
+
+    case vWidget._arrowObject:
+      vPos = vMenu.getArrowPosition();
+      break;
+  }
+
+  if (vPos != null)
+  {
+    vPos += vWidget.getPaddingLeft();
+    vChild._applyRuntimeLeft(vPos);
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuLayoutImpl.js
new file mode 100644 (file)
index 0000000..abb747c
--- /dev/null
@@ -0,0 +1,100 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_menu)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.layout.MenuLayoutImpl", qx.renderer.layout.VerticalBoxLayoutImpl,
+function(vWidget)
+{
+  qx.renderer.layout.VerticalBoxLayoutImpl.call(this, vWidget);
+
+  // We don't need flex support, should make things a bit faster,
+  // as this omits some additional loops in qx.renderer.layout.HorizontalBoxLayoutImpl.
+  this.setEnableFlexSupport(false);
+});
+
+
+/*!
+  Global Structure:
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+  [10] LAYOUT CHILD
+  [11] DISPOSER
+
+
+  Inherits from qx.renderer.layout.VerticalBoxLayoutImpl:
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+  [10] LAYOUT CHILD
+  [11] DISPOSER
+*/
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Updates children on special jobs
+*/
+qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue)
+{
+  var vWidget = this.getWidget();
+  var ch, chc;
+
+  if (vQueue.preferredInnerWidth)
+  {
+    var ch = vWidget.getChildren(), chl = ch.length, chc;
+    var sch, schl;
+
+    for (var i=0; i<chl; i++)
+    {
+      chc = ch[i];
+      sch = chc.getChildren();
+      schl = sch.length;
+
+      for (var j=0; j<schl; j++) {
+        sch[j].addToLayoutChanges("locationX");
+      }
+    }
+  }
+
+  // Call superclass implementation
+  return qx.renderer.layout.VerticalBoxLayoutImpl.prototype.updateChildrenOnJobQueueFlush.call(this, vQueue);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/VerticalBoxLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/VerticalBoxLayoutImpl.js
new file mode 100644 (file)
index 0000000..deaac7f
--- /dev/null
@@ -0,0 +1,866 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+#module(ui_layout)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.layout.VerticalBoxLayoutImpl", qx.renderer.layout.LayoutImpl,
+function(vWidget) {
+  qx.renderer.layout.LayoutImpl.call(this, vWidget);
+});
+
+qx.OO.addProperty({ name : "enableFlexSupport", type : "boolean", defaultValue : true });
+
+
+
+/*!
+  Global Structure:
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+  [10] LAYOUT CHILD
+  [11] DISPOSER
+
+
+  Inherits from qx.renderer.layout.LayoutImpl:
+  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
+  [11] DISPOSER
+*/
+
+
+
+/*
+---------------------------------------------------------------------------
+  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Compute and return the box width of the given child.
+*/
+qx.Proto.computeChildBoxWidth = function(vChild)
+{
+  if (this.getWidget().getStretchChildrenOrthogonalAxis() && vChild._computedWidthTypeNull && vChild.getAllowStretchX()) {
+    return this.getWidget().getInnerWidth();
+  }
+
+  return vChild.getWidthValue() || vChild._computeBoxWidthFallback();
+}
+
+/*!
+  Compute and return the box height of the given child.
+*/
+qx.Proto.computeChildBoxHeight = function(vChild) {
+  return vChild.getHeightValue() || vChild._computeBoxHeightFallback();
+}
+
+/*!
+  Computes the height of all flexible children.
+*/
+qx.Proto.computeChildrenFlexHeight = function()
+{
+  if (this._childrenFlexHeightComputed || !this.getEnableFlexSupport()) {
+    return;
+  }
+
+  this._childrenFlexHeightComputed = true;
+
+  // this.debug("computeChildrenFlexHeight");
+
+  var vWidget = this.getWidget();
+  var vChildren = vWidget.getVisibleChildren();
+  var vChildrenLength = vChildren.length;
+  var vCurrentChild;
+  var vFlexibleChildren = [];
+  var vAvailHeight = vWidget.getInnerHeight();
+  var vUsedHeight = vWidget.getSpacing() * (vChildrenLength-1);
+  var vIterator;
+
+
+  // *************************************************************
+  // 1. Compute the sum of all static sized children and finding
+  //    all flexible children.
+  // *************************************************************
+  for (vIterator=0; vIterator<vChildrenLength; vIterator++)
+  {
+    vCurrentChild = vChildren[vIterator];
+
+    if (vCurrentChild._computedHeightTypeFlex)
+    {
+      vFlexibleChildren.push(vCurrentChild);
+
+      if (vWidget._computedHeightTypeAuto) {
+        vUsedHeight += vCurrentChild.getPreferredBoxHeight();
+      }
+    }
+    else
+    {
+      vUsedHeight += vCurrentChild.getOuterHeight();
+    }
+  }
+
+  // this.debug("Height: " + vUsedHeight + "/" + vAvailHeight);
+  // this.debug("Flexible Count: " + vFlexibleChildren.length);
+
+
+  // *************************************************************
+  // 2. Compute the sum of all flexible children heights
+  // *************************************************************
+  var vRemainingHeight = vAvailHeight - vUsedHeight;
+  var vFlexibleChildrenLength = vFlexibleChildren.length;
+  var vPrioritySum = 0;
+
+  for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++) {
+    vPrioritySum += vFlexibleChildren[vIterator]._computedHeightParsed;
+  }
+
+
+  // *************************************************************
+  // 3. Calculating the size of each 'part'.
+  // *************************************************************
+  var vPartHeight = vRemainingHeight / vPrioritySum;
+
+
+  if (!vWidget.getUseAdvancedFlexAllocation())
+  {
+    // *************************************************************
+    // 4a. Computing the flex height value of each flexible child
+    //     and add the height to the usedHeight, so that we can
+    //     fix rounding problems later.
+    // *************************************************************
+    for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
+    {
+      vCurrentChild = vFlexibleChildren[vIterator];
+
+      vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightParsed * vPartHeight);
+      vUsedHeight += vCurrentChild._computedHeightFlexValue;
+    }
+  }
+  else
+  {
+    // *************************************************************
+    // 4b. Calculating the diff. Which means respect the min/max
+    //     height configuration in flex and store the higher/lower
+    //     data in a diff.
+    // *************************************************************
+
+    var vAllocationDiff = 0;
+    var vMinAllocationLoops, vFlexibleChildrenLength, vAdjust, vCurrentAllocationSum, vFactorSum, vComputedFlexibleHeight;
+
+    for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
+    {
+      vCurrentChild = vFlexibleChildren[vIterator];
+
+      vComputedFlexibleHeight = vCurrentChild._computedHeightFlexValue = vCurrentChild._computedHeightParsed * vPartHeight;
+      vAllocationDiff += vComputedFlexibleHeight - qx.lang.Number.limit(vComputedFlexibleHeight, vCurrentChild.getMinHeightValue(), vCurrentChild.getMaxHeightValue());
+    }
+
+    // Rounding diff
+    vAllocationDiff = Math.round(vAllocationDiff);
+
+    if (vAllocationDiff == 0)
+    {
+      // *************************************************************
+      // 5a. If the diff is equal zero we must not do anything more
+      //     and do nearly identical the same like in 4a. which means
+      //     to round the calculated flex value and add it to the
+      //     used height so we can fix rounding problems later.
+      // *************************************************************
+
+      // Rounding values and fixing rounding errors
+      for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
+      {
+        vCurrentChild = vFlexibleChildren[vIterator];
+
+        vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightFlexValue);
+        vUsedHeight += vCurrentChild._computedHeightFlexValue;
+      }
+    }
+    else
+    {
+      // *************************************************************
+      // 5b. Find maximum loops of each adjustable child to adjust
+      //     the height until the min/max height limits are reached.
+      // *************************************************************
+
+      var vUp = vAllocationDiff > 0;
+      for (vIterator=vFlexibleChildrenLength-1; vIterator>=0; vIterator--)
+      {
+        vCurrentChild = vFlexibleChildren[vIterator];
+
+        if (vUp)
+        {
+          vAdjust = (vCurrentChild.getMaxHeightValue() || Infinity) - vCurrentChild._computedHeightFlexValue;
+
+          if (vAdjust > 0)
+          {
+            vCurrentChild._allocationLoops = Math.floor(vAdjust / vCurrentChild._computedHeightParsed);
+          }
+          else
+          {
+            qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
+
+            vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightFlexValue);
+            vUsedHeight += Math.round(vCurrentChild._computedHeightFlexValue + vAdjust);
+          }
+        }
+        else
+        {
+          vAdjust = qx.util.Validation.isValidNumber(vCurrentChild.getMinHeightValue()) ? vCurrentChild._computedHeightFlexValue - vCurrentChild.getMinHeightValue() : vCurrentChild._computedHeightFlexValue;
+
+          if (vAdjust > 0)
+          {
+            vCurrentChild._allocationLoops = Math.floor(vAdjust / vCurrentChild._computedHeightParsed);
+          }
+          else
+          {
+            qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
+
+            vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightFlexValue);
+            vUsedHeight += Math.round(vCurrentChild._computedHeightFlexValue - vAdjust);
+          }
+        }
+      }
+
+      // *************************************************************
+      // 6. Try to reallocate the height between flexible children
+      //    so that the requirements through min/max limits
+      //    are satisfied.
+      // *************************************************************
+      while (vAllocationDiff != 0 && vFlexibleChildrenLength > 0)
+      {
+        vFlexibleChildrenLength = vFlexibleChildren.length;
+        vMinAllocationLoops = Infinity;
+        vFactorSum = 0;
+
+        // Find minimal loop amount
+        for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
+        {
+          vMinAllocationLoops = Math.min(vMinAllocationLoops, vFlexibleChildren[vIterator]._allocationLoops);
+          vFactorSum += vFlexibleChildren[vIterator]._computedHeightParsed;
+        }
+
+        // Be sure that the adjustment is not bigger/smaller than diff
+        vCurrentAllocationSum = Math.min(vFactorSum * vMinAllocationLoops, vAllocationDiff);
+
+        // this.debug("Diff: " + vAllocationDiff);
+        // this.debug("Min Loops: " + vMinAllocationLoops);
+        // this.debug("Sum: " + vCurrentAllocationSum);
+        // this.debug("Factor: " + vFactorSum);
+
+        // Reducing diff by current sum
+        vAllocationDiff -= vCurrentAllocationSum;
+
+        // Adding sizes to children to adjust
+        for (vIterator=vFlexibleChildrenLength-1; vIterator>=0; vIterator--)
+        {
+          vCurrentChild = vFlexibleChildren[vIterator];
+          vCurrentChild._computedHeightFlexValue += vCurrentAllocationSum / vFactorSum * vCurrentChild._computedHeightParsed;
+
+          if (vCurrentChild._allocationLoops == vMinAllocationLoops)
+          {
+            vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightFlexValue);
+
+            vUsedHeight += vCurrentChild._computedHeightFlexValue;
+            delete vCurrentChild._allocationLoops;
+            qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
+          }
+          else
+          {
+            if (vAllocationDiff == 0)
+            {
+              vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightFlexValue);
+              vUsedHeight += vCurrentChild._computedHeightFlexValue;
+              delete vCurrentChild._allocationLoops;
+            }
+            else
+            {
+              vCurrentChild._allocationLoops -= vMinAllocationLoops;
+            }
+          }
+        }
+      }
+    }
+  }
+
+  // *************************************************************
+  // 7. Fix rounding errors
+  // *************************************************************
+  vCurrentChild._computedHeightFlexValue += vAvailHeight - vUsedHeight;
+}
+
+qx.Proto.invalidateChildrenFlexHeight = function() {
+  delete this._childrenFlexHeightComputed;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Compute and return the height needed by all children of this widget
+*/
+qx.Proto.computeChildrenNeededHeight = function()
+{
+  var w = this.getWidget();
+  return qx.renderer.layout.LayoutImpl.prototype.computeChildrenNeededHeight_sum.call(this) + ((w.getVisibleChildrenLength()-1) * w.getSpacing());
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Things to do and layout when any of the childs changes its outer height.
+  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
+*/
+qx.Proto.updateSelfOnChildOuterHeightChange = function(vChild)
+{
+  // if a childrens outer height changes we need to update our accumulated
+  // height of all childrens (used for middle or bottom alignments)
+  this.getWidget()._invalidateAccumulatedChildrenOuterHeight();
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Actions that should be done if the inner width of the widget was changed.
+  Normally this includes update to percent values and ranges.
+*/
+qx.Proto.updateChildOnInnerWidthChange = function(vChild)
+{
+  // use variables here to be sure to call both methods.
+  var vUpdatePercent = vChild._recomputePercentX();
+  var vUpdateStretch = vChild._recomputeStretchingX();
+
+  // priority to childs internal alignment
+  if ((vChild.getHorizontalAlign() || this.getWidget().getHorizontalChildrenAlign()) == "center") {
+    vChild.addToLayoutChanges("locationX");
+  }
+
+  // inform the caller if there were any notable changes occured
+  return vUpdatePercent || vUpdateStretch;
+}
+
+/*!
+  Actions that should be done if the inner height of the widget was changed.
+  Normally this includes update to percent values and ranges.
+*/
+qx.Proto.updateChildOnInnerHeightChange = function(vChild)
+{
+  if (this.getWidget().getVerticalChildrenAlign() == "middle") {
+    vChild.addToLayoutChanges("locationY");
+  }
+
+  // use variables here to be sure to call both methods.
+  var vUpdatePercent = vChild._recomputePercentY();
+  var vUpdateFlex = vChild._recomputeFlexY();
+
+  // inform the caller if there were any notable changes occured
+  return vUpdatePercent || vUpdateFlex;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Invalidate and recompute things because of job in queue (before the rest of job handling will be executed).
+*/
+qx.Proto.updateSelfOnJobQueueFlush = function(vJobQueue)
+{
+  if (vJobQueue.addChild || vJobQueue.removeChild) {
+    this.getWidget()._invalidateAccumulatedChildrenOuterHeight();
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Updates children on special jobs
+*/
+qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue)
+{
+  var vStretchX=false, vStretchY=false;
+  var vWidget = this.getWidget();
+
+  // switching the orientation need updates for stretching on both axis
+  if (vQueue.orientation) {
+    vStretchX = vStretchY = true;
+  }
+
+  // different updates depending from the current orientation (or the new one)
+  if (vQueue.spacing || vQueue.orientation || vQueue.reverseChildrenOrder || vQueue.verticalChildrenAlign) {
+    vWidget._addChildrenToLayoutQueue("locationY");
+  }
+
+  if (vQueue.horizontalChildrenAlign) {
+    vWidget._addChildrenToLayoutQueue("locationX");
+  }
+
+  if (vQueue.stretchChildrenOrthogonalAxis) {
+    vStretchX = true;
+  }
+
+  // if stretching should be reworked reset the previous one and add
+  // a layout job to update the width respectively height.
+  if (vStretchX)
+  {
+    vWidget._recomputeChildrenStretchingX();
+    vWidget._addChildrenToLayoutQueue("width");
+  }
+
+  if (vStretchY)
+  {
+    vWidget._recomputeChildrenStretchingY();
+    vWidget._addChildrenToLayoutQueue("height");
+  }
+
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This method combines calls of methods which should be done if a widget should be removed from the current layout.
+  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
+*/
+qx.Proto.updateChildrenOnRemoveChild = function(vChild, vIndex)
+{
+  var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, i=-1;
+
+  // Fix index to be at the first flex child
+  if (this.getEnableFlexSupport())
+  {
+    for (var i=0; i<chl; i++)
+    {
+      chc = ch[i];
+      if (chc.getHasFlexY())
+      {
+        vIndex = Math.min(vIndex, i);
+        break;
+      }
+    }
+
+    i=-1;
+  }
+
+  // Handle differently depending on layout mode
+  switch(w.getLayoutMode())
+  {
+    case "bottom":
+    case "top-reversed":
+      while((chc=ch[++i]) && i<vIndex) {
+        chc.addToLayoutChanges("locationY");
+      }
+
+      break;
+
+    case "middle":
+    case "middle-reversed":
+      while(chc=ch[++i]) {
+        chc.addToLayoutChanges("locationY");
+      }
+
+      break;
+
+    default:
+      i+=vIndex;
+      while(chc=ch[++i]) {
+        chc.addToLayoutChanges("locationY");
+      }
+  }
+}
+
+/*!
+  This method combines calls of methods which should be done if a child should be moved
+  inside the same parent to a new positions.
+  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
+*/
+qx.Proto.updateChildrenOnMoveChild = function(vChild, vIndex, vOldIndex)
+{
+  var vChildren = this.getWidget().getVisibleChildren();
+
+  var vStart = Math.min(vIndex, vOldIndex);
+  var vStop = Math.max(vIndex, vOldIndex)+1;
+
+  for (var i=vStart; i<vStop; i++) {
+    vChildren[i].addToLayoutChanges("locationY");
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [09] FLUSH LAYOUT QUEUES OF CHILDREN
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This method have full control of the order in which the
+  registered (or also non-registered) children should be
+  layouted on the horizontal axis.
+*/
+qx.Proto.flushChildrenQueue = function(vChildrenQueue)
+{
+  var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, i;
+
+  // This block is needed for flex handling and
+  // will inform flex children if there was any
+  // change to the other content
+  if (this.getEnableFlexSupport())
+  {
+    this.invalidateChildrenFlexHeight();
+
+    for (i=0; i<chl; i++)
+    {
+      chc = ch[i];
+      if (chc.getHasFlexY())
+      {
+        chc._computedHeightValue = null;
+
+        if (chc._recomputeBoxHeight())
+        {
+          chc._recomputeOuterHeight();
+          chc._recomputeInnerHeight();
+        }
+
+        vChildrenQueue[chc.toHashCode()] = chc;
+        chc._layoutChanges.height = true;
+      }
+    }
+  }
+
+  switch(w.getLayoutMode())
+  {
+    case "bottom":
+    case "top-reversed":
+      // find the last child which has a layout request
+      for (var i=chl-1; i>=0 && !vChildrenQueue[ch[i].toHashCode()]; i--) {}
+
+      // layout all children before this last child
+      for (var j=0; j<=i; j++) {
+        w._layoutChild(chc=ch[j]);
+      }
+
+      break;
+
+    case "middle":
+    case "middle-reversed":
+      // re-layout all children
+      i = -1;
+      while(chc=ch[++i]) {
+        w._layoutChild(chc);
+      }
+
+      break;
+
+    default:
+      // layout all childs from the first child
+      // with an own layout request to the end
+      i = -1;
+      var changed=false;
+      while(chc=ch[++i])
+      {
+        if (changed || vChildrenQueue[chc.toHashCode()])
+        {
+          w._layoutChild(chc);
+          changed = true;
+        }
+      }
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  [10] LAYOUT CHILD
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This is called from qx.ui.core.Widget and  it's task is to apply the layout
+  (excluding border and padding) to the child.
+*/
+qx.Proto.layoutChild = function(vChild, vJobs)
+{
+  this.layoutChild_sizeX(vChild, vJobs);
+  this.layoutChild_sizeY(vChild, vJobs);
+
+  this.layoutChild_sizeLimitX(vChild, vJobs);
+  this.layoutChild_sizeLimitY(vChild, vJobs);
+
+  this.layoutChild_locationX(vChild, vJobs);
+  this.layoutChild_locationY(vChild, vJobs);
+
+  this.layoutChild_marginX(vChild, vJobs);
+  this.layoutChild_marginY(vChild, vJobs);
+}
+
+if (qx.sys.Client.getInstance().isMshtml() || qx.sys.Client.getInstance().isOpera() || qx.sys.Client.getInstance().isWebkit())
+{
+  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.width || vJobs.minWidth || vJobs.maxWidth)
+    {
+      if ((vChild._isWidthEssential() && (!vChild._computedWidthTypeNull || !vChild._computedMinWidthTypeNull || !vChild._computedMaxWidthTypeNull)) || (vChild.getAllowStretchX() && this.getWidget().getStretchChildrenOrthogonalAxis()))
+      {
+        vChild._applyRuntimeWidth(vChild.getBoxWidth());
+      }
+      else
+      {
+        vChild._resetRuntimeWidth();
+      }
+    }
+  }
+
+  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.height || vJobs.minHeight || vJobs.maxHeight)
+    {
+      if (vChild._isHeightEssential() && (!vChild._computedHeightTypeNull || !vChild._computedMinHeightTypeNull || !vChild._computedMaxHeightTypeNull))
+      {
+        vChild._applyRuntimeHeight(vChild.getBoxHeight());
+      }
+      else
+      {
+        vChild._resetRuntimeHeight();
+      }
+    }
+  }
+}
+else
+{
+  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.width)
+    {
+      if (vChild._isWidthEssential() && !vChild._computedWidthTypeNull)
+      {
+        vChild._applyRuntimeWidth(vChild.getWidthValue());
+      }
+      else
+      {
+        vChild._resetRuntimeWidth();
+      }
+    }
+  }
+
+  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
+  {
+    if (vJobs.initial || vJobs.height)
+    {
+      if (vChild._isHeightEssential() && !vChild._computedHeightTypeNull)
+      {
+        vChild._applyRuntimeHeight(vChild.getHeightValue());
+      }
+      else
+      {
+        vChild._resetRuntimeHeight();
+      }
+    }
+  }
+}
+
+qx.Proto.layoutChild_locationY = function(vChild, vJobs)
+{
+  var vWidget = this.getWidget();
+
+  // handle first child
+  if (vWidget.getFirstVisibleChild() == vChild)
+  {
+    switch(vWidget.getLayoutMode())
+    {
+      case "bottom":
+      case "top-reversed":
+        var vPos = vWidget.getPaddingBottom() + vWidget.getAccumulatedChildrenOuterHeight() - vChild.getOuterHeight();
+        break;
+
+      case "middle":
+      case "middle-reversed":
+        var vPos = vWidget.getPaddingTop() + Math.round((vWidget.getInnerHeight() - vWidget.getAccumulatedChildrenOuterHeight()) / 2);
+        break;
+
+      default:
+        var vPos = vWidget.getPaddingTop();
+    }
+  }
+
+  // handle any following child
+  else
+  {
+    var vPrev = vChild.getPreviousVisibleSibling();
+
+    switch(vWidget.getLayoutMode())
+    {
+      case "bottom":
+      case "top-reversed":
+        var vPos = vPrev._cachedLocationVertical - vChild.getOuterHeight() - vWidget.getSpacing();
+        break;
+
+      default:
+        var vPos = vPrev._cachedLocationVertical + vPrev.getOuterHeight() + vWidget.getSpacing();
+    }
+  }
+
+  // store for next sibling
+  vChild._cachedLocationVertical = vPos;
+
+  // apply styles
+  switch(this.getWidget().getLayoutMode())
+  {
+    case "bottom":
+    case "bottom-reversed":
+    case "middle-reversed":
+      // add relative positions (like 'position:relative' in css)
+      vPos += !vChild._computedBottomTypeNull ? vChild.getBottomValue() : !vChild._computedTopTypeNull ? -(vChild.getTopValue()) : 0;
+
+      vChild._resetRuntimeTop();
+      vChild._applyRuntimeBottom(vPos);
+      break;
+
+    default:
+      // add relative positions (like 'position:relative' in css)
+      vPos += !vChild._computedTopTypeNull ? vChild.getTopValue() : !vChild._computedBottomTypeNull ? -(vChild.getBottomValue()) : 0;
+
+      vChild._resetRuntimeBottom();
+      vChild._applyRuntimeTop(vPos);
+  }
+}
+
+qx.Proto.layoutChild_locationX = function(vChild, vJobs)
+{
+  var vWidget = this.getWidget();
+
+  // special stretching support
+  if (qx.sys.Client.getInstance().isGecko() && vChild.getAllowStretchX() && vWidget.getStretchChildrenOrthogonalAxis() && vChild._computedWidthTypeNull)
+  {
+    vChild._applyRuntimeLeft(vWidget.getPaddingLeft() || 0);
+    vChild._applyRuntimeRight(vWidget.getPaddingRight() || 0);
+
+    return;
+  }
+
+  // priority to childs internal alignment
+  var vAlign = vChild.getHorizontalAlign() || vWidget.getHorizontalChildrenAlign();
+
+  // handle center alignment
+  var vPos = vAlign == "center" ? Math.round((vWidget.getInnerWidth() - vChild.getOuterWidth()) / 2) : 0;
+
+  // the right alignment use the real 'right' styleproperty to
+  // use the best available method in modern browsers
+  if (vAlign == "right")
+  {
+    // add parent padding
+    vPos += vWidget.getPaddingRight();
+
+    // relative positions (like 'position:relative' in css)
+    if (!vChild._computedRightTypeNull) {
+      vPos += vChild.getRightValue();
+    }
+    else if (!vChild._computedLeftTypeNull) {
+      vPos -= vChild.getLeftValue();
+    }
+
+    // apply styles
+    vChild._resetRuntimeLeft();
+    vChild._applyRuntimeRight(vPos);
+  }
+  else
+  {
+    // add parent padding
+    vPos += vWidget.getPaddingLeft();
+
+    // relative positions (like 'position:relative' in css)
+    if (!vChild._computedLeftTypeNull) {
+      vPos += vChild.getLeftValue();
+    }
+    else if (!vChild._computedRightTypeNull) {
+      vPos -= vChild.getRightValue();
+    }
+
+    // apply styles
+    vChild._resetRuntimeRight();
+    vChild._applyRuntimeLeft(vPos);
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/AppearanceTheme.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/AppearanceTheme.js
new file mode 100644 (file)
index 0000000..57cb643
--- /dev/null
@@ -0,0 +1,164 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.theme.AppearanceTheme", qx.core.Object,
+function(vTitle)
+{
+  qx.core.Object.call(this);
+
+  this.setTitle(vTitle);
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "title", type : "string", allowNull : false, defaultValue : "" });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DATA
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._appearances = {};
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CORE METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.registerAppearance = function(vId, vData) {
+  this._appearances[vId] = vData;
+}
+
+qx.Proto.getAppearance = function(vId) {
+  return this._appearances[vId];
+}
+
+qx.Proto.setupAppearance = function(vAppearance)
+{
+  if (!vAppearance._setupDone)
+  {
+    if (vAppearance.setup) {
+      vAppearance.setup(this);
+    }
+
+    vAppearance._setupDone = true;
+  }
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  WIDGET METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.initialFrom = function(vId)
+{
+  var vAppearance = this.getAppearance(vId);
+  if (vAppearance)
+  {
+    this.setupAppearance(vAppearance);
+
+    try
+    {
+      return vAppearance.initial ? vAppearance.initial(this) : {}
+    }
+    catch(ex)
+    {
+      this.error("Couldn't apply initial appearance", ex);
+    }
+  }
+  else
+  {
+    return this.error("Missing appearance: " + vId);
+  }
+}
+
+qx.Proto.stateFrom = function(vId, vStates)
+{
+  var vAppearance = this.getAppearance(vId);
+  if (vAppearance)
+  {
+    this.setupAppearance(vAppearance);
+
+    try
+    {
+      return vAppearance.state ? vAppearance.state(this, vStates) : {}
+    }
+    catch(ex)
+    {
+      this.error("Couldn't apply state appearance", ex);
+    }
+  }
+  else
+  {
+    return this.error("Missing appearance: " + vId);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._appearances = null;
+
+  return qx.core.Object.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/ColorTheme.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/ColorTheme.js
new file mode 100644 (file)
index 0000000..2e72dc6
--- /dev/null
@@ -0,0 +1,132 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#after(qx.manager.object.ColorManager)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.theme.ColorTheme", qx.core.Object,
+function(vTitle)
+{
+  qx.core.Object.call(this);
+
+  this._compiledColors = {};
+  this.setTitle(vTitle);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "title", type : "string", allowNull : false, defaultValue : "" });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DATA
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._needsCompilation = true;
+qx.Proto._colors = {};
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PUBLIC METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getValueByName = function(vName) {
+  return this._colors[vName] || "";
+}
+
+qx.Proto.getStyleByName = function(vName) {
+  return this._compiledColors[vName] || "";
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PRIVATE METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.compile = function()
+{
+  if (!this._needsCompilation) {
+    return;
+  }
+
+  for (var vName in qx.renderer.color.Color.themedNames) {
+    this._compileValue(vName);
+  }
+
+  this._needsCompilation = false;
+}
+
+qx.Proto._compileValue = function(vName)
+{
+  var v = this._colors[vName];
+  this._compiledColors[vName] = v ? qx.renderer.color.Color.rgb2style.apply(this, this._colors[vName]) : vName;
+}
+
+qx.Proto._register = function() {
+  return qx.manager.object.ColorManager.getInstance().registerTheme(this);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  delete this._colors;
+  delete this._compiledColors;
+
+  qx.core.Object.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/IconTheme.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/IconTheme.js
new file mode 100644 (file)
index 0000000..1402ce7
--- /dev/null
@@ -0,0 +1,34 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#after(qx.manager.object.ImageManager)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.theme.IconTheme", qx.core.Object,
+function(vTitle)
+{
+  qx.core.Object.call(this);
+
+  this.setTitle(vTitle);
+});
+
+qx.OO.addProperty({ name : "title", type : "string", allowNull : false, defaultValue : "" });
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/WidgetTheme.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/WidgetTheme.js
new file mode 100644 (file)
index 0000000..54d318f
--- /dev/null
@@ -0,0 +1,34 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#after(qx.manager.object.ImageManager)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.renderer.theme.WidgetTheme", qx.core.Object,
+function(vTitle)
+{
+  qx.core.Object.call(this);
+
+  this.setTitle(vTitle);
+});
+
+qx.OO.addProperty({ name : "title", type : "string", allowNull : false, defaultValue : "" });
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/sys/Client.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/sys/Client.js
new file mode 100644 (file)
index 0000000..a32c0de
--- /dev/null
@@ -0,0 +1,394 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+/*!
+  Basic client detection implementation
+
+  Version shemes following wikipedia: major.minor[.revision[.build]]
+  http://en.wikipedia.org/wiki/Software_version
+*/
+qx.OO.defineClass("qx.sys.Client", Object,
+function()
+{
+  var vRunsLocally = window.location.protocol === "file:";
+
+  var vBrowserUserAgent = navigator.userAgent;
+  var vBrowserVendor = navigator.vendor;
+  var vBrowserProduct = navigator.product;
+  var vBrowserPlatform = navigator.platform;
+  var vBrowserModeHta = false;
+  var vBrowser;
+
+  var vEngine = null;
+  var vEngineVersion = null;
+  var vEngineVersionMajor = 0;
+  var vEngineVersionMinor = 0;
+  var vEngineVersionRevision = 0;
+  var vEngineVersionBuild = 0;
+
+  var vEngineEmulation = null;
+  var vVersionHelper;
+
+  if (window.opera && /Opera[\s\/]([0-9\.]*)/.test(vBrowserUserAgent))
+  {
+    vEngine = "opera";
+    vEngineVersion = RegExp.$1;
+
+    // Fix Opera version to match wikipedia style
+    vEngineVersion = vEngineVersion.substring(0, 3) + "." + vEngineVersion.substring(3);
+
+    vEngineEmulation = vBrowserUserAgent.indexOf("MSIE") !== -1 ? "mshtml" : vBrowserUserAgent.indexOf("Mozilla") !== -1 ? "gecko" : null;
+  }
+  else if (typeof vBrowserVendor==="string" && vBrowserVendor==="KDE" && /KHTML\/([0-9-\.]*)/.test(vBrowserUserAgent))
+  {
+    vEngine = "khtml";
+    vBrowser = "konqueror";
+    vEngineVersion = RegExp.$1;
+  }
+  else if (vBrowserUserAgent.indexOf("AppleWebKit") != -1 && /AppleWebKit\/([0-9-\.]*)/.test(vBrowserUserAgent))
+  {
+    vEngine = "webkit";
+    vEngineVersion = RegExp.$1;
+
+    if(vBrowserUserAgent.indexOf("Safari") != -1) {
+      vBrowser = "safari";
+    } else if(vBrowserUserAgent.indexOf("Omni") != -1) {
+      vBrowser = "omniweb";
+    } else {
+      vBrowser = "other webkit";
+    }
+  }
+  else if (window.controllers && typeof vBrowserProduct==="string" && vBrowserProduct==="Gecko" && /rv\:([^\);]+)(\)|;)/.test(vBrowserUserAgent))
+  {
+    // http://www.mozilla.org/docs/dom/domref/dom_window_ref13.html
+    vEngine = "gecko";
+    vEngineVersion = RegExp.$1;
+
+    if(vBrowserUserAgent.indexOf("Firefox") != -1) {
+      vBrowser = "firefox";
+    } else if(vBrowserUserAgent.indexOf("Camino") != -1) {
+      vBrowser = "camino";
+    } else if(vBrowserUserAgent.indexOf("Galeon") != -1) {
+      vBrowser = "galeon";
+    } else {
+      vBrowser = "other gecko";
+    }
+  }
+  else if (/MSIE\s+([^\);]+)(\)|;)/.test(vBrowserUserAgent))
+  {
+    vEngine = "mshtml";
+    vEngineVersion = RegExp.$1;
+
+    vBrowserModeHta = !window.external;
+  }
+
+  if (vEngineVersion)
+  {
+    vVersionHelper = vEngineVersion.split(".");
+
+    vEngineVersionMajor = vVersionHelper[0] || 0;
+    vEngineVersionMinor = vVersionHelper[1] || 0;
+    vEngineVersionRevision = vVersionHelper[2] || 0;
+    vEngineVersionBuild = vVersionHelper[3] || 0;
+  }
+
+  var vEngineBoxSizingAttr = vEngine == "gecko" ? "-moz-box-sizing" : vEngine == "mshtml" ? null : "box-sizing";
+  var vEngineQuirksMode = document.compatMode !== "CSS1Compat";
+
+  var vDefaultLocale = "en";
+  var vBrowserLocale = (vEngine == "mshtml" ? navigator.userLanguage : navigator.language).toLowerCase();
+  var vBrowserLocaleVariant = null;
+
+  var vBrowserLocaleVariantIndex = vBrowserLocale.indexOf("-");
+  if (vBrowserLocaleVariantIndex != -1)
+  {
+    vBrowserLocaleVariant = vBrowserLocale.substr(vBrowserLocaleVariantIndex+1);
+    vBrowserLocale = vBrowserLocale.substr(0, vBrowserLocaleVariantIndex);
+  }
+
+  var vPlatform = "none";
+  var vPlatformWindows = false;
+  var vPlatformMacintosh = false;
+  var vPlatformUnix = false;
+  var vPlatformOther = false;
+
+  if (vBrowserPlatform.indexOf("Windows") != -1 || vBrowserPlatform.indexOf("Win32") != -1 || vBrowserPlatform.indexOf("Win64") != -1)
+  {
+    vPlatformWindows = true;
+    vPlatform = "win";
+  }
+  else if (vBrowserPlatform.indexOf("Macintosh") != -1 || vBrowserPlatform.indexOf("MacIntel") != -1)
+  {
+    vPlatformMacintosh = true;
+    vPlatform = "mac";
+  }
+  else if (vBrowserPlatform.indexOf("X11") != -1 || vBrowserPlatform.indexOf("Linux") != -1 || vBrowserPlatform.indexOf("BSD") != -1)
+  {
+    vPlatformUnix = true;
+    vPlatform = "unix";
+  }
+  else
+  {
+    vPlatformOther = true;
+    vPlatform = "other";
+  }
+
+  var vGfxVml = false;
+  var vGfxSvg = false;
+  var vGfxSvgBuiltin = false;
+  var vGfxSvgPlugin = false;
+
+  if (vEngine == "mshtml")
+  {
+    vGfxVml = true;
+
+    // TODO: Namespace for VML:
+    // document.write('<style>v\:*{ behavior:url(#default#VML); }</style>');
+    // document.write('<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v"/>');
+  }
+
+  if (document.implementation && document.implementation.hasFeature)
+  {
+    if (document.implementation.hasFeature("org.w3c.dom.svg", "1.0"))
+    {
+      vGfxSvg = vGfxSvgBuiltin = true;
+    }
+  }
+
+  this._runsLocally = vRunsLocally;
+
+  this._engineName = vEngine;
+  this._engineNameMshtml = vEngine === "mshtml";
+  this._engineNameGecko = vEngine === "gecko";
+  this._engineNameOpera = vEngine === "opera";
+  this._engineNameKhtml = vEngine === "khtml";
+  this._engineNameWebkit = vEngine === "webkit";
+
+  this._engineVersion = parseFloat(vEngineVersion);
+  this._engineVersionMajor = parseInt(vEngineVersionMajor);
+  this._engineVersionMinor = parseInt(vEngineVersionMinor);
+  this._engineVersionRevision = parseInt(vEngineVersionRevision);
+  this._engineVersionBuild = parseInt(vEngineVersionBuild);
+
+  this._engineQuirksMode = vEngineQuirksMode;
+  this._engineBoxSizingAttribute = vEngineBoxSizingAttr;
+  this._engineEmulation = vEngineEmulation;
+
+  this._defaultLocale = vDefaultLocale;
+
+  this._browserPlatform = vPlatform;
+  this._browserPlatformWindows = vPlatformWindows;
+  this._browserPlatformMacintosh = vPlatformMacintosh;
+  this._browserPlatformUnix = vPlatformUnix;
+  this._browserPlatformOther = vPlatformOther;
+  this._browserModeHta = vBrowserModeHta;
+  this._browserLocale = vBrowserLocale;
+  this._browserLocaleVariant = vBrowserLocaleVariant;
+
+  this._gfxVml = vGfxVml;
+  this._gfxSvg = vGfxSvg;
+  this._gfxSvgBuiltin = vGfxSvgBuiltin;
+  this._gfxSvgPlugin = vGfxSvgPlugin;
+
+  this._supportsTextContent = (document.documentElement.textContent !== undefined);
+  this._supportsInnerText = (document.documentElement.innerText !== undefined);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getRunsLocally = function() {
+  return this._runsLocally;
+}
+
+qx.Proto.getEngine = function() {
+  return this._engineName;
+}
+
+qx.Proto.getVersion = function() {
+  return this._engineVersion;
+}
+
+qx.Proto.getMajor = function() {
+  return this._engineVersionMajor;
+}
+
+qx.Proto.getMinor = function() {
+  return this._engineVersionMinor;
+}
+
+qx.Proto.getRevision = function() {
+  return this._engineVersionRevision;
+}
+
+qx.Proto.getBuild = function() {
+  return this._engineVersionBuild;
+}
+
+qx.Proto.getEmulation = function() {
+  return this._engineEmulation;
+}
+
+qx.Proto.isMshtml = function() {
+  return this._engineNameMshtml;
+}
+
+qx.Proto.isGecko = function() {
+  return this._engineNameGecko;
+}
+
+qx.Proto.isOpera = function() {
+  return this._engineNameOpera;
+}
+
+qx.Proto.isKhtml = function() {
+  return this._engineNameKhtml;
+}
+
+qx.Proto.isWebkit = function() {
+  return this._engineNameWebkit;
+}
+
+qx.Proto.isSafari2 = function() {
+  return this._engineNameWebkit && (this._engineVersion < 420);
+}
+
+qx.Proto.isInQuirksMode = function() {
+  return this._engineQuirksMode;
+}
+
+qx.Proto.getLocale = function() {
+  return this._browserLocale;
+}
+
+qx.Proto.getLocaleVariant = function() {
+  return this._browserLocaleVariant;
+}
+
+qx.Proto.getDefaultLocale = function() {
+  return this._defaultLocale;
+}
+
+qx.Proto.usesDefaultLocale = function() {
+  return this._browserLocale === this._defaultLocale;
+}
+
+
+
+/**
+ * Returns the CSS attribute name for box-sizing if supported.
+ *
+ * @return {string} the attribute name.
+ */
+qx.Proto.getEngineBoxSizingAttribute = function() {
+  return this._engineBoxSizingAttribute;
+}
+
+
+qx.Proto.getPlatform = function() {
+  return this._browserPlatform;
+}
+
+/**
+ * Returns whether the client platform is a Windows machine.
+ *
+ * @return {boolean} whether the client platform is a Windows.
+ */
+qx.Proto.runsOnWindows = function() {
+  return this._browserPlatformWindows;
+}
+
+/**
+ * Returns whether the client platform is a Macintosh machine.
+ *
+ * @return {boolean} whether the client platform is a Macintosh.
+ */
+qx.Proto.runsOnMacintosh = function() {
+  return this._browserPlatformMacintosh;
+}
+
+/**
+ * Returns whether the client platform is a X11 powered machine.
+ *
+ * @return {boolean} whether the client platform is a X11 powered machine.
+ */
+qx.Proto.runsOnUnix = function() {
+  return this._browserPlatformUnix;
+}
+
+qx.Proto.supportsVml = function() {
+  return this._gfxVml;
+}
+
+qx.Proto.supportsSvg = function() {
+  return this._gfxSvg;
+}
+
+qx.Proto.usesSvgBuiltin = function() {
+  return this._gfxSvgBuiltin;
+}
+
+qx.Proto.usesSvgPlugin = function() {
+  return this._gfxSvgPlugin;
+}
+
+
+/**
+ * Returns whether the client supports the W3C property textContent of DOM element nodes.
+ *
+ * @return {boolean} whether the client supports textContent.
+ */
+qx.Proto.supportsTextContent = function() {
+  return this._supportsTextContent;
+}
+
+
+/**
+ * Returns whether the client supports the W3C property innerText of DOM element nodes.
+ *
+ * @return {boolean} whether the client supports innerText.
+ */
+qx.Proto.supportsInnerText = function() {
+  return this._supportsInnerText;
+}
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/appearance/Classic.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/appearance/Classic.js
new file mode 100644 (file)
index 0000000..c45c98d
--- /dev/null
@@ -0,0 +1,2219 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+ * Sebastian Werner (wpbasti)
+ * Andreas Ecker (ecker)
+ * Til Schneider (til132)
+
+ ************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#module(theme_appearance)
+#optional(qx.renderer.color.Color)
+#optional(qx.renderer.color.ColorObject)
+#optional(qx.renderer.border.Border)
+#optional(qx.renderer.border.BorderObject)
+#optional(qx.renderer.font.Font)
+#optional(qx.renderer.font.FontObject)
+
+ ************************************************************************ */
+
+qx.OO.defineClass("qx.theme.appearance.Classic", qx.renderer.theme.AppearanceTheme,
+function(vTitle) {
+  qx.renderer.theme.AppearanceTheme.call(this, vTitle || "qooxdoo default appearance");
+});
+
+
+
+
+qx.Proto._appearances = qx.lang.Object.carefullyMergeWith( {
+  /*
+  ---------------------------------------------------------------------------
+    CORE
+  ---------------------------------------------------------------------------
+  */
+
+  "image" : {
+    initial : function(vTheme) {
+      return {
+        allowStretchX : false,
+        allowStretchY : false
+      }
+    }
+  },
+
+  "client-document" : {
+    setup : function() {
+      this.bgcolor = new qx.renderer.color.ColorObject("threedface");
+      this.color = new qx.renderer.color.ColorObject("windowtext");
+    },
+
+    initial : function(vTheme) {
+      return {
+        backgroundColor : this.bgcolor,
+        color : this.color,
+        hideFocus : true,
+        enableElementFocus : false
+      }
+    }
+  },
+
+  "blocker" : {
+    initial : function(vTheme) {
+      // You could also use: "static/image/dotted_white.gif" for example as backgroundImage here
+      // (Visible) background tiles could be dramatically slow down mshtml!
+      // A background image or color is always needed for mshtml to block the events successfully.
+      return {
+        cursor : "default",
+        backgroundImage : "static/image/blank.gif"
+      }
+    }
+  },
+
+  "atom" : {
+    initial : function(vTheme) {
+      return {
+        cursor : "default",
+        spacing : 4,
+        width : "auto",
+        height : "auto",
+        horizontalChildrenAlign : "center",
+        verticalChildrenAlign : "middle",
+        stretchChildrenOrthogonalAxis : false,
+        allowStretchY : false,
+        allowStretchX : false
+      }
+    }
+  },
+
+  "label" : {
+    setup : function() {
+      this.color_disabled = new qx.renderer.color.ColorObject("graytext");
+      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
+    },
+
+    initial : function(vTheme) {
+      return {
+        font: this.font,
+        wrap : false
+      }
+    },
+
+    state : function(vTheme, vStates) {
+      return {
+        color : vStates.disabled ? this.color_disabled : null
+      }
+    }
+  },
+
+  "htmlcontainer" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("label");
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("label", vStates);
+    }
+  },
+
+  "popup" : {
+    initial : function(vTheme) {
+      return {
+        width : "auto",
+        height : "auto"
+      }
+    }
+  },
+
+  "tool-tip" : {
+    setup : function() {
+      this.bgcolor = new qx.renderer.color.ColorObject("InfoBackground");
+      this.color = new qx.renderer.color.ColorObject("InfoText");
+    },
+
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("popup"), {
+        backgroundColor : this.bgcolor,
+        color : this.color,
+        border : qx.renderer.border.BorderPresets.getInstance().info,
+        paddingTop : 1,
+        paddingRight : 3,
+        paddingBottom : 2,
+        paddingLeft : 3
+      });
+    }
+  },
+
+  "iframe" : {
+    initial : function(vTheme) {
+      return {
+        border : qx.renderer.border.BorderPresets.getInstance().inset
+      }
+    }
+  },
+
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    BUTTON
+  ---------------------------------------------------------------------------
+  */
+
+  "button" : {
+    setup : function() {
+      this.bgcolor_default = new qx.renderer.color.ColorObject("buttonface");
+      this.bgcolor_over = new qx.renderer.color.Color("#87BCE5");
+      this.bgcolor_left = new qx.renderer.color.Color("#FFF0C9");
+
+      this.border_pressed = qx.renderer.border.BorderPresets.getInstance().inset;
+      this.border_default = qx.renderer.border.BorderPresets.getInstance().outset;
+    },
+
+    initial : function(vTheme) {
+      return vTheme.initialFrom("atom");
+    },
+
+    state : function(vTheme, vStates) {
+      var vReturn = {
+        backgroundColor : vStates.abandoned ? this.bgcolor_left : vStates.over ? this.bgcolor_over : this.bgcolor_default,
+        border : vStates.pressed || vStates.checked || vStates.abandoned ? this.border_pressed : this.border_default
+      }
+
+      if (vStates.pressed || vStates.abandoned) {
+        vReturn.paddingTop = 4;
+        vReturn.paddingRight = 3;
+        vReturn.paddingBottom = 2;
+        vReturn.paddingLeft = 5;
+      }
+      else {
+        vReturn.paddingTop = vReturn.paddingBottom = 3;
+        vReturn.paddingRight = vReturn.paddingLeft = 4;
+      }
+
+      return vReturn;
+    }
+  },
+
+
+
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    TOOLBAR
+  ---------------------------------------------------------------------------
+  */
+
+  "toolbar" : {
+    setup : function() {
+      this.bgcolor = new qx.renderer.color.ColorObject("threedface");
+    },
+
+    initial : function(vTheme) {
+      return {
+        border : qx.renderer.border.BorderPresets.getInstance().thinOutset,
+        backgroundColor : this.bgcolor,
+        height : "auto"
+      }
+    }
+  },
+
+  "toolbar-part" : {
+    initial : function(vTheme) {
+      return {
+        width : "auto"
+      }
+    }
+  },
+
+  "toolbar-part-handle" : {
+    initial : function(vTheme) {
+      return {
+        width : 10
+      }
+    }
+  },
+
+  "toolbar-part-handle-line" : {
+    initial : function(vTheme) {
+      return {
+        top : 2,
+        left : 3,
+        bottom : 2,
+        width : 4,
+        border : qx.renderer.border.BorderPresets.getInstance().thinOutset
+      }
+    }
+  },
+
+  "toolbar-separator" : {
+    initial : function(vTheme) {
+      return {
+        width : 8
+      }
+    }
+  },
+
+  "toolbar-separator-line" : {
+    setup : function() {
+      var b = this.border = new qx.renderer.border.BorderObject;
+
+      b.setLeftColor("threedshadow");
+      b.setRightColor("threedhighlight");
+
+      b.setLeftStyle("solid");
+      b.setRightStyle("solid");
+
+      b.setLeftWidth(1);
+      b.setRightWidth(1);
+      b.setTopWidth(0);
+      b.setBottomWidth(0);
+    },
+
+    initial : function(vTheme) {
+      return {
+        top : 2,
+        left: 2,
+        width : 2,
+        bottom : 2,
+        border : this.border
+      }
+    }
+  },
+
+  "toolbar-button" : {
+    setup : function() {
+      this.bgcolor_default = new qx.renderer.color.ColorObject("buttonface");
+      this.bgcolor_left = new qx.renderer.color.Color("#FFF0C9");
+
+      this.border_pressed = qx.renderer.border.BorderPresets.getInstance().thinInset;
+      this.border_over = qx.renderer.border.BorderPresets.getInstance().thinOutset;
+      this.border_default = qx.renderer.border.BorderPresets.getInstance().none;
+
+      this.checked_background = "static/image/dotted_white.gif";
+    },
+
+    initial : function(vTheme) {
+      return {
+        cursor : "default",
+        spacing : 4,
+        width : "auto",
+        verticalChildrenAlign : "middle"
+      }
+    },
+
+    state : function(vTheme, vStates) {
+      var vReturn = {
+        backgroundColor : vStates.abandoned ? this.bgcolor_left : this.bgcolor_default,
+        backgroundImage : vStates.checked && !vStates.over ? this.checked_background : null
+      }
+
+      if (vStates.pressed || vStates.checked || vStates.abandoned) {
+        vReturn.border = this.border_pressed;
+
+        vReturn.paddingTop = 3;
+        vReturn.paddingRight = 2;
+        vReturn.paddingBottom = 1;
+        vReturn.paddingLeft = 4;
+      } else if (vStates.over) {
+        vReturn.border = this.border_over;
+
+        vReturn.paddingTop = vReturn.paddingBottom = 2;
+        vReturn.paddingLeft = vReturn.paddingRight = 3;
+      } else {
+        vReturn.border = this.border_default;
+
+        vReturn.paddingTop = vReturn.paddingBottom = 3;
+        vReturn.paddingLeft = vReturn.paddingRight = 4;
+      }
+
+      return vReturn;
+    }
+  },
+
+
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    BAR VIEW
+  ---------------------------------------------------------------------------
+  */
+
+  "bar-view" : {
+    setup : function() {
+      this.background = new qx.renderer.color.ColorObject("#FAFBFE");
+    },
+
+    initial : function(vTheme) {
+      return {
+        backgroundColor : this.background,
+        border : qx.renderer.border.BorderPresets.getInstance().shadow
+      }
+    }
+  },
+
+  "bar-view-pane" : {
+    state : function(vTheme, vStates) {
+      if (vStates.barHorizontal) {
+        return {
+          width : null,
+          height : "1*"
+        }
+      }
+      else {
+        return {
+          width : "1*",
+          height : null
+        }
+      }
+    }
+  },
+
+  "bar-view-page" : {
+    initial : function(vTheme) {
+      return {
+        left : 10,
+        right : 10,
+        top : 10,
+        bottom : 10
+      }
+    }
+  },
+
+  "bar-view-bar" : {
+    setup : function() {
+      this.background_color = new qx.renderer.color.ColorObject("#E1EEFF");
+
+      this.border_color = new qx.renderer.color.ColorObject("threedshadow");
+
+      this.border_top = new qx.renderer.border.BorderObject;
+      this.border_top.setBottom(1, "solid", this.border_color);
+
+      this.border_bottom = new qx.renderer.border.BorderObject;
+      this.border_bottom.setTop(1, "solid", this.border_color);
+
+      this.border_left = new qx.renderer.border.BorderObject;
+      this.border_left.setRight(1, "solid", this.border_color);
+
+      this.border_right = new qx.renderer.border.BorderObject;
+      this.border_right.setLeft(1, "solid", this.border_color);
+    },
+
+    initial : function(vTheme) {
+      return {
+        backgroundColor : this.background_color
+      }
+    },
+
+    state : function(vTheme, vStates) {
+      if (vStates.barTop) {
+        return {
+          paddingTop : 1,
+          paddingRight : 0,
+          paddingBottom : 1,
+          paddingLeft : 0,
+
+          border : this.border_top,
+          height : "auto",
+          width : null,
+          orientation : "horizontal"
+        };
+      }
+      else if (vStates.barBottom) {
+        return {
+          paddingTop : 1,
+          paddingRight : 0,
+          paddingBottom : 1,
+          paddingLeft : 0,
+
+          border : this.border_bottom,
+          height : "auto",
+          width : null,
+          orientation : "horizontal"
+        };
+      }
+      else if (vStates.barLeft) {
+        return {
+          paddingTop : 0,
+          paddingRight : 1,
+          paddingBottom : 0,
+          paddingLeft : 1,
+
+          border : this.border_left,
+          height : null,
+          width : "auto",
+          orientation : "vertical"
+        };
+      }
+      else if (vStates.barRight) {
+        return {
+          paddingTop : 0,
+          paddingRight : 1,
+          paddingBottom : 0,
+          paddingLeft : 1,
+
+          border : this.border_right,
+          height : null,
+          width : "auto",
+          orientation : "vertical"
+        };
+      }
+    }
+  },
+
+  "bar-view-button" : {
+    setup : function() {
+      this.background_color_normal = null;
+      this.background_color_checked = new qx.renderer.color.ColorObject("#FAFBFE");
+
+      this.border_color = new qx.renderer.color.ColorObject("threedshadow");
+      this.border_color_checked = new qx.renderer.color.ColorObject("#FEC83C");
+
+      this.border_top_checked = new qx.renderer.border.Border(1, "solid", this.border_color);
+      this.border_top_checked.setBottom(3, "solid", this.border_color_checked);
+
+      this.border_bottom_checked = new qx.renderer.border.Border(1, "solid", this.border_color);
+      this.border_bottom_checked.setTop(3, "solid", this.border_color_checked);
+
+      this.border_left_checked = new qx.renderer.border.Border(1, "solid", this.border_color);
+      this.border_left_checked.setRight(3, "solid", this.border_color_checked);
+
+      this.border_right_checked = new qx.renderer.border.Border(1, "solid", this.border_color);
+      this.border_right_checked.setLeft(3, "solid", this.border_color_checked);
+    },
+
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("atom"), {
+        iconPosition : "top"
+      });
+    },
+
+    state : function(vTheme, vStates) {
+      var vReturn = {
+        backgroundColor : vStates.checked ? this.background_color_checked : this.background_color_normal,
+        allowStretchX : true,
+        allowStretchY : true
+      }
+
+      if (vStates.checked || vStates.over) {
+        if (vStates.barTop) {
+          vReturn.border = this.border_top_checked;
+          vReturn.paddingTop = 3;
+          vReturn.paddingRight = 6;
+          vReturn.paddingBottom = 1;
+          vReturn.paddingLeft = 6;
+        }
+        else if (vStates.barBottom) {
+          vReturn.border = this.border_bottom_checked;
+          vReturn.paddingTop = 1;
+          vReturn.paddingRight = 6;
+          vReturn.paddingBottom = 3;
+          vReturn.paddingLeft = 6;
+        }
+        else if (vStates.barLeft) {
+          vReturn.border = this.border_left_checked;
+          vReturn.paddingTop = 3;
+          vReturn.paddingRight = 4;
+          vReturn.paddingBottom = 3;
+          vReturn.paddingLeft = 6;
+        }
+        else if (vStates.barRight) {
+          vReturn.border = this.border_right_checked;
+          vReturn.paddingTop = 3;
+          vReturn.paddingRight = 6;
+          vReturn.paddingBottom = 3;
+          vReturn.paddingLeft = 4;
+        }
+      }
+      else {
+        vReturn.border = qx.renderer.border.BorderPresets.getInstance().none;
+        vReturn.paddingTop = vReturn.paddingBottom = 4;
+        vReturn.paddingRight = vReturn.paddingLeft = 7;
+      }
+
+      if (vStates.barTop || vStates.barBottom) {
+        vReturn.marginTop = vReturn.marginBottom = 0;
+        vReturn.marginRight = vReturn.marginLeft = 1;
+        vReturn.width = "auto";
+        vReturn.height = null;
+      }
+      else if (vStates.barLeft || vStates.barRight) {
+        vReturn.marginTop = vReturn.marginBottom = 1;
+        vReturn.marginRight = vReturn.marginLeft = 0;
+        vReturn.height = "auto";
+        vReturn.width = null;
+      }
+
+      return vReturn;
+    }
+  },
+
+
+
+
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    WINDOW
+  ---------------------------------------------------------------------------
+  */
+
+  "window" : {
+    setup : function() {
+      this.bgcolor = new qx.renderer.color.ColorObject("threedface");
+      this.color = new qx.renderer.color.ColorObject("windowtext");
+    },
+
+    initial : function(vTheme) {
+      return {
+        backgroundColor : this.bgcolor,
+        color : this.color,
+        paddingTop : 1,
+        paddingRight : 1,
+        paddingBottom : 1,
+        paddingLeft : 1
+      }
+    },
+
+    state : function(vTheme, vStates) {
+      return {
+        border : vStates.maximized ? qx.renderer.border.BorderPresets.getInstance().none : qx.renderer.border.BorderPresets.getInstance().outset
+      }
+    }
+  },
+
+  "window-captionbar" : {
+    setup : function() {
+      this.bgcolor_active = new qx.renderer.color.ColorObject("activecaption");
+      this.color_active = new qx.renderer.color.ColorObject("captiontext");
+      this.bgcolor_inactive = new qx.renderer.color.ColorObject("inactivecaption");
+      this.color_inactive = new qx.renderer.color.ColorObject("inactivecaptiontext");
+    },
+
+    initial : function(vTheme) {
+      return {
+        paddingTop : 1,
+        paddingRight : 2,
+        paddingBottom : 2,
+        paddingLeft : 2,
+        verticalChildrenAlign : "middle",
+        height : "auto",
+        overflow : "hidden"
+      }
+    },
+
+    state : function(vTheme, vStates) {
+      return {
+        backgroundColor : vStates.active ? this.bgcolor_active : this.bgcolor_inactive,
+        color : vStates.active ? this.color_active : this.color_inactive
+      }
+    }
+  },
+
+  "window-resize-frame" : {
+    initial : function(vTheme) {
+      return {
+        border : qx.renderer.border.BorderPresets.getInstance().shadow
+      }
+    }
+  },
+
+  "window-captionbar-icon" : {
+    initial : function(vTheme) {
+      return {
+        marginRight : 2
+      }
+    }
+  },
+
+  "window-captionbar-title" : {
+    setup : function() {
+      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
+      this.font.setBold(true);
+    },
+
+    initial : function(vTheme) {
+      return {
+        cursor : "default",
+        font : this.font,
+        marginRight : 2,
+        wrap : false
+      }
+    }
+  },
+
+  "window-captionbar-button" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("button");
+    },
+
+    state : function(vTheme, vStates) {
+      var vReturn = vTheme.stateFrom("button", vStates);
+
+      if (vStates.pressed || vStates.abandoned) {
+        vReturn.paddingTop = 2;
+        vReturn.paddingRight = 1;
+        vReturn.paddingBottom = 0;
+        vReturn.paddingLeft = 3;
+      }
+      else {
+        vReturn.paddingTop = vReturn.paddingBottom = 1;
+        vReturn.paddingRight = vReturn.paddingLeft = 2;
+      }
+
+      return vReturn;
+    }
+  },
+
+  "window-captionbar-minimize-button" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("window-captionbar-button");
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("window-captionbar-button", vStates);
+    }
+  },
+
+  "window-captionbar-restore-button" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("window-captionbar-button");
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("window-captionbar-button", vStates);
+    }
+  },
+
+  "window-captionbar-maximize-button" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("window-captionbar-button");
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("window-captionbar-button", vStates);
+    }
+  },
+
+  "window-captionbar-close-button" : {
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("window-captionbar-button"), {
+        marginLeft : 2
+      });
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("window-captionbar-button", vStates);
+    }
+  },
+
+  "window-statusbar" : {
+    initial : function(vTheme) {
+      return {
+        border : qx.renderer.border.BorderPresets.getInstance().thinInset,
+        height : "auto"
+      }
+    }
+  },
+
+  "window-statusbar-text" : {
+    initial : function(vTheme) {
+      return {
+        paddingTop : 1,
+        paddingRight : 4,
+        paddingBottom : 1,
+        paddingLeft : 4,
+        cursor : "default"
+      }
+    }
+  },
+
+
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    RESIZER
+  ---------------------------------------------------------------------------
+  */
+
+  "resizer": {
+    initial: function(vTheme) {
+      return {
+        border : qx.renderer.border.BorderPresets.getInstance().outset
+      }
+    }
+  },
+
+  "resizer-frame" : {
+    initial : function(vTheme) {
+      return {
+        border : qx.renderer.border.BorderPresets.getInstance().shadow
+      }
+    }
+  },
+
+
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    MENU
+  ---------------------------------------------------------------------------
+  */
+
+  "menu" : {
+    setup : function() {
+      this.bgcolor = new qx.renderer.color.ColorObject("menu");
+    },
+
+    initial : function(vTheme) {
+      return {
+        width : "auto",
+        height : "auto",
+        backgroundColor : this.bgcolor,
+        border : qx.renderer.border.BorderPresets.getInstance().outset,
+        paddingTop : 1,
+        paddingRight : 1,
+        paddingBottom : 1,
+        paddingLeft : 1
+      }
+    }
+  },
+
+  "menu-layout" : {
+    initial : function(vTheme) {
+      return {
+        top : 0,
+        right : 0,
+        bottom : 0,
+        left : 0
+      }
+    }
+  },
+
+  "menu-button" : {
+    setup : function() {
+      this.BGCOLOR_OVER = new qx.renderer.color.ColorObject("highlight");
+      this.BGCOLOR_OUT = null;
+
+      this.COLOR_OVER = new qx.renderer.color.ColorObject("highlighttext");
+      this.COLOR_OUT = null;
+    },
+
+    initial : function(vTheme) {
+      return {
+        minWidth : "auto",
+        height : "auto",
+        spacing : 2,
+        paddingTop : 2,
+        paddingRight : 4,
+        paddingBottom : 2,
+        paddingLeft : 4,
+        cursor : "default",
+        verticalChildrenAlign : "middle",
+        allowStretchX : true
+      }
+    },
+
+    state : function(vTheme, vStates) {
+      return {
+        backgroundColor : vStates.over ? this.BGCOLOR_OVER : this.BGCOLOR_OUT,
+        color : vStates.over ? this.COLOR_OVER : this.COLOR_OUT
+      }
+    }
+  },
+
+  "menu-check-box" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("menu-button");
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("menu-button", vStates);
+    }
+  },
+
+  "menu-radio-button" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("menu-button");
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("menu-button", vStates);
+    }
+  },
+
+  "menu-separator" : {
+    initial : function(vTheme) {
+      return {
+        height : "auto",
+        marginTop : 3,
+        marginBottom : 2,
+        paddingLeft : 3,
+        paddingRight : 3
+      }
+    }
+  },
+
+  "menu-separator-line" : {
+    initial : function(vTheme) {
+      return {
+        right : 0,
+        left : 0,
+        height : "auto",
+        border : qx.renderer.border.BorderPresets.getInstance().verticalDivider
+      }
+    }
+  },
+
+
+
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    LIST
+  ---------------------------------------------------------------------------
+  */
+
+  "list" : {
+    setup : function() {
+      this.bgcolor = new qx.renderer.color.Color("white");
+    },
+
+    initial : function(vTheme) {
+      return {
+        overflow : "hidden",
+        border : qx.renderer.border.BorderPresets.getInstance().thinInset,
+        backgroundColor : this.bgcolor
+      }
+    }
+  },
+
+  "list-item" : {
+    setup : function() {
+      this.bgcolor_selected = new qx.renderer.color.ColorObject("highlight");
+      this.color_selected = new qx.renderer.color.ColorObject("highlighttext");
+    },
+
+    initial : function(vTheme) {
+      return {
+        cursor : "default",
+        height : "auto",
+        horizontalChildrenAlign : "left",
+        verticalChildrenAlign : "middle",
+        spacing : 4,
+        paddingTop : 3,
+        paddingRight : 5,
+        paddingBottom : 3,
+        paddingLeft : 5,
+        minWidth : "auto"
+      }
+    },
+
+    state : function(vTheme, vStates) {
+      return {
+        backgroundColor : vStates.selected ? this.bgcolor_selected : null,
+        color : vStates.selected ? this.color_selected : null
+      }
+    }
+  },
+
+
+
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    FIELDS
+  ---------------------------------------------------------------------------
+  */
+
+  "text-field" : {
+    setup : function() {
+      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
+    },
+
+    initial : function(vTheme) {
+      return {
+        hideFocus : true,
+        border : qx.renderer.border.BorderPresets.getInstance().inset,
+        paddingTop : 1,
+        paddingRight : 3,
+        paddingBottom : 1,
+        paddingLeft : 3,
+        allowStretchY : false,
+        allowStretchX : true,
+        font : this.font,
+        width : "auto",
+        height : "auto"
+      }
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("label", vStates);
+    }
+  },
+
+  "text-area" : {
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("text-field"), {
+        overflow : "auto",
+
+        // gecko automatically defines a marginTop/marginBottom of 1px. We need to reset these values.
+        marginTop : 0,
+        marginBottom : 0
+      });
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("text-field", vStates);
+    }
+  },
+
+
+
+
+
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    COMBOBOX
+  ---------------------------------------------------------------------------
+  */
+
+  "combo-box" : {
+    setup : function() {
+      this.bgcolor = new qx.renderer.color.Color("white");
+    },
+
+    initial : function(vTheme) {
+      return {
+        minWidth : 40,
+        width : 120,
+        height : "auto",
+        border : qx.renderer.border.BorderPresets.getInstance().inset,
+        backgroundColor : this.bgcolor,
+        allowStretchY : false
+      }
+    }
+  },
+
+  "combo-box-ex" : {
+    setup : function() {
+      this.bgcolor = new qx.renderer.color.Color("white");
+    },
+
+    initial : function(vTheme) {
+      return {
+        width : "auto",
+        height : "auto",
+        border : qx.renderer.border.BorderPresets.getInstance().inset,
+        backgroundColor : this.bgcolor,
+        allowStretchY : false
+      }
+    }
+  },
+
+  "combo-box-list" : {
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("list"), {
+        top : 0,
+        right : 0,
+        bottom : 0,
+        left : 0,
+        border : null,
+        overflow : "scrollY"
+      });
+    }
+  },
+
+  "combo-box-ex-list" : {
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("list"), {
+    statusBarVisible: false,
+    columnVisibilityButtonVisible: false,
+    height: 'auto',
+    maxHeight: 150,
+        top : 0,
+        left : 0,
+        border : null
+      });
+    }
+  },
+
+  "combo-box-popup" : {
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("list"), {
+        height : "auto",
+        maxHeight : 150,
+        border : qx.renderer.border.BorderPresets.getInstance().shadow
+      });
+    }
+  },
+
+  "combo-box-ex-popup" : {
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("list"), {
+        width: "auto",
+        height : "auto",
+        border : qx.renderer.border.BorderPresets.getInstance().shadow
+      });
+    }
+  },
+
+  "combo-box-text-field" : {
+    setup : function() {
+      this.bgcolor = new qx.renderer.color.Color("transparent");
+    },
+
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("text-field"), {
+        border : qx.renderer.border.BorderPresets.getInstance().none,
+        width : "1*",
+        backgroundColor : this.bgcolor
+      });
+    }
+  },
+
+  "combo-box-ex-text-field" : {
+    setup : function() {
+      this.bgcolor = new qx.renderer.color.Color("transparent");
+    },
+
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("text-field"), {
+        border : qx.renderer.border.BorderPresets.getInstance().none,
+        minWidth : 30,
+        width : 100,
+        backgroundColor : this.bgcolor
+      });
+    }
+  },
+
+  // Used both for ComboBox and ComboBoxEx
+  "combo-box-button" : {
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("button"), {
+        height : null,
+        allowStretchY : true
+      });
+    },
+
+    state : function(vTheme, vStates) {
+      return qx.lang.Object.mergeWith(vTheme.stateFrom("button", vStates), {
+        paddingTop : 0,
+        paddingRight : 3,
+        paddingBottom : 0,
+        paddingLeft : 2
+      });
+    }
+  },
+
+
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    TREE
+  ---------------------------------------------------------------------------
+  */
+
+  "tree-element" : {
+    initial : function(vTheme) {
+      return {
+        height : 16,
+        verticalChildrenAlign : "middle"
+      }
+    }
+  },
+
+  "tree-element-icon" : {
+    initial : function(vTheme) {
+      return {
+        width : 16,
+        height : 16
+      }
+    }
+  },
+
+  "tree-element-label" : {
+    setup : function() {
+      this.bgcolor_selected = new qx.renderer.color.ColorObject("highlight");
+      this.color_selected = new qx.renderer.color.ColorObject("highlighttext");
+    },
+
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("label"), {
+        cursor : "default",
+        marginLeft : 3,
+        height : 15,
+        paddingTop : 2,
+        paddingRight : 2,
+        paddingBottom : 2,
+        paddingLeft : 2,
+        allowStretchY : false
+      });
+    },
+
+    state : function(vTheme, vStates) {
+      return qx.lang.Object.mergeWith(vTheme.stateFrom("label", vStates), {
+        backgroundColor : vStates.selected ? this.bgcolor_selected : null,
+        color : vStates.selected ? this.color_selected : null
+      });
+    }
+  },
+
+  "tree-folder" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("tree-element");
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("tree-element", vStates);
+    }
+  },
+
+  "tree-folder-icon" : {
+    initial : function(vTheme) {
+      return {
+        width : 16,
+        height : 16
+      }
+    }
+  },
+
+  "tree-folder-label" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("tree-element-label");
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("tree-element-label", vStates);
+    }
+  },
+
+  "tree" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("tree-folder");
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("tree-folder", vStates);
+    }
+  },
+
+  "tree-icon" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("tree-folder-icon");
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("tree-folder-icon", vStates);
+    }
+  },
+
+  "tree-label" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("tree-folder-label");
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("tree-folder-label", vStates);
+    }
+  },
+
+  "tree-container" : {
+    initial : function(vTheme) {
+      return {
+        verticalChildrenAlign : "top"
+      }
+    }
+  },
+
+  "tree-folder-container" : {
+    initial : function(vTheme) {
+      return {
+        height : "auto",
+        verticalChildrenAlign : "top"
+      }
+    }
+  },
+
+
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    LISTVIEW
+  ---------------------------------------------------------------------------
+  */
+
+  "list-view" : {
+    initial : function(vTheme) {
+      return {
+        cursor : "default",
+        overflow: "hidden"
+      }
+    }
+  },
+
+  "list-view-pane" : {
+    initial : function(vTheme) {
+      return {
+        width : "1*",
+        horizontalSpacing : 1,
+        overflow : "hidden"
+      }
+    }
+  },
+
+  "list-view-header" : {
+    setup : function() {
+      this.border = new qx.renderer.border.Border;
+      this.border.setBottom(1, "solid", "#e2e2e2");
+
+      this.bgcolor = new qx.renderer.color.Color("#f2f2f2");
+    },
+
+    initial : function(vTheme) {
+      return {
+        height : "auto",
+        overflow: "hidden",
+        border : this.border,
+        backgroundColor : this.bgcolor
+      }
+    }
+  },
+
+  "list-view-header-cell" : {
+    setup : function() {
+      this.border_hover = new qx.renderer.border.Border;
+      this.border_hover.setBottom(2, "solid", "#F9B119");
+
+      this.bgcolor_hover = new qx.renderer.color.Color("white");
+    },
+
+    initial : function(vTheme) {
+      return {
+        overflow : "hidden",
+        paddingTop : 2,
+        paddingRight : 6,
+        paddingBottom : 2,
+        paddingLeft : 6,
+        spacing : 4
+      };
+    },
+
+    state : function(vTheme, vStates) {
+      if (vStates.over) {
+        return {
+          backgroundColor : this.bgcolor_hover,
+          paddingBottom : 0,
+          border : this.border_hover
+        };
+      }
+      else {
+        return {
+          backgroundColor : null,
+          paddingBottom : 2,
+          border : null
+        };
+      }
+    }
+  },
+
+  "list-view-header-separator" : {
+    setup : function() {
+      this.bgcolor = new qx.renderer.color.Color("#D6D5D9");
+    },
+
+    initial : function(vTheme) {
+      return {
+        backgroundColor : this.bgcolor,
+        width : 1,
+        marginTop : 1,
+        marginBottom : 1
+      };
+    }
+  },
+
+  "list-view-content-cell" : {
+    setup : function() {
+      this.bgcolor_selected = new qx.renderer.color.ColorObject("highlight");
+      this.color_selected = new qx.renderer.color.ColorObject("highlighttext");
+    },
+
+    state : function(vTheme, vStates) {
+      return {
+        backgroundColor : vStates.selected ? this.bgcolor_selected : null,
+        color : vStates.selected ? this.color_selected : null
+      };
+    }
+  },
+
+  "list-view-content-cell-image" : {
+    initial : function(vTheme) {
+      return {
+        paddingLeft : 6,
+        paddingRight : 6
+      };
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("list-view-content-cell", vStates);
+    }
+  },
+
+  "list-view-content-cell-text" : {
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("htmlcontainer"), {
+        overflow: "hidden",
+        paddingLeft : 6,
+        paddingRight : 6
+      });
+    },
+
+    state : function(vTheme, vStates) {
+      return qx.lang.Object.mergeWith(vTheme.stateFrom("htmlcontainer", vStates), vTheme.stateFrom("list-view-content-cell", vStates));
+    }
+  },
+
+  "list-view-content-cell-html" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("list-view-content-cell-text");
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("list-view-content-cell-text", vStates);
+    }
+  },
+
+  "list-view-content-cell-icon-html" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("list-view-content-cell-text");
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("list-view-content-cell-text", vStates);
+    }
+  },
+
+  "list-view-content-cell-link" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("list-view-content-cell-text");
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("list-view-content-cell-text", vStates);
+    }
+  },
+
+
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    TABVIEW
+  ---------------------------------------------------------------------------
+  */
+
+  "tab-view" : {
+    initial : function(vTheme) {
+      return {
+        spacing : -1
+      };
+    }
+  },
+
+  "tab-view-bar" : {
+    initial : function(vTheme) {
+      return {
+        height : "auto"
+      };
+    }
+  },
+
+  "tab-view-pane" : {
+    setup : function() {
+      this.border = new qx.renderer.border.Border(1, "solid", "#91A5BD");
+      this.bgcolor = new qx.renderer.color.ColorObject("#FAFBFE");
+    },
+
+    initial : function(vTheme) {
+      return {
+        height : "1*",
+        backgroundColor : this.bgcolor,
+        border : this.border,
+        paddingTop : 10,
+        paddingRight : 10,
+        paddingBottom : 10,
+        paddingLeft : 10
+      };
+    }
+  },
+
+  "tab-view-page" : {
+    initial : function(vTheme) {
+      return {
+        top : 0,
+        right : 0,
+        bottom : 0,
+        left : 0
+      };
+    }
+  },
+
+  "tab-view-button" : {
+    setup : function() {
+      this.bgcolor_normal = new qx.renderer.color.ColorObject("#E1EEFF");
+      this.bgcolor_checked = new qx.renderer.color.ColorObject("#FAFBFE");
+
+      this.border_top_normal = new qx.renderer.border.Border(1, "solid", "#91A5BD");
+      this.border_top_normal.setBottomWidth(0);
+
+      this.border_top_checked = new qx.renderer.border.Border(1, "solid", "#91A5BD");
+      this.border_top_checked.setBottomWidth(0);
+      this.border_top_checked.setTop(3, "solid", "#FEC83C");
+
+      this.border_bottom_normal = new qx.renderer.border.Border(1, "solid", "#91A5BD");
+      this.border_bottom_normal.setTopWidth(0);
+
+      this.border_bottom_checked = new qx.renderer.border.Border(1, "solid", "#91A5BD");
+      this.border_bottom_checked.setTopWidth(0);
+      this.border_bottom_checked.setBottom(3, "solid", "#FEC83C");
+    },
+
+    initial : function(vTheme) {
+      return vTheme.initialFrom("atom");
+    },
+
+    state : function(vTheme, vStates) {
+      var vReturn;
+
+      if (vStates.checked) {
+        vReturn = {
+          backgroundColor : this.bgcolor_checked,
+          zIndex : 1,
+          paddingTop : 2,
+          paddingBottom : 4,
+          paddingLeft : 7,
+          paddingRight : 8,
+          border : vStates.barTop ? this.border_top_checked : this.border_bottom_checked,
+          marginTop : 0,
+          marginBottom : 0,
+          marginRight : -1,
+          marginLeft : -2
+        }
+
+        if (vStates.alignLeft) {
+          if (vStates.firstChild) {
+            vReturn.paddingLeft = 6;
+            vReturn.paddingRight = 7;
+            vReturn.marginLeft = 0;
+          }
+        }
+        else {
+          if (vStates.lastChild) {
+            vReturn.paddingLeft = 8;
+            vReturn.paddingRight = 5;
+            vReturn.marginRight = 0;
+          }
+        }
+      }
+      else {
+        vReturn = {
+          backgroundColor : vStates.over ? this.bgcolor_checked : this.bgcolor_normal,
+          zIndex : 0,
+          paddingTop : 2,
+          paddingBottom : 2,
+          paddingLeft : 5,
+          paddingRight : 6,
+          marginRight : 1,
+          marginLeft : 0
+        }
+
+        if (vStates.alignLeft) {
+          if (vStates.firstChild) {
+            vReturn.paddingLeft = 6;
+            vReturn.paddingRight = 5;
+          }
+        }
+        else {
+          if (vStates.lastChild) {
+            vReturn.paddingLeft = 6;
+            vReturn.paddingRight = 5;
+            vReturn.marginRight = 0;
+          }
+        }
+
+        if (vStates.barTop) {
+          vReturn.border = this.border_top_normal;
+          vReturn.marginTop = 3;
+          vReturn.marginBottom = 1;
+        }
+        else {
+          vReturn.border = this.border_bottom_normal;
+          vReturn.marginTop = 1;
+          vReturn.marginBottom = 3;
+        }
+      }
+
+      return vReturn;
+    }
+  },
+
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    FIELDSET
+  ---------------------------------------------------------------------------
+  */
+
+  "field-set" : {
+    setup : function() {
+      this.bgcolor = new qx.renderer.color.ColorObject("threedface");
+    },
+
+    initial : function(vTheme) {
+      return {
+        backgroundColor : this.bgcolor
+      }
+    }
+  },
+
+  "field-set-legend" : {
+    setup : function() {
+      this.bgcolor = new qx.renderer.color.ColorObject("threedface");
+    },
+
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("atom"), {
+        top : 1,
+        left : 10,
+        backgroundColor : this.bgcolor,
+        paddingRight : 3,
+        paddingLeft : 4,
+        marginRight: 10
+      });
+    }
+  },
+
+  "field-set-frame" : {
+    initial : function(vTheme) {
+      return {
+        top : 8,
+        left : 2,
+        right : 2,
+        bottom : 2,
+        paddingTop : 12,
+        paddingRight : 9,
+        paddingBottom : 12,
+        paddingLeft : 9,
+        border : qx.renderer.border.BorderPresets.getInstance().groove
+      }
+    }
+  },
+
+  "check-box-field-set-legend" : {
+    setup : function() {
+      this.bgcolor = new qx.renderer.color.ColorObject("threedface");
+    },
+
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("atom"), {
+        top : 1,
+        left : 10,
+        backgroundColor : this.bgcolor,
+        paddingRight : 3
+      });
+    }
+  },
+
+  "radio-button-field-set-legend" : {
+    initial : function(vTheme) {
+      return vTheme.initialFrom("check-box-field-set-legend");
+    }
+  },
+
+
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    SPINNER
+  ---------------------------------------------------------------------------
+  */
+
+  "spinner" : {
+    setup : function() {
+      this.bgcolor = new qx.renderer.color.Color("white");
+    },
+
+    initial : function(vTheme) {
+      return {
+        width : 60,
+        height : 22,
+        border : qx.renderer.border.BorderPresets.getInstance().inset,
+        backgroundColor : this.bgcolor
+      }
+    }
+  },
+
+  "spinner-field" : {
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("text-field"), {
+        width : "1*",
+        border : qx.renderer.border.BorderPresets.getInstance().none
+      });
+    },
+
+    state : function(vTheme, vStates) {
+      return vTheme.stateFrom("text-field", vStates);
+    }
+  },
+
+  "spinner-button-up" : {
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("image"), {
+        height: "1*",
+        width: 16,
+        backgroundColor: new qx.renderer.color.ColorObject("threedface")
+      });
+    },
+
+    state : function(vTheme, vStates) {
+      return qx.lang.Object.mergeWith(vTheme.stateFrom("button", vStates), {
+        paddingTop : 0,
+        paddingRight : 0,
+        paddingBottom: 0,
+        paddingLeft : 3
+      });
+    }
+  },
+
+  "spinner-button-down" : {
+    initial : function(vTheme) {
+      return qx.lang.Object.mergeWith(vTheme.initialFrom("image"), {
+        height: "1*",
+        width: 16,
+        backgroundColor: new qx.renderer.color.ColorObject("threedface")
+      });
+    },
+
+    state : function(vTheme, vStates) {
+      return qx.lang.Object.mergeWith(vTheme.stateFrom("button", vStates), {
+        paddingTop : 1,
+        paddingRight : 0,
+        paddingBottom: 0,
+        paddingLeft : 3
+      });
+    }
+  },
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    COLORSELECTOR
+  ---------------------------------------------------------------------------
+  */
+
+  "colorselector" : {
+    setup : function() {
+      this.border = qx.renderer.border.BorderPresets.getInstance().outset;
+    },
+
+    initial : function(vTheme) {
+      return {
+        border : this.border,
+        width: "auto",
+        height: "auto"
+      }
+    },
+
+    state : function(vTheme, vStates) {
+
+    }
+  },
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    DATECHOOSER
+  ---------------------------------------------------------------------------
+  */
+
+  "datechooser-toolbar-button" : {
+    setup : function() {
+      this.bgcolor_default = new qx.renderer.color.ColorObject("buttonface");
+      this.bgcolor_left = new qx.renderer.color.Color("#FFF0C9");
+
+      this.border_pressed = qx.renderer.border.BorderPresets.getInstance().thinInset;
+      this.border_over = qx.renderer.border.BorderPresets.getInstance().thinOutset;
+      this.border_default = null;
+
+      this.checked_background = "static/image/dotted_white.gif";
+    },
+
+    initial : function(vTheme) {
+      return {
+        cursor : "default",
+        spacing : 4,
+        width : "auto",
+        verticalChildrenAlign : "middle"
+      }
+    },
+
+    state : function(vTheme, vStates) {
+      var vReturn = {
+        backgroundColor : vStates.abandoned ? this.bgcolor_left : this.bgcolor_default,
+        backgroundImage : (vStates.checked && !vStates.over) ? this.checked_background : null
+      }
+
+      if (vStates.pressed || vStates.checked || vStates.abandoned) {
+        vReturn.border = this.border_pressed;
+      } else if (vStates.over) {
+        vReturn.border = this.border_over;
+      } else {
+        vReturn.border = this.border_default;
+      }
+
+      if (vStates.pressed || vStates.checked || vStates.abandoned) {
+        vReturn.paddingTop = 2;
+        vReturn.paddingRight = 0;
+        vReturn.paddingBottom = 0;
+        vReturn.paddingLeft = 2;
+      } else if (vStates.over) {
+        vReturn.paddingTop = vReturn.paddingBottom = 1;
+        vReturn.paddingLeft = vReturn.paddingRight = 1;
+      } else {
+        vReturn.paddingTop = vReturn.paddingBottom = 2;
+        vReturn.paddingLeft = vReturn.paddingRight = 2;
+      }
+
+      return vReturn;
+    }
+  },
+
+
+  "datechooser-monthyear" : {
+    setup : function() {
+      this.font = new qx.renderer.font.Font(13, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
+    },
+
+    initial : function(vTheme) {
+      return {
+        font : this.font,
+        textAlign: "center",
+        verticalAlign: "middle"
+      }
+    }
+  },
+
+
+  "datechooser-datepane" : {
+    setup : function() {
+      this.border = new qx.renderer.border.Border(1, "solid", "gray");
+      this.bgcolor = new qx.renderer.color.ColorObject("window");
+    },
+
+    initial : function(vTheme) {
+      return {
+        border : this.border,
+        backgroundColor : this.bgcolor
+      }
+    }
+  },
+
+
+  "datechooser-weekday" : {
+    setup : function() {
+      this.border = new qx.renderer.border.Border;
+      this.border.set({ bottomColor:"gray", bottomStyle :"solid", bottomWidth:1 });
+      this.color = new qx.renderer.color.ColorObject("window");
+      this.bgcolor = new qx.renderer.color.ColorObject("#6285BA");
+      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
+      this.font.setBold(true);
+    },
+
+    initial : function(vTheme) {
+      return {
+        border : this.border,
+        font : this.font,
+        textAlign : "center"
+      }
+    },
+
+    state : function(vTheme, vStates) {
+      return {
+        color : vStates.weekend ? this.bgcolor : this.color,
+        backgroundColor : vStates.weekend ? this.color : this.bgcolor
+      }
+    }
+
+  },
+
+
+  "datechooser-day" : {
+    setup : function() {
+      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
+
+      this.selectedColor = new qx.renderer.color.ColorObject("highlightText");
+      this.selectedBgColor = new qx.renderer.color.ColorObject("highlight");
+      this.color = new qx.renderer.color.ColorObject("windowText");
+      this.otherMonthColor = new qx.renderer.color.ColorObject("grayText");
+
+      this.transparentBorder = new qx.renderer.border.Border(1, "none");
+    },
+
+    initial : function(vTheme) {
+      return {
+        cursor : "default",
+        border : this.border,
+        color : this.color,
+        font : this.font,
+        textAlign : "center",
+        verticalAlign: "middle",
+        selectable: false
+      }
+    },
+
+    state : function(vTheme, vStates) {
+      return {
+        border : vStates.today ? qx.renderer.border.BorderPresets.getInstance().black : this.transparentBorder,
+        color : vStates.selected ? this.selectedColor :
+          (vStates.otherMonth ? this.otherMonthColor : this.color),
+          backgroundColor : vStates.selected ? this.selectedBgColor : null
+      }
+    }
+  },
+
+  "datechooser-week" : {
+    setup : function() {
+      this.border = new qx.renderer.border.Border;
+      this.border.set({ rightColor:"gray", rightStyle :"solid", rightWidth:1 });
+      this.headerBorder = new qx.renderer.border.Border;
+      this.headerBorder.set({ rightColor:"gray", rightStyle :"solid", rightWidth:1,
+      bottomColor:"gray", bottomStyle :"solid", bottomWidth:1 });
+      this.color = new qx.renderer.color.ColorObject("#6285BA");
+      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
+    },
+
+    initial : function(vTheme) {
+      return {
+        border : this.border,
+        font : this.font,
+        color: this.color,
+        paddingLeft : 2
+      }
+    },
+
+    state : function(vTheme, vStates) {
+      return {
+        border : vStates.header ? this.headerBorder : this.border
+      }
+    }
+  },
+
+
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    TABLE
+  ---------------------------------------------------------------------------
+  */
+
+  "table-focus-statusbar" : {
+    setup : function() {
+      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
+      this.border = new qx.renderer.border.Border;
+      this.border.set({ topColor:"threedshadow", topStyle :"solid", topWidth:1 });
+    },
+
+    initial : function(vTheme) {
+      return {
+        font: this.font,
+        border: this.border,
+        paddingLeft: 2,
+        paddingRight: 2
+      }
+    }
+  },
+
+
+  "table-focus-indicator" : {
+    setup : function() {
+      this.border = new qx.renderer.border.Border(3, "solid", "#b3d9ff");
+      this.blurBorder = new qx.renderer.border.Border(3, "solid", "#c5c8ca");
+      this.editingBorder = new qx.renderer.border.Border(2, "solid", "#b3d9ff");
+    },
+
+    state : function(vTheme, vStates) {
+      return {
+        border : vStates.editing ? this.editingBorder : (vStates.tableHasFocus ? this.border : this.blurBorder)
+      }
+    }
+  },
+
+
+  "table-editor-textfield" : {
+    setup : function() {
+      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
+    },
+
+    initial : function(vTheme) {
+      return {
+        font: this.font,
+        border: qx.renderer.border.BorderPresets.getInstance().none,
+        paddingLeft: 2,
+        paddingRight: 2,
+        paddingTop: 0,
+        paddingBottom: 0
+      }
+    }
+  },
+
+  "table-header-cell" : {
+    setup : function() {
+      this.border = new qx.renderer.border.Border;
+      this.border.set({ rightColor:"#d6d2c2", rightStyle :"solid", rightWidth:1,
+      bottomColor:"#d6d2c2", bottomStyle :"solid", bottomWidth:2 });
+
+      this.mouseOverBorder = new qx.renderer.border.Border;
+      this.mouseOverBorder.set({ rightColor:"#d6d2c2", rightStyle :"solid", rightWidth:1,
+      bottomColor:"#F9B119", bottomStyle :"solid", bottomWidth:2 });
+
+      this.mouseOverBackground = new qx.renderer.color.ColorObject("white");
+      this.background = new qx.renderer.color.ColorObject("#ebeadb");
+    },
+
+    initial : function(vTheme) {
+      return {
+        cursor : "default",
+        border : this.border,
+        paddingLeft : 2,
+        paddingRight : 2,
+        spacing:2,
+        overflow:"hidden",
+        selectable: false,
+        backgroundColor:this.background,
+        iconPosition:"right",
+        verticalChildrenAlign:"middle"
+      }
+    },
+
+    state : function(vTheme, vStates) {
+      return {
+        backgroundColor : vStates.mouseover ? this.mouseOverBackground : this.background,
+        border : vStates.mouseover ? this.mouseOverBorder : this.border
+      }
+    }
+  },
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    SPLITPANE
+  ---------------------------------------------------------------------------
+  */
+
+  "splitpane" :
+  {
+    initial : function(vTheme)
+    {
+      return {
+        overflow : "hidden"
+      }
+    }
+  },
+
+  "splitpane-glasspane" :
+  {
+    setup : function() {
+      this.background = new qx.renderer.color.ColorObject("threedshadow");
+    },
+
+    initial : function(vTheme)
+    {
+      return {
+        zIndex : 1e7,
+        backgroundColor : this.background
+      }
+    },
+
+    state : function(vTheme, vStates) {
+      return {
+        opacity : vStates.visible ? 0.2 : 0
+      }
+    }
+  },
+
+  "splitpane-splitter" :
+  {
+    initial : function(vTheme) {
+      return {
+        backgroundColor : "threedface"
+      }
+    },
+
+    state : function(vTheme, vStates)
+    {
+      return {
+        cursor : vStates.horizontal ? "col-resize" : "row-resize"
+      };
+    }
+  },
+
+  "splitpane-slider" :
+  {
+    initial : function(vTheme)
+    {
+      return {
+        opacity: 0.5,
+        zIndex : 1e8
+      }
+    },
+
+    state : function(vTheme, vStates)
+    {
+      return {
+        backgroundColor: vStates.dragging ? "threeddarkshadow" : "threedface"
+      }
+    }
+  },
+
+  "splitpane-knob" :
+  {
+    state : function(vTheme, vStates)
+    {
+      var vReturn = {
+        opacity: vStates.dragging ? 0.5 : 1.0
+      }
+
+      if (vStates.horizontal)
+      {
+        vReturn.top = "33%";
+        vReturn.left = null;
+        vReturn.marginLeft = -6;
+        vReturn.marginTop = 0;
+        vReturn.cursor = "col-resize";
+      }
+      else if (vStates.vertical)
+      {
+        vReturn.top = null;
+        vReturn.left = "33%";
+        vReturn.marginTop = -6;
+        vReturn.marginLeft = 0;
+        vReturn.cursor = "row-resize";
+      }
+
+      return vReturn;
+    }
+  }
+
+
+
+
+  /*
+  ---------------------------------------------------------------------------
+    END
+  ---------------------------------------------------------------------------
+  */
+}, qx.Super.prototype._appearances);
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
+
+
+
+/*
+---------------------------------------------------------------------------
+  REGISTER TO MANAGER
+---------------------------------------------------------------------------
+*/
+
+qx.manager.object.AppearanceManager.getInstance().registerAppearanceTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/System.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/System.js
new file mode 100644 (file)
index 0000000..54d3d99
--- /dev/null
@@ -0,0 +1,54 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(theme_color)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.theme.color.System", qx.renderer.theme.ColorTheme,
+function() {
+  qx.renderer.theme.ColorTheme.call(this, "Operating System Default");
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REGISTER TO MANAGER
+---------------------------------------------------------------------------
+*/
+
+qx.manager.object.ColorManager.getInstance().registerColorTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsClassic.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsClassic.js
new file mode 100644 (file)
index 0000000..1a5d329
--- /dev/null
@@ -0,0 +1,98 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(theme_color)
+
+************************************************************************ */
+
+
+qx.OO.defineClass("qx.theme.color.WindowsClassic", qx.renderer.theme.ColorTheme,
+function() {
+  qx.renderer.theme.ColorTheme.call(this, "Windows Classic");
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFINE COLORS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._colors = qx.lang.Object.carefullyMergeWith({
+  activeborder : [ 212,208,200 ],
+  activecaption : [ 10,36,106 ],
+  appworkspace : [ 128,128,128 ],
+  background : [ 58,110,165 ],
+  buttonface : [ 212,208,200 ],
+  buttonhighlight : [ 255,255,255 ],
+  buttonshadow : [ 128,128,128 ],
+  buttontext : [ 0,0,0 ],
+  captiontext : [ 255,255,255 ],
+  graytext : [ 128,128,128 ],
+  highlight : [ 10,36,106 ],
+  highlighttext : [ 255,255,255 ],
+  inactiveborder : [ 212,208,200 ],
+  inactivecaption : [ 128,128,128 ],
+  inactivecaptiontext : [ 212,208,200 ],
+  infobackground : [ 255,255,225 ],
+  infotext : [ 0,0,0 ],
+  menu : [ 212,208,200 ],
+  menutext : [ 0,0,0 ],
+  scrollbar : [ 212,208,200 ],
+  threeddarkshadow : [ 64,64,64 ],
+  threedface : [ 212,208,200 ],
+  threedhighlight : [ 255,255,255 ],
+  threedlightshadow : [ 212,208,200 ],
+  threedshadow : [ 128,128,128 ],
+  window : [ 255,255,255 ],
+  windowframe : [ 0,0,0 ],
+  windowtext : [ 0,0,0 ]
+}, qx.Super.prototype._colors);
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REGISTER TO MANAGER
+---------------------------------------------------------------------------
+*/
+
+qx.manager.object.ColorManager.getInstance().registerColorTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaBlue.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaBlue.js
new file mode 100644 (file)
index 0000000..a7737e8
--- /dev/null
@@ -0,0 +1,96 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(theme_color)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.theme.color.WindowsLunaBlue", qx.renderer.theme.ColorTheme,
+function() {
+  qx.renderer.theme.ColorTheme.call(this, "Windows Luna Blue");
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFINE COLORS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._colors = qx.lang.Object.carefullyMergeWith({
+  activeborder : [ 212,208,200 ],
+  activecaption : [ 0,84,227 ],
+  appworkspace : [ 128,128,128 ],
+  background : [ 0,78,152 ],
+  buttonface : [ 236,233,216 ],
+  buttonhighlight : [ 255,255,255 ],
+  buttonshadow : [ 172,168,153 ],
+  buttontext : [ 0,0,0 ],
+  captiontext : [ 255,255,255 ],
+  graytext : [ 172,168,153 ],
+  highlight : [ 49,106,197 ],
+  highlighttext : [ 255,255,255 ],
+  inactiveborder : [ 212,208,200 ],
+  inactivecaption : [ 122,150,223 ],
+  inactivecaptiontext : [ 216,228,248 ],
+  infobackground : [ 255,255,225 ],
+  infotext : [ 0,0,0 ],
+  menu : [ 255,255,255 ],
+  menutext : [ 0,0,0 ],
+  scrollbar : [ 212,208,200 ],
+  threeddarkshadow : [ 113,111,100 ],
+  threedface : [ 236,233,216 ],
+  threedhighlight : [ 255,255,255 ],
+  threedlightshadow : [ 241,239,226 ],
+  threedshadow : [ 172,168,153 ],
+  window : [ 255,255,255 ],
+  windowframe : [ 0,0,0 ],
+  windowtext : [ 0,0,0 ]
+}, qx.Super.prototype._colors);
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REGISTER TO MANAGER
+---------------------------------------------------------------------------
+*/
+
+qx.manager.object.ColorManager.getInstance().registerColorTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaGreen.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaGreen.js
new file mode 100644 (file)
index 0000000..b6af5d2
--- /dev/null
@@ -0,0 +1,94 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(theme_color)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.theme.color.WindowsLunaGreen", qx.renderer.theme.ColorTheme,
+function() {
+  qx.renderer.theme.ColorTheme.call(this, "Windows Luna Green");
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFINE COLORS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._colors = qx.lang.Object.carefullyMergeWith({
+  activeborder : [ 212,208,200 ],
+  activecaption : [ 139,161,105 ],
+  appworkspace : [ 128,128,128 ],
+  background : [ 157,172,189 ],
+  buttonface : [ 236,233,216 ],
+  buttonhighlight : [ 255,255,255 ],
+  buttonshadow : [ 172,168,153 ],
+  buttontext : [ 0,0,0 ],
+  captiontext : [ 255,255,255 ],
+  graytext : [ 172,168,153 ],
+  highlight : [ 147,160,112 ],
+  highlighttext : [ 255,255,255 ],
+  inactiveborder : [ 212,208,200 ],
+  inactivecaption : [ 212,214,186 ],
+  inactivecaptiontext : [ 255,255,255 ],
+  infobackground : [ 255,255,225 ],
+  infotext : [ 0,0,0 ],
+  menu : [ 255,255,255 ],
+  menutext : [ 0,0,0 ],
+  scrollbar : [ 212,208,200 ],
+  threeddarkshadow : [ 113,111,100 ],
+  threedface : [ 236,233,216 ],
+  threedhighlight : [ 255,255,255 ],
+  threedlightshadow : [ 241,239,226 ],
+  threedshadow : [ 172,168,153 ],
+  window : [ 255,255,255 ],
+  windowframe : [ 0,0,0 ],
+  windowtext : [ 0,0,0 ]
+}, qx.Super.prototype._colors);
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REGISTER TO MANAGER
+---------------------------------------------------------------------------
+*/
+
+qx.manager.object.ColorManager.getInstance().registerColorTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaSilver.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaSilver.js
new file mode 100644 (file)
index 0000000..3ccb52f
--- /dev/null
@@ -0,0 +1,94 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(theme_color)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.theme.color.WindowsLunaSilver", qx.renderer.theme.ColorTheme,
+function() {
+  qx.renderer.theme.ColorTheme.call(this, "Windows Luna Silver");
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFINE COLORS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._colors = qx.lang.Object.carefullyMergeWith({
+  activeborder : [ 212,208,200 ],
+  activecaption : [ 192,192,192 ],
+  appworkspace : [ 128,128,128 ],
+  background : [ 88,87,104 ],
+  buttonface : [ 224,223,227 ],
+  buttonhighlight : [ 255,255,255 ],
+  buttonshadow : [ 157,157,161 ],
+  buttontext : [ 0,0,0 ],
+  captiontext : [ 14,16,16 ],
+  graytext : [ 172,168,153 ],
+  highlight : [ 178,180,191 ],
+  highlighttext : [ 0,0,0 ],
+  inactiveborder : [ 212,208,200 ],
+  inactivecaption : [ 255,255,255 ],
+  inactivecaptiontext : [ 162,161,161 ],
+  infobackground : [ 255,255,225 ],
+  infotext : [ 0,0,0 ],
+  menu : [ 255,255,255 ],
+  menutext : [ 0,0,0 ],
+  scrollbar : [ 212,208,200 ],
+  threeddarkshadow : [ 113,111,100 ],
+  threedface : [ 224,223,227 ],
+  threedhighlight : [ 255,255,255 ],
+  threedlightshadow : [ 241,239,226 ],
+  threedshadow : [ 157,157,161 ],
+  window : [ 255,255,255 ],
+  windowframe : [ 0,0,0 ],
+  windowtext : [ 0,0,0 ]
+}, qx.Super.prototype._colors);
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REGISTER TO MANAGER
+---------------------------------------------------------------------------
+*/
+
+qx.manager.object.ColorManager.getInstance().registerColorTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsRoyale.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsRoyale.js
new file mode 100644 (file)
index 0000000..b268b22
--- /dev/null
@@ -0,0 +1,95 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#module(theme_color)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.theme.color.WindowsRoyale", qx.renderer.theme.ColorTheme,
+function() {
+  qx.renderer.theme.ColorTheme.call(this, "Windows Royale");
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFINE COLORS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._colors = qx.lang.Object.carefullyMergeWith({
+  activeborder : [ 212,208,200 ],
+  activecaption : [ 51,94,168 ],
+  appworkspace : [ 128,128,128 ],
+  background : [ 0,0,64 ],
+  buttonface : [ 235,233,237 ],
+  buttonhighlight : [ 255,255,255 ],
+  buttonshadow : [ 167,166,170 ],
+  buttontext : [ 0,0,0 ],
+  captiontext : [ 255,255,255 ],
+  graytext : [ 167,166,170 ],
+  highlight : [ 51,94,168 ],
+  highlighttext : [ 255,255,255 ],
+  inactiveborder : [ 212,208,200 ],
+  inactivecaption : [ 111,161,217 ],
+  inactivecaptiontext : [ 255,255,255 ],
+  infobackground : [ 255,255,225 ],
+  infotext : [ 0,0,0 ],
+  menu : [ 255,255,255 ],
+  menutext : [ 0,0,0 ],
+  scrollbar : [ 212,208,200 ],
+  threeddarkshadow : [ 133,135,140 ],
+  threedface : [ 235,233,237 ],
+  threedhighlight : [ 255,255,255 ],
+  threedlightshadow : [ 220,223,228 ],
+  threedshadow : [ 167,166,170 ],
+  window : [ 255,255,255 ],
+  windowframe : [ 0,0,0 ],
+  windowtext : [ 0,0,0 ]
+}, qx.Super.prototype._colors);
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REGISTER TO MANAGER
+---------------------------------------------------------------------------
+*/
+
+qx.manager.object.ColorManager.getInstance().registerColorTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/icon/CrystalSvg.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/icon/CrystalSvg.js
new file mode 100644 (file)
index 0000000..52dd581
--- /dev/null
@@ -0,0 +1,68 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#module(theme_icon)
+#resource(images:icon/crystalsvg)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.theme.icon.CrystalSvg", qx.renderer.theme.IconTheme,
+function() {
+  qx.renderer.theme.IconTheme.call(this, "Crystal SVG");
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("imageUri", qx.Settings.getValueOfClass("qx.manager.object.AliasManager", "resourceUri") + "/icon/crystalsvg");
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REGISTER TO MANAGER
+---------------------------------------------------------------------------
+*/
+
+qx.manager.object.ImageManager.getInstance().registerIconTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/icon/Nuvola.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/icon/Nuvola.js
new file mode 100644 (file)
index 0000000..da55824
--- /dev/null
@@ -0,0 +1,66 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(theme_icon)
+#resource(images:icon/nuvola)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.theme.icon.Nuvola", qx.renderer.theme.IconTheme,
+function() {
+  qx.renderer.theme.IconTheme.call(this, "Nuvola");
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("imageUri", qx.Settings.getValueOfClass("qx.manager.object.AliasManager", "resourceUri") + "/icon/nuvola");
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REGISTER TO MANAGER
+---------------------------------------------------------------------------
+*/
+
+qx.manager.object.ImageManager.getInstance().registerIconTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/widget/Windows.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/widget/Windows.js
new file mode 100644 (file)
index 0000000..c94fd1d
--- /dev/null
@@ -0,0 +1,68 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#module(theme_widget)
+#resource(images:widget/windows)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.theme.widget.Windows", qx.renderer.theme.WidgetTheme,
+function() {
+  qx.renderer.theme.WidgetTheme.call(this, "Windows");
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("imageUri", qx.Settings.getValueOfClass("qx.manager.object.AliasManager", "resourceUri") + "/widget/windows");
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REGISTER TO MANAGER
+---------------------------------------------------------------------------
+*/
+
+qx.manager.object.ImageManager.getInstance().registerWidgetTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Range.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Range.js
new file mode 100644 (file)
index 0000000..848550b
--- /dev/null
@@ -0,0 +1,87 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+/**
+ * This manager is used by all objects which needs ranges like qx.ui.form.Spinner, ...
+ *
+ * @event change {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.type.Range", qx.core.Target,
+function() {
+  qx.core.Target.call(this);
+});
+
+/** current value of the Range object */
+qx.OO.addProperty({ name : "value", type : "number", defaultValue : 0 });
+
+/** minimal value of the Range object */
+qx.OO.addProperty({ name : "min", type : "number", defaultValue : 0 });
+
+/** maximal value of the Range object */
+qx.OO.addProperty({ name : "max", type : "number", defaultValue : 100 });
+
+/** Step size for increments/decrements of the value property */
+qx.OO.addProperty({ name : "step", type : "number", defaultValue : 1 });
+
+qx.Proto._checkValue = function(propValue) {
+  return Math.max(this.getMin(), Math.min(this.getMax(), Math.floor(propValue)));
+}
+
+qx.Proto._modifyValue = function(propValue, propOldValue, propData)
+{
+  if (this.hasEventListeners("change")) {
+    this.dispatchEvent(new qx.event.type.Event("change"), true);
+  }
+
+  return true;
+}
+
+qx.Proto._checkMax = function(propValue) {
+  return Math.floor(propValue);
+}
+
+qx.Proto._modifyMax = function(propValue, propOldValue, propData)
+{
+  this.setValue(Math.min(this.getValue(), propValue));
+
+  if (this.hasEventListeners("change")) {
+    this.dispatchEvent(new qx.event.type.Event("change"), true);
+  }
+
+  return true;
+}
+
+qx.Proto._checkMin = function(propValue) {
+  return Math.floor(propValue);
+}
+
+qx.Proto._modifyMin = function(propValue, propOldValue, propData)
+{
+  this.setValue(Math.max(this.getValue(), propValue));
+
+  if (this.hasEventListeners("change")) {
+    this.dispatchEvent(new qx.event.type.Event("change"), true);
+  }
+
+  return true;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Selection.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Selection.js
new file mode 100644 (file)
index 0000000..61f0be7
--- /dev/null
@@ -0,0 +1,120 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+
+************************************************************************ */
+
+/*!
+  Helper for qx.manager.selection.SelectionManager, contains data for selections
+*/
+qx.OO.defineClass("qx.type.Selection", qx.core.Object,
+function(vManager)
+{
+  qx.core.Object.call(this);
+
+  this._manager = vManager;
+  this.removeAll();
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  USER METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.add = function(oItem) {
+  this._storage[this.getItemHashCode(oItem)] = oItem;
+}
+
+qx.Proto.remove = function(oItem) {
+  delete this._storage[this.getItemHashCode(oItem)];
+}
+
+qx.Proto.removeAll = function() {
+  this._storage = {};
+}
+
+qx.Proto.contains = function(oItem) {
+  return this.getItemHashCode(oItem) in this._storage;
+}
+
+qx.Proto.toArray = function()
+{
+  var res = [];
+
+  for (var key in this._storage) {
+    res.push(this._storage[key]);
+  }
+
+  return res;
+}
+
+qx.Proto.getFirst = function()
+{
+  for (var key in this._storage) {
+    return this._storage[key];
+  }
+}
+
+qx.Proto.getChangeValue = function()
+{
+  var sb = [];
+
+  for (var hc in this._storage) {
+    sb.push(hc);
+  }
+
+  sb.sort();
+  return sb.join(";");
+}
+
+qx.Proto.getItemHashCode = function(oItem) {
+  return this._manager.getItemHashCode(oItem);
+}
+
+qx.Proto.isEmpty = function() {
+  return qx.lang.Object.isEmpty(this._storage);
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._storage = null;
+  this._manager = null;
+
+  qx.core.Object.prototype.dispose.call(this);
+}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/StringBuilder.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/StringBuilder.js
new file mode 100644 (file)
index 0000000..c31102c
--- /dev/null
@@ -0,0 +1,146 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#require(qx.sys.Client)
+
+************************************************************************ */
+
+/**
+ * A string builder class
+ * <p>
+ * += operator is faster in Firefox and Opera.
+ * Array push/join is faster in Internet Explorer
+ * </p><p>
+ * Even with this wrapper, which costs some time, this is
+ * faster in Firefox than the alternative Array concat in
+ * all browsers (which is in relation to IE's performance issues
+ * only marginal). The IE performance loss caused by this
+ * wrapper is not relevant.
+ * </p><p>
+ * So this class seems to be the best compromise to handle
+ * string concatination.</p>
+ */
+qx.OO.defineClass("qx.type.StringBuilder", qx.core.Object,
+function()
+{
+  qx.core.Object.call(this);
+
+  this.init();
+  this.add.apply(this, arguments);
+});
+
+
+/**
+ * Resets the contents of the Stringbuilder
+ * equivalent to <pre>str = ""; </pre>
+ */
+qx.Proto.clear = function() {}
+
+/**
+ * Returns the contents of the concatenated string
+ *
+ * @return (string) string content
+ */
+qx.Proto.get = function() {}
+
+/**
+ * Append a variable number of string arguments
+ *
+ * @param varargs (string) variable number os strings to be added
+ */
+qx.Proto.add = function(varargs) {}
+
+/**
+ * Initializes the contents of the Stringbuilder
+ * equivalent to <pre>str = ""; </pre>
+ */
+qx.Proto.init = function() {}
+
+/** Destructor */
+qx.Proto.dispose = function() {}
+
+/**
+ * Returns the contents of the concatenated string
+ *
+ * @return (string) string content
+ */
+qx.Proto.toString = function() {}
+
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto.clear = function() {
+    this._array = [];
+  }
+
+  qx.Proto.get = function() {
+    return this._array.join("");
+  }
+
+  qx.Proto.add = function() {
+    this._array.push.apply(this._array, arguments);
+  }
+
+  qx.Proto.init = function() {
+    this._array = [];
+  }
+
+  qx.Proto.dispose = function()
+  {
+    if (this.getDisposed()) {
+      return;
+    }
+
+    this._array = null;
+
+    qx.core.Object.prototype.dispose.call(this);
+  }
+}
+else
+{
+  qx.Proto.clear = function() {
+    this._string = "";
+  }
+
+  qx.Proto.get = function() {
+    return this._string;
+  }
+
+  qx.Proto.add = function() {
+    this._string += Array.prototype.join.call(arguments, "");
+  }
+
+  qx.Proto.init = function() {
+    this._string = "";
+  }
+
+  qx.Proto.dispose = function()
+  {
+    if (this.getDisposed()) {
+      return;
+    }
+
+    this._string = null;
+
+    qx.core.Object.prototype.dispose.call(this);
+  }
+}
+
+qx.Proto.toString = qx.Proto.get;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Version.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Version.js
new file mode 100755 (executable)
index 0000000..e0ce4ec
--- /dev/null
@@ -0,0 +1,118 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+/*!
+  This class contains a version string and can extract
+  major, minor and revision flags from this string. It can also
+  compare a incoming version object with the stored version string
+  and checks if this version is smaller or identical than the stored
+  one.
+
+  Flash detection and embed (http://blog.deconcept.com/flashobject) (non qooxdoo Version by Geoff Stearns)
+  Copyright 2005 Geoff Stearns. Released under the MIT License (http://www.opensource.org/licenses/mit-license.php).
+
+  Modified for qooxdoo by Sebastian Werner. Based on version 1.2.3. Relicensed under LGPL in assent of Geoff Stearns.
+*/
+
+qx.OO.defineClass("qx.type.Version", qx.core.Object,
+function(arrVersion)
+{
+  qx.core.Object.call(this);
+
+  if (typeof arrVersion === "string") {
+    arrVersion = arrVersion.split(".");
+  }
+
+  this._major = parseInt(arrVersion[0]) || 0;
+  this._minor = parseInt(arrVersion[1]) || 0;
+  this._rev = parseInt(arrVersion[2]) || 0;
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DATA FIELDS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._major = 0;
+qx.Proto._minor = 0;
+qx.Proto._rev = 0;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  USER VERSION ACCESS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.versionIsValid = function(fv)
+{
+  if (this.getMajor() < fv.getMajor()) return false;
+  if (this.getMajor() > fv.getMajor()) return true;
+
+  if (this.getMinor() < fv.getMinor()) return false;
+  if (this.getMinor() > fv.getMinor()) return true;
+
+  if (this.getRev() < fv.getRev()) return false;
+
+  return true;
+}
+
+qx.Proto.getMajor = function() {
+  return this._major;
+}
+
+qx.Proto.getMinor = function() {
+  return this._minor;
+}
+
+qx.Proto.getRev = function() {
+  return this._rev;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._major = this._minor = this._rev = null;
+
+  qx.core.Object.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Atom.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Atom.js
new file mode 100644 (file)
index 0000000..5a1c0ae
--- /dev/null
@@ -0,0 +1,397 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+#optional(qx.ui.embed.Flash)
+
+************************************************************************ */
+
+/*!
+  A multi-prupose widget used by many more complex widgets.
+
+  The intended purpose of qx.ui.basic.Atom is to easily align the common icon-text combination in different ways.
+  This is useful for all types of buttons, menuentires, tooltips, ...
+*/
+qx.OO.defineClass("qx.ui.basic.Atom", qx.ui.layout.BoxLayout,
+function(vLabel, vIcon, vIconWidth, vIconHeight, vFlash)
+{
+  qx.ui.layout.BoxLayout.call(this);
+
+  if (this.getOrientation() == null) {
+    this.setOrientation("horizontal");
+  }
+
+  // Prohibit selection
+  this.setSelectable(false);
+
+  // Disable flex support
+  this.getLayoutImpl().setEnableFlexSupport(false);
+
+  // Apply constructor arguments
+  if (qx.util.Validation.isValidString(vLabel)) {
+    this.setLabel(vLabel);
+  } else {
+    this.setLabel("");
+  }
+
+  // Simple flash wrapper
+  if (qx.OO.isAvailable("qx.ui.embed.Flash") && qx.util.Validation.isValidString(vFlash) && qx.util.Validation.isValidNumber(vIconWidth) && qx.util.Validation.isValidNumber(vIconHeight) && qx.ui.embed.Flash.getPlayerVersion().getMajor() > 0)
+  {
+    this._flashMode = true;
+
+    this.setIcon(vFlash);
+
+    // flash needs explicit dimensions!
+    this.setIconWidth(vIconWidth);
+    this.setIconHeight(vIconHeight);
+  }
+  else if (qx.util.Validation.isValidString(vIcon))
+  {
+    this.setIcon(vIcon);
+
+    if (qx.util.Validation.isValidNumber(vIconWidth)) {
+      this.setIconWidth(vIconWidth);
+    }
+
+    if (qx.util.Validation.isValidNumber(vIconHeight)) {
+      this.setIconHeight(vIconHeight);
+    }
+  }
+});
+
+qx.ui.basic.Atom.SHOW_LABEL = "label";
+qx.ui.basic.Atom.SHOW_ICON = "icon";
+qx.ui.basic.Atom.SHOW_BOTH = "both";
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  The label/caption/text of the qx.ui.basic.Atom instance
+*/
+qx.OO.addProperty({ name : "label", type : "string" });
+
+/*!
+  Any URI String supported by qx.ui.basic.Image to display a icon
+*/
+qx.OO.addProperty({ name : "icon", type : "string" });
+
+/**
+ * Any URI String supported by qx.ui.basic.Image to display a disabled icon.
+ * <p>
+ * If not set the normal icon is shown transparently.
+ */
+qx.OO.addProperty({ name : "disabledIcon", type : "string" });
+
+/*!
+  Configure the visibility of the sub elements/widgets.
+  Possible values: both, text, icon, none
+*/
+qx.OO.addProperty({ name : "show", type : "string", defaultValue : "both", possibleValues : [ "both", "label", "icon", "none", null ] });
+
+/*!
+  The position of the icon in relation to the text.
+  Only useful/needed if text and icon is configured and 'show' is configured as 'both' (default)
+*/
+qx.OO.addProperty({ name : "iconPosition", type : "string", defaultValue : "left", possibleValues : [ "top", "right", "bottom", "left" ] });
+
+/*!
+  The width of the icon.
+  If configured, this makes qx.ui.basic.Atom a little bit faster as it does not need to wait until the image loading is finished.
+*/
+qx.OO.addProperty({ name : "iconWidth", type : "number" });
+
+/*!
+  The height of the icon
+  If configured, this makes qx.ui.basic.Atom a little bit faster as it does not need to wait until the image loading is finished.
+*/
+qx.OO.addProperty({ name : "iconHeight", type : "number" });
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "atom" });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SUB WIDGETS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._flashMode = false;
+
+qx.Proto._labelObject = null;
+qx.Proto._iconObject = null;
+
+qx.Proto._createLabel = function()
+{
+  var l = this._labelObject = new qx.ui.basic.Label(this.getLabel());
+
+  l.setAnonymous(true);
+  l.setEnabled(this.getEnabled());
+  l.setSelectable(false);
+
+  this.addAt(l, this._iconObject ? 1 : 0);
+}
+
+qx.Proto._createIcon = function()
+{
+  if (this._flashMode && qx.OO.isAvailable("qx.ui.embed.Flash"))
+  {
+    var i = this._iconObject = new qx.ui.embed.Flash(this.getIcon());
+  }
+  else
+  {
+    var i = this._iconObject = new qx.ui.basic.Image();
+  }
+
+  i.setAnonymous(true);
+
+  this._updateIcon();
+
+  this.addAt(i, 0);
+}
+
+qx.Proto._updateIcon = function() {
+  // NOTE: We have to check whether the properties "icon" and "disabledIcon"
+  //       exist, because some child classes remove them.
+  if (this._iconObject && this.getIcon && this.getDisabledIcon) {
+    var disabledIcon = this.getDisabledIcon();
+    if (disabledIcon) {
+      if (this.getEnabled()) {
+        this._iconObject.setSource(this.getIcon());
+      } else {
+        this._iconObject.setSource(disabledIcon);
+      }
+      this._iconObject.setEnabled(true);
+    } else {
+      this._iconObject.setSource(this.getIcon());
+      this._iconObject.setEnabled(this.getEnabled());
+    }
+  }
+}
+
+qx.Proto.getLabelObject = function() {
+  return this._labelObject;
+}
+
+qx.Proto.getIconObject = function() {
+  return this._iconObject;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
+{
+  this._updateIcon();
+
+  if (this._labelObject) {
+    this._labelObject.setEnabled(propValue);
+  }
+
+  return qx.ui.layout.BoxLayout.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
+}
+
+qx.Proto._modifyIconPosition = function(propValue, propOldValue, propData)
+{
+  switch(propValue)
+  {
+    case "top":
+    case "bottom":
+      this.setOrientation("vertical");
+      this.setReverseChildrenOrder(propValue == "bottom");
+      break;
+
+    default:
+      this.setOrientation("horizontal");
+      this.setReverseChildrenOrder(propValue == "right");
+      break;
+  }
+
+  return true;
+}
+
+qx.Proto._modifyShow = function(propValue, propOldValue, propData)
+{
+  this._handleIcon();
+  this._handleLabel();
+
+  return true;
+}
+
+qx.Proto._modifyLabel = function(propValue, propOldValue, propData)
+{
+  if (this._labelObject) {
+    this._labelObject.setHtml(propValue);
+  }
+
+  this._handleLabel();
+
+  return true;
+}
+
+qx.Proto._modifyIcon = function(propValue, propOldValue, propData)
+{
+  this._updateIcon();
+  this._handleIcon();
+
+  return true;
+}
+
+qx.Proto._modifyDisabledIcon = function(propValue, propOldValue, propData)
+{
+  this._updateIcon();
+  this._handleIcon();
+
+  return true;
+}
+
+qx.Proto._modifyIconWidth = function(propValue, propOldValue, propData)
+{
+  this._iconObject.setWidth(propValue);
+  return true;
+}
+
+qx.Proto._modifyIconHeight = function(propValue, propOldValue, propData)
+{
+  this._iconObject.setHeight(propValue);
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._iconIsVisible = false;
+qx.Proto._labelIsVisible = false;
+
+qx.Proto._handleLabel = function()
+{
+  switch(this.getShow())
+  {
+    case qx.ui.basic.Atom.SHOW_LABEL:
+    case qx.ui.basic.Atom.SHOW_BOTH:
+      this._labelIsVisible = qx.util.Validation.isValidString(this.getLabel());
+      break;
+
+    default:
+      this._labelIsVisible = false;
+  }
+
+  if (this._labelIsVisible)
+  {
+    this._labelObject ? this._labelObject.setDisplay(true) : this._createLabel();
+  }
+  else if (this._labelObject)
+  {
+    this._labelObject.setDisplay(false);
+  }
+}
+
+qx.Proto._handleIcon = function()
+{
+  switch(this.getShow())
+  {
+    case qx.ui.basic.Atom.SHOW_ICON:
+    case qx.ui.basic.Atom.SHOW_BOTH:
+      this._iconIsVisible = qx.util.Validation.isValidString(this.getIcon());
+      break;
+
+    default:
+      this._iconIsVisible = false;
+  }
+
+  if (this._iconIsVisible)
+  {
+    this._iconObject ? this._iconObject.setDisplay(true) : this._createIcon();
+  }
+  else if (this._iconObject)
+  {
+    this._iconObject.setDisplay(false);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CLONE
+---------------------------------------------------------------------------
+*/
+
+// Omit recursive cloning
+qx.Proto._cloneRecursive = qx.util.Return.returnTrue;
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if (this._iconObject)
+  {
+    this._iconObject.dispose();
+    this._iconObject = null;
+  }
+
+  if (this._labelObject)
+  {
+    this._labelObject.dispose();
+    this._labelObject = null;
+  }
+
+  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
+}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/HorizontalSpacer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/HorizontalSpacer.js
new file mode 100644 (file)
index 0000000..9db8f12
--- /dev/null
@@ -0,0 +1,31 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.basic.HorizontalSpacer", qx.ui.basic.Terminator,
+function()
+{
+  qx.ui.basic.Terminator.call(this);
+
+  this.setWidth("1*");
+});
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Image.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Image.js
new file mode 100644 (file)
index 0000000..0cc25a9
--- /dev/null
@@ -0,0 +1,611 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+#resource(core:static/image)
+
+************************************************************************ */
+
+/**
+ * This widget is for all images in qooxdoo projects.
+ *
+ * @event error {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.ui.basic.Image", qx.ui.basic.Terminator,
+function(vSource, vWidth, vHeight)
+{
+  qx.ui.basic.Terminator.call(this);
+
+  // Reset Alt and Title
+  this.setHtmlProperty("alt", "");
+  this.setHtmlProperty("title", "");
+
+  // Apply constructor arguments
+  this.setSource(qx.util.Validation.isValid(vSource) ? vSource : "static/image/blank.gif");
+
+  // Dimensions
+  this.setWidth(qx.util.Validation.isValid(vWidth) ? vWidth : "auto");
+  this.setHeight(qx.util.Validation.isValid(vHeight) ? vHeight : "auto");
+
+  // Prohibit selection
+  this.setSelectable(false);
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  The source uri of the image.
+*/
+qx.OO.addProperty({ name : "source", type : "string" });
+
+/*!
+  The assigned preloader instance of the image.
+*/
+qx.OO.addProperty({ name : "preloader", type : "object" });
+
+/*!
+  The loading status.
+
+  True if the image is loaded correctly. False if no image is loaded
+  or the one that should be loaded is currently loading or not available.
+*/
+qx.OO.addProperty({ name : "loaded", type : "boolean", defaultValue : false });
+
+/*!
+  Should the image be maxified in it's own container?
+*/
+qx.OO.addProperty({ name : "resizeToInner", type : "boolean", defaultValue : false });
+
+/*!
+  Appearance of the widget
+*/
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "image" });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT MAPPERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onload = function() {
+  this.setLoaded(true);
+}
+
+qx.Proto._onerror = function()
+{
+  this.debug("Could not load: " + this.getSource());
+
+  this.setLoaded(false);
+
+  if (this.hasEventListeners("error")) {
+    this.dispatchEvent(new qx.event.type.Event("error"), true);
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPLAYBLE HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._beforeAppear = function()
+{
+  var vSource = this.getSource();
+
+  if (qx.util.Validation.isValidString(vSource)) {
+    qx.manager.object.ImageManager.getInstance()._sources[vSource]++;
+  }
+
+  return qx.ui.basic.Terminator.prototype._beforeAppear.call(this);
+}
+
+qx.Proto._beforeDisappear = function()
+{
+  var vSource = this.getSource();
+
+  if (qx.util.Validation.isValidString(vSource))
+  {
+    if (qx.manager.object.ImageManager.getInstance()._sources[vSource] <= 1)
+    {
+      delete qx.manager.object.ImageManager.getInstance()._sources[vSource];
+    }
+    else
+    {
+      qx.manager.object.ImageManager.getInstance()._sources[vSource]--;
+    }
+  }
+
+  return qx.ui.basic.Terminator.prototype._beforeDisappear.call(this);
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifySource = function(propValue, propOldValue, propData)
+{
+  if (propValue && typeof qx.manager.object.ImageManager.getInstance()._sources[propValue] === "undefined") {
+    qx.manager.object.ImageManager.getInstance()._sources[propValue] = 0;
+  }
+
+  if (propOldValue)
+  {
+    if (qx.manager.object.ImageManager.getInstance()._sources[propOldValue] <= 1)
+    {
+      delete qx.manager.object.ImageManager.getInstance()._sources[propOldValue];
+    }
+    else
+    {
+      qx.manager.object.ImageManager.getInstance()._sources[propOldValue]--;
+    }
+  }
+
+  if (this.isCreated())
+  {
+    if (propValue)
+    {
+      this.setPreloader(qx.manager.object.ImagePreloaderManager.getInstance().create(qx.manager.object.AliasManager.getInstance().resolvePath(propValue)));
+    }
+    else if (propOldValue)
+    {
+      this._resetContent();
+      this.setPreloader(null);
+    }
+  }
+
+  return true;
+}
+
+qx.Proto._modifyPreloader = function(propValue, propOldValue, propData)
+{
+  if (propOldValue)
+  {
+    // remove event connection
+    propOldValue.removeEventListener("load", this._onload, this);
+    propOldValue.removeEventListener("error", this._onerror, this);
+  }
+
+  if (propValue)
+  {
+    // Register to image manager
+    qx.manager.object.ImageManager.getInstance().add(this);
+
+    // Omit  here, otherwise the later setLoaded(true)
+    // will not be executed (prevent recursion)
+
+    // Changed: Use forceLoaded instead of setLoaded => should be faster
+    this.forceLoaded(false);
+
+    if (propValue.isErroneous())
+    {
+      this._onerror();
+    }
+    else if (propValue.isLoaded())
+    {
+      this.setLoaded(true);
+    }
+    else
+    {
+      propValue.addEventListener("load", this._onload, this);
+      propValue.addEventListener("error", this._onerror, this);
+    }
+  }
+  else
+  {
+    // Remove from image manager
+    qx.manager.object.ImageManager.getInstance().remove(this);
+
+    this.setLoaded(false);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyLoaded = function(propValue, propOldValue, propData)
+{
+  if (propValue && this.isCreated())
+  {
+    this._applyContent();
+  }
+  else if (!propValue)
+  {
+    this._invalidatePreferredInnerWidth();
+    this._invalidatePreferredInnerHeight();
+  }
+
+  return true;
+}
+
+qx.Proto._modifyElement = function(propValue, propOldValue, propData)
+{
+  if (propValue)
+  {
+    if (!this._image)
+    {
+      try
+      {
+        // Create Image-Node
+        // Webkit has problems with "new Image". Maybe related to "new Function" with
+        // is also not working correctly.
+        if (qx.sys.Client.getInstance().isWebkit())
+        {
+          this._image = document.createElement("img");
+        }
+        else
+        {
+          this._image = new Image;
+        }
+
+        // Possible alternative for MSHTML for PNG images
+        // But it seems not to be faster
+        // this._image = document.createElement("div");
+
+        // this costs much performance, move setup to blank gif to error handling
+        // is this SSL save?
+        // this._image.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
+
+        this._image.style.border = "0 none";
+        this._image.style.verticalAlign = "top";
+      }
+      catch(ex)
+      {
+        this.error("Failed while creating image #1", ex);
+      }
+
+      if (!qx.sys.Client.getInstance().isMshtml()) {
+        this._applyEnabled();
+      }
+    }
+
+    propValue.appendChild(this._image);
+  }
+
+  // call widget implmentation
+  qx.ui.basic.Terminator.prototype._modifyElement.call(this, propValue, propOldValue, propData);
+
+  if (propValue)
+  {
+    try
+    {
+      // initialisize preloader
+      var vSource = this.getSource();
+      if (qx.util.Validation.isValidString(vSource)) {
+        this.setPreloader(qx.manager.object.ImagePreloaderManager.getInstance().create(qx.manager.object.AliasManager.getInstance().resolvePath(vSource)));
+      }
+    }
+    catch(ex)
+    {
+      this.error("Failed while creating image #2", ex);
+    }
+  }
+
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CLIENT OPTIMIZED MODIFIERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._postApply = function()
+{
+  if (!this.getLoaded()) {
+    this._updateContent(qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif"));
+    return;
+  }
+
+  this._postApplyDimensions();
+  this._updateContent();
+}
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
+  {
+    if (this._image) {
+      this._applyEnabled();
+    }
+
+    return qx.ui.basic.Terminator.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
+  }
+
+  qx.Proto._updateContent = function(vSource)
+  {
+    var i = this._image;
+    var pl = this.getPreloader();
+
+    if (pl.getIsPng() && this.getEnabled())
+    {
+      i.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
+      i.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + (vSource || pl.getSource()) + "',sizingMethod='scale')";
+    }
+    else
+    {
+      i.src = vSource || pl.getSource();
+      i.style.filter = this.getEnabled() ? "" : "Gray() Alpha(Opacity=30)";
+    }
+  }
+
+  qx.Proto._resetContent = function()
+  {
+    var i = this._image;
+
+    i.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
+    i.style.filter = "";
+  }
+
+  qx.Proto._applyEnabled = qx.Proto._postApply;
+}
+else
+{
+  qx.Proto._updateContent = function(vSource) {
+    this._image.src = vSource || this.getPreloader().getSource();
+  }
+
+  qx.Proto._resetContent = function() {
+    this._image.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
+  }
+
+  qx.Proto._applyEnabled = function()
+  {
+    if (this._image)
+    {
+      var o = this.getEnabled() ? "" : 0.3;
+      var s = this._image.style;
+
+      s.opacity = s.KhtmlOpacity = s.MozOpacity = o;
+    }
+  }
+
+  qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
+  {
+    if (this._image) {
+      this._applyEnabled();
+    }
+
+    return qx.ui.basic.Terminator.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PREFERRED DIMENSIONS: INNER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._computePreferredInnerWidth = function()
+{
+  if (this.getLoaded())
+  {
+    return this.getPreloader().getWidth();
+  }
+  else if (qx.util.Validation.isValidString(this.getSource()))
+  {
+    var vPreloader = qx.manager.object.ImagePreloaderManager.getInstance().get(qx.manager.object.AliasManager.getInstance().resolvePath(this.getSource()));
+
+    if (vPreloader && vPreloader.isLoaded()) {
+      return vPreloader.getWidth();
+    }
+  }
+
+  return 0;
+}
+
+qx.Proto._computePreferredInnerHeight = function()
+{
+  if (this.getLoaded())
+  {
+    return this.getPreloader().getHeight();
+  }
+  else if (qx.util.Validation.isValidString(this.getSource()))
+  {
+    var vPreloader = qx.manager.object.ImagePreloaderManager.getInstance().get(qx.manager.object.AliasManager.getInstance().resolvePath(this.getSource()));
+
+    if (vPreloader && vPreloader.isLoaded()) {
+      return vPreloader.getHeight();
+    }
+  }
+
+  return 0;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPLY
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._applyContent = function()
+{
+  qx.ui.basic.Terminator.prototype._applyContent.call(this);
+
+  // Images load asyncron, so we need to force flushing here
+  // to get an up-to-date view when an image is loaded.
+  qx.ui.core.Widget.flushGlobalQueues();
+}
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto._postApplyDimensions = function()
+  {
+    try
+    {
+      var vImageStyle = this._image.style;
+
+      if (this.getResizeToInner())
+      {
+        vImageStyle.pixelWidth = this.getInnerWidth();
+        vImageStyle.pixelHeight = this.getInnerHeight();
+      }
+      else
+      {
+        vImageStyle.pixelWidth = this.getPreferredInnerWidth();
+        vImageStyle.pixelHeight = this.getPreferredInnerHeight();
+      }
+    }
+    catch(ex)
+    {
+      this.error("postApplyDimensions failed", ex);
+    }
+  }
+}
+else
+{
+  qx.Proto._postApplyDimensions = function()
+  {
+    try
+    {
+      var vImageNode = this._image;
+
+      if (this.getResizeToInner())
+      {
+        vImageNode.width = this.getInnerWidth();
+        vImageNode.height = this.getInnerHeight();
+      }
+      else
+      {
+        vImageNode.width = this.getPreferredInnerWidth();
+        vImageNode.height = this.getPreferredInnerHeight();
+      }
+    }
+    catch(ex)
+    {
+      this.error("postApplyDimensions failed", ex);
+    }
+  }
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHANGES IN DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto._changeInnerWidth = function(vNew, vOld)
+  {
+    if (this.getResizeToInner()) {
+      this._image.style.pixelWidth = vNew;
+    }
+  }
+
+  qx.Proto._changeInnerHeight = function(vNew, vOld)
+  {
+    if (this.getResizeToInner()) {
+      this._image.style.pixelHeight = vNew;
+    }
+  }
+}
+else
+{
+  qx.Proto._changeInnerWidth = function(vNew, vOld)
+  {
+    if (this.getResizeToInner()) {
+      this._image.width = vNew;
+    }
+  }
+
+  qx.Proto._changeInnerHeight = function(vNew, vOld)
+  {
+    if (this.getResizeToInner()) {
+      this._image.height = vNew;
+    }
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  var vPreloader = this.getPreloader();
+  if (vPreloader)
+  {
+    // remove event connection
+    vPreloader.removeEventListener("load", this._onload, this);
+    vPreloader.removeEventListener("error", this._onerror, this);
+
+    this.forcePreloader(null);
+  }
+
+  if (this._image)
+  {
+    // Remove leaking filter attribute before leaving page
+    this._image.style.filter = "";
+    this._image = null;
+  }
+
+  qx.manager.object.ImageManager.getInstance().remove(this);
+
+  return qx.ui.basic.Terminator.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Inline.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Inline.js
new file mode 100644 (file)
index 0000000..f6c59cf
--- /dev/null
@@ -0,0 +1,37 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.basic.Inline", qx.ui.layout.CanvasLayout,
+function(vId)
+{
+  qx.ui.layout.CanvasLayout.call(this);
+
+  this.setStyleProperty("position", "relative");
+
+  if (qx.util.Validation.isValidString(vId)) {
+    this.setInlineNodeId(vId);
+  }
+});
+
+qx.OO.addProperty({ name : "inlineNodeId", type : "string" });
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Label.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Label.js
new file mode 100644 (file)
index 0000000..a284649
--- /dev/null
@@ -0,0 +1,546 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+#require(qx.renderer.font.FontCache)
+#after(qx.renderer.font.FontObject)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.basic.Label", qx.ui.basic.Terminator,
+function(vHtml, vMnemonic)
+{
+  qx.ui.basic.Terminator.call(this);
+
+  // Apply constructor arguments
+  if (qx.util.Validation.isValidString(vHtml)) {
+    this.setHtml(vHtml);
+  }
+
+  if (qx.util.Validation.isValidString(vMnemonic)) {
+    this.setMnemonic(vMnemonic);
+  }
+
+  // Prohibit stretching through layout handler
+  this.setAllowStretchX(false);
+  this.setAllowStretchY(false);
+
+  // Auto Sized
+  this.auto();
+});
+
+qx.Class._measureNodes = {};
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "label" });
+
+/*!
+  Any text string which can contain HTML, too
+*/
+qx.OO.addProperty({ name : "html", type : "string" });
+
+/*!
+  The alignment of the text.
+*/
+qx.OO.addProperty({ name : "textAlign", type : "string", defaultValue : "left", possibleValues : [ "left", "center", "right", "justify" ] });
+
+/*!
+  The styles which should be copied
+*/
+qx.OO.addProperty({ name : "fontPropertiesProfile", type : "string", defaultValue : "default", possibleValues : [ "none", "default", "extended", "multiline", "extendedmultiline", "all" ] });
+
+/*!
+  A single character which will be underlined inside the text.
+*/
+qx.OO.addProperty({ name : "mnemonic", type : "string" });
+
+/*!
+  The font property describes how to paint the font on the widget.
+*/
+qx.OO.addProperty({ name : "font", type : "object", instance : "qx.renderer.font.Font", convert : qx.renderer.font.FontCache, allowMultipleArguments : true });
+
+/*!
+  Wrap the text?
+*/
+qx.OO.addProperty({ name : "wrap", type : "boolean", defaultValue : true });
+
+
+
+
+
+
+
+
+
+/* ************************************************************************
+   Class data, properties and methods
+************************************************************************ */
+
+/*
+---------------------------------------------------------------------------
+  DATA
+---------------------------------------------------------------------------
+*/
+
+qx.ui.basic.Label.SYMBOL_ELLIPSIS = String.fromCharCode(8230);
+qx.ui.basic.Label.SUPPORT_NATIVE_ELLIPSIS = qx.sys.Client.getInstance().isMshtml();
+
+// these are the properties what will be copied to the measuring frame.
+qx.ui.basic.Label._fontProperties =
+{
+  "none" : [],
+
+  "default" : ["fontFamily", "fontSize", "fontStyle", "fontWeight", "textDecoration"],
+  "extended" : ["fontFamily", "fontSize", "fontStyle", "fontWeight", "letterSpacing", "textDecoration", "textTransform", "whiteSpace", "wordSpacing"],
+
+  "multiline" : ["fontFamily", "fontSize", "fontStyle", "fontWeight", "textDecoration", "lineHeight", "wordWrap"],
+  "extendedmultiline" : ["fontFamily", "fontSize", "fontStyle", "fontWeight", "letterSpacing", "textDecoration", "textTransform", "whiteSpace", "wordSpacing", "lineHeight", "wordBreak", "wordWrap", "quotes"],
+
+  "all" : ["fontFamily", "fontSize", "fontStyle", "fontVariant", "fontWeight", "letterSpacing", "lineBreak", "lineHeight", "quotes", "textDecoration", "textIndent", "textShadow", "textTransform", "textUnderlinePosition", "whiteSpace", "wordBreak", "wordSpacing", "wordWrap"]
+}
+
+qx.ui.basic.Label.htmlToText = function(s) {
+  return String(s).replace(/\s+|<([^>])+>|&amp;|&lt;|&gt;|&quot;|&nbsp;|&#[0-9]+;|&#x[0-9a-fA-F];]/gi, qx.ui.basic.Label._htmlToText);
+}
+
+qx.ui.basic.Label._htmlToText = function(s)
+{
+  switch(s)
+  {
+    case "&amp;":
+      return "&";
+
+    case "&lt;":
+      return "<";
+
+    case "&gt;":
+      return ">";
+
+    case "&quot;":
+      return '"';
+
+    case "&nbsp;":
+      return String.fromCharCode(160);
+
+    default:
+      if (s.substring(0, 3) == "&#x") {
+        return String.fromCharCode(parseInt("0x" + s.substring(3, s.length - 1)));
+      }
+      else if (s.substring(0, 2) == "&#") {
+        return String.fromCharCode(s.substring(2, s.length - 1));
+      }
+      else if (/\s+/.test(s)) {
+        return " ";
+      }
+      else if (/^<BR/gi.test(s)) {
+        return "\n";
+      }
+
+      return "";
+  }
+}
+
+qx.ui.basic.Label.textToHtml = function(s) {
+  return String(s).replace(/&|<|>|\n|\u00A0/g, qx.ui.basic.Label._textToHtml);
+}
+
+qx.ui.basic.Label._textToHtml = function(s)
+{
+  switch(s)
+  {
+    case "&":
+      return "&amp;";
+
+    case "<":
+      return "&lt;";
+
+    case ">":
+      return "&gt;";
+
+    case "\n":
+      return "<br/>";
+
+    default:
+      return " ";
+  }
+}
+
+qx.ui.basic.Label.createMeasureNode = function(vId)
+{
+  var vNode = qx.ui.basic.Label._measureNodes[vId];
+
+  if (!vNode)
+  {
+    vNode = document.createElement("div");
+    var vStyle = vNode.style;
+
+    vStyle.width = vStyle.height = "auto";
+    vStyle.visibility = "hidden";
+    vStyle.position = "absolute";
+    vStyle.zIndex = "-1";
+
+    document.body.appendChild(vNode);
+
+    qx.ui.basic.Label._measureNodes[vId] = vNode;
+  }
+
+  return vNode;
+}
+
+
+
+
+
+
+
+
+/* ************************************************************************
+   Instance data, properties and methods
+************************************************************************ */
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._htmlMode = false;
+qx.Proto._hasMnemonic = false;
+qx.Proto._mnemonicHtml = "";
+qx.Proto._mnemonicTest = null;
+
+qx.Proto._modifyHtml = function(propValue, propOldValue, propData)
+{
+  this._htmlMode = qx.util.Validation.isValidString(propValue) && propValue.match(/<.*>/) ? true : false;
+
+  if (this._isCreated) {
+    this._applyContent();
+  }
+
+  return true;
+}
+
+qx.Proto._modifyTextAlign = function(propValue, propOldValue, propData)
+{
+  this.setStyleProperty("textAlign", propValue);
+  return true;
+}
+
+qx.Proto._modifyMnemonic = function(propValue, propOldValue, propData)
+{
+  this._hasMnemonic = qx.util.Validation.isValidString(propValue) && propValue.length == 1;
+
+  this._mnemonicHtml = this._hasMnemonic ? "(<span style=\"text-decoration:underline\">" + propValue + "</span>)" : "";
+  this._mnemonicTest = this._hasMnemonic ? new RegExp("^(((<([^>]|" + propValue + ")+>)|(&([^;]|" + propValue + ")+;)|[^&" + propValue + "])*)(" + propValue + ")", "i") : null;
+
+  return true;
+}
+
+qx.Proto._modifyFont = function(propValue, propOldValue, propData)
+{
+  this._invalidatePreferredInnerDimensions();
+
+  if (propValue) {
+    propValue._applyWidget(this);
+  } else if (propOldValue) {
+    propOldValue._resetWidget(this);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyWrap = function(propValue, propOldValue, propData)
+{
+  this.setStyleProperty("whiteSpace", propValue ? "normal" : "nowrap");
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HELPER FOR PREFERRED DIMENSION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._computeObjectNeededDimensions = function()
+{
+  // copy styles
+  var vNode = this._copyStyles();
+
+  // prepare html
+  var vHtml = this.getHtml();
+
+  // test for mnemonic and fix content
+  if (this._hasMnemonic && !this._mnemonicTest.test(vHtml)) {
+    vHtml += this._mnemonicHtml;
+  }
+
+  // apply html
+  vNode.innerHTML = vHtml;
+
+  // store values
+  this._cachedPreferredInnerWidth = vNode.scrollWidth;
+  this._cachedPreferredInnerHeight = vNode.scrollHeight;
+}
+
+qx.Proto._copyStyles = function()
+{
+  var vProps = this.getFontPropertiesProfile();
+  var vNode = qx.ui.basic.Label.createMeasureNode(vProps);
+  var vUseProperties=qx.ui.basic.Label._fontProperties[vProps];
+  var vUsePropertiesLength=vUseProperties.length-1;
+  var vProperty=vUseProperties[vUsePropertiesLength--];
+
+  var vStyle = vNode.style;
+  var vTemp;
+
+  if (!vProperty) {
+    return vNode;
+  }
+
+  do {
+    vStyle[vProperty] = qx.util.Validation.isValid(vTemp = this.getStyleProperty([vProperty])) ? vTemp : "";
+  } while(vProperty=vUseProperties[vUsePropertiesLength--]);
+
+  return vNode;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PREFERRED DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._computePreferredInnerWidth = function()
+{
+  this._computeObjectNeededDimensions();
+  return this._cachedPreferredInnerWidth;
+}
+
+qx.Proto._computePreferredInnerHeight = function()
+{
+  this._computeObjectNeededDimensions();
+  return this._cachedPreferredInnerHeight;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LAYOUT APPLY
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._postApply = function()
+{
+  var vHtml = this.getHtml();
+  var vElement = this._getTargetNode();
+  var vMnemonicMode = 0;
+
+  if (qx.util.Validation.isInvalidString(vHtml)) {
+    vElement.innerHTML = "";
+    return;
+  }
+
+  if (this._hasMnemonic) {
+    vMnemonicMode = this._mnemonicTest.test(vHtml) ? 1 : 2;
+  }
+
+  // works only with text, don't use when wrap is enabled
+  if (!this._htmlMode && !this.getWrap())
+  {
+    switch(this._computedWidthType)
+    {
+      case qx.ui.core.Widget.TYPE_PIXEL:
+      case qx.ui.core.Widget.TYPE_PERCENT:
+
+      //carstenl: enabled truncation code for flex sizing, too. Appears to work except for the
+      //          truncation code (gecko version), which I have disabled (see below).
+      case qx.ui.core.Widget.TYPE_FLEX:
+        var vNeeded = this.getPreferredInnerWidth();
+        var vInner = this.getInnerWidth();
+
+        if (vInner < vNeeded)
+        {
+          vElement.style.overflow = "hidden";
+
+          if (qx.ui.basic.Label.SUPPORT_NATIVE_ELLIPSIS)
+          {
+            vElement.style.textOverflow = "ellipsis";
+            vHtml += this._mnemonicHtml;
+          }
+          else
+          {
+            var vMeasureNode = this._copyStyles();
+
+            var vSplitString = vHtml.split(" ");
+            var vSplitLength = vSplitString.length;
+
+            var vWordIterator = 0;
+            var vCharaterIterator = 0;
+
+            var vPost = qx.ui.basic.Label.SYMBOL_ELLIPSIS;
+
+            var vUseInnerText = true;
+            if (vMnemonicMode == 2)
+            {
+              var vPost = this._mnemonicHtml + vPost;
+              vUseInnerText = false;
+            }
+
+            // Measure Words (if more than one)
+            if (vSplitLength > 1)
+            {
+              var vSplitTemp = [];
+
+              for (vWordIterator=0; vWordIterator<vSplitLength; vWordIterator++)
+              {
+                vSplitTemp.push(vSplitString[vWordIterator]);
+
+                var vLabelText = vSplitTemp.join(" ") + vPost;
+                if (vUseInnerText) {
+                  qx.dom.Element.setTextContent(vMeasureNode, vLabelText);
+                } else {
+                  vMeasureNode.innerHTML = vLabelText;
+                }
+
+                if ((vMeasureNode.scrollWidth > vInner)
+                  /* carstenl: The following code (truncate the text to fit in the available
+                   *           space, append ellipsis to indicate truncation) did not reliably
+                   *           work in my tests. Problem was that sometimes the measurer returned
+                   *           insanely high values for short texts, like "I..." requiring 738 px.
+                   *
+                   *           I don't have time to examine this code in detail. Since all of my
+                   *           tests used flex width and the truncation code never was intended
+                   *           for this, I am disabling truncation if flex is active.
+                   */
+                    && (this._computedWidthType != qx.ui.core.Widget.TYPE_FLEX)){
+                  break;
+                }
+              }
+
+              // Remove last word which does not fit
+              vSplitTemp.pop();
+
+              // Building new temportary array
+              vSplitTemp = [ vSplitTemp.join(" ") ];
+
+              // Extracting remaining string
+              vCharaterString = vHtml.replace(vSplitTemp[0], "");
+            }
+            else
+            {
+              var vSplitTemp = [];
+              vCharaterString = vHtml;
+            }
+
+            var vCharaterLength = vCharaterString.length;
+
+            // Measure Chars
+            for (var vCharaterIterator=0; vCharaterIterator<vCharaterLength; vCharaterIterator++)
+            {
+              vSplitTemp.push(vCharaterString.charAt(vCharaterIterator));
+
+              var vLabelText = vSplitTemp.join("") + vPost;
+              if (vUseInnerText) {
+                qx.dom.Element.setTextContent(vMeasureNode, vLabelText);
+              } else {
+                vMeasureNode.innerHTML = vLabelText;
+              }
+
+              if (vMeasureNode.scrollWidth > vInner) {
+                break;
+              }
+            }
+
+            // Remove last char which does not fit
+            vSplitTemp.pop();
+
+            // Add mnemonic and ellipsis symbol
+            vSplitTemp.push(vPost);
+
+            // Building Final HTML String
+            vHtml = vSplitTemp.join("");
+          }
+
+          break;
+        }
+        else
+        {
+          vHtml += this._mnemonicHtml;
+        }
+
+        // no break here
+
+      default:
+        vElement.style.overflow = "";
+
+        if (qx.ui.basic.Label.SUPPORT_NATIVE_ELLIPSIS) {
+          vElement.style.textOverflow = "";
+        }
+    }
+  }
+
+  if (vMnemonicMode == 1)
+  {
+    // re-test: needed to make ellipsis handling correct
+    this._mnemonicTest.test(vHtml);
+    vHtml = RegExp.$1 + "<span style=\"text-decoration:underline\">" + RegExp.$7 + "</span>" + RegExp.rightContext;
+  }
+
+  return this._postApplyHtml(vElement, vHtml, vMnemonicMode);
+}
+
+
+qx.Proto._postApplyHtml = function(vElement, vHtml, vMnemonicMode)
+{
+  if (this._htmlMode || vMnemonicMode > 0)
+  {
+    vElement.innerHTML = vHtml;
+  }
+  else
+  {
+    try {
+      qx.dom.Element.setTextContent(vElement, vHtml);
+    } catch(ex) {
+      vElement.innerHTML = vHtml;
+    }
+  }
+}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Terminator.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Terminator.js
new file mode 100644 (file)
index 0000000..2b77bb8
--- /dev/null
@@ -0,0 +1,187 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+/*!
+  This widget is the last widget of the current child chain.
+*/
+qx.OO.defineClass("qx.ui.basic.Terminator", qx.ui.core.Widget,
+function() {
+  qx.ui.core.Widget.call(this);
+});
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPLY PADDING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._applyPaddingX = function(vParent, vChanges, vStyle)
+{
+  if (vChanges.paddingLeft) {
+    this._applyRuntimePaddingLeft(this.getPaddingLeft());
+  }
+
+  if (vChanges.paddingRight) {
+    this._applyRuntimePaddingRight(this.getPaddingRight());
+  }
+}
+
+qx.Proto._applyPaddingY = function(vParent, vChanges, vStyle)
+{
+  if (vChanges.paddingTop) {
+    this._applyRuntimePaddingTop(this.getPaddingTop());
+  }
+
+  if (vChanges.paddingBottom) {
+    this._applyRuntimePaddingBottom(this.getPaddingBottom());
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPLY CONTENT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._applyContent = function()
+{
+  // Small optimization: Only add innerPreferred jobs
+  // if we don't have a static width
+  if (this._computedWidthTypePixel) {
+    this._cachedPreferredInnerWidth = null;
+  } else {
+    this._invalidatePreferredInnerWidth();
+  }
+
+  // Small optimization: Only add innerPreferred jobs
+  // if we don't have a static height
+  if (this._computedHeightTypePixel) {
+    this._cachedPreferredInnerHeight = null;
+  } else {
+    this._invalidatePreferredInnerHeight();
+  }
+
+  // add load job
+  if (this._initialLayoutDone) {
+    this.addToJobQueue("load");
+  }
+}
+
+qx.Proto._layoutPost = function(vChanges) {
+  if (vChanges.initial || vChanges.load || vChanges.width || vChanges.height) {
+    this._postApply();
+  }
+}
+
+qx.Proto._postApply = qx.util.Return.returnTrue;
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  BOX DIMENSION HELPERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._computeBoxWidthFallback = qx.Proto.getPreferredBoxWidth;
+qx.Proto._computeBoxHeightFallback = qx.Proto.getPreferredBoxHeight;
+
+qx.Proto._computePreferredInnerWidth = qx.util.Return.returnZero;
+qx.Proto._computePreferredInnerHeight = qx.util.Return.returnZero;
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  METHODS TO GIVE THE LAYOUTERS INFORMATIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._isWidthEssential = function()
+{
+  if (!this._computedLeftTypeNull && !this._computedRightTypeNull) {
+    return true;
+  }
+
+  if (!this._computedWidthTypeNull && !this._computedWidthTypeAuto) {
+    return true;
+  }
+
+  if (!this._computedMinWidthTypeNull && !this._computedMinWidthTypeAuto) {
+    return true;
+  }
+
+  if (!this._computedMaxWidthTypeNull && !this._computedMaxWidthTypeAuto) {
+    return true;
+  }
+
+  if (this._borderElement) {
+    return true;
+  }
+
+  return false;
+}
+
+qx.Proto._isHeightEssential = function()
+{
+  if (!this._computedTopTypeNull && !this._computedBottomTypeNull) {
+    return true;
+  }
+
+  if (!this._computedHeightTypeNull && !this._computedHeightTypeAuto) {
+    return true;
+  }
+
+  if (!this._computedMinHeightTypeNull && !this._computedMinHeightTypeAuto) {
+    return true;
+  }
+
+  if (!this._computedMaxHeightTypeNull && !this._computedMaxHeightTypeAuto) {
+    return true;
+  }
+
+  if (this._borderElement) {
+    return true;
+  }
+
+  return false;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/VerticalSpacer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/VerticalSpacer.js
new file mode 100644 (file)
index 0000000..6887c9d
--- /dev/null
@@ -0,0 +1,31 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.basic.VerticalSpacer", qx.ui.basic.Terminator,
+function()
+{
+  qx.ui.basic.Terminator.call(this);
+
+  this.setHeight("1*");
+});
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/component/ColorPopup.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/component/ColorPopup.js
new file mode 100644 (file)
index 0000000..523a98d
--- /dev/null
@@ -0,0 +1,387 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+
+************************************************************************ */
+
+/*!
+  A color popup
+*/
+qx.OO.defineClass("qx.ui.component.ColorPopup", qx.ui.popup.Popup,
+function(tables)
+{
+  qx.ui.popup.Popup.call(this);
+
+  this.setPadding(4);
+  this.auto();
+  this.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
+  this.setBackgroundColor("threedface");
+
+  this._tables = tables;
+
+  this._createLayout();
+  this._createAutoBtn();
+  this._createBoxes();
+  this._createPreview();
+  this._createSelectorBtn();
+
+  this.addEventListener("beforeAppear", this._onBeforeAppear);
+});
+
+qx.OO.addProperty({ name : "value", type : "object", instance : "qx.renderer.color.Color" });
+
+qx.OO.addProperty({ name : "red", type : "number", defaultValue : 0 });
+qx.OO.addProperty({ name : "green", type : "number", defaultValue : 0 });
+qx.OO.addProperty({ name : "blue", type : "number", defaultValue : 0 });
+
+qx.Proto._minZIndex = 1e5;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CREATOR SUBS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._createLayout = function()
+{
+  this._layout = new qx.ui.layout.VerticalBoxLayout;
+  this._layout.setLocation(0, 0);
+  this._layout.auto();
+  this._layout.setSpacing(2);
+
+  this.add(this._layout);
+}
+
+qx.Proto._createAutoBtn = function()
+{
+  this._automaticBtn = new qx.ui.form.Button("Automatic");
+  this._automaticBtn.setWidth(null);
+  this._automaticBtn.setAllowStretchX(true);
+  this._automaticBtn.addEventListener("execute", this._onAutomaticBtnExecute, this);
+
+  this._layout.add(this._automaticBtn);
+}
+
+qx.Proto._recentTableId = "recent";
+qx.Proto._fieldWidth = 14;
+qx.Proto._fieldHeight = 14;
+qx.Proto._fieldNumber = 12;
+
+qx.Proto._createBoxes = function()
+{
+  this._boxes = {};
+
+  var tables = this._tables;
+  var table, box, boxLayout, field;
+
+  for (var tableId in tables)
+  {
+    table = tables[tableId];
+
+    box = new qx.ui.groupbox.GroupBox(table.label);
+    box.setHeight("auto");
+
+    this._boxes[tableId] = box;
+    this._layout.add(box);
+
+    boxLayout = new qx.ui.layout.HorizontalBoxLayout;
+    boxLayout.setLocation(0, 0);
+    boxLayout.setSpacing(1);
+    boxLayout.auto();
+    box.add(boxLayout);
+
+    for (var i=0; i<this._fieldNumber; i++)
+    {
+      field = new qx.ui.basic.Terminator;
+
+      field.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
+      field.setBackgroundColor(table.values[i] || null);
+      field.setDimension(this._fieldWidth, this._fieldHeight);
+
+      field.addEventListener("mousedown", this._onFieldMouseDown, this);
+      field.addEventListener("mouseover", this._onFieldMouseOver, this);
+
+      boxLayout.add(field);
+    }
+  }
+}
+
+qx.Proto._createPreview = function()
+{
+  this._previewBox = new qx.ui.groupbox.GroupBox("Preview (Old/New)");
+  this._previewLayout = new qx.ui.layout.HorizontalBoxLayout;
+  this._selectedPreview = new qx.ui.basic.Terminator;
+  this._currentPreview = new qx.ui.basic.Terminator;
+
+  this._previewLayout.setHeight("auto");
+  this._previewLayout.setWidth("100%");
+  this._previewLayout.setSpacing(4);
+  this._previewLayout.add(this._selectedPreview, this._currentPreview);
+
+  this._previewBox.setHeight("auto");
+  this._previewBox.add(this._previewLayout);
+
+  this._layout.add(this._previewBox);
+
+  this._selectedPreview.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+  this._selectedPreview.setWidth("1*");
+  this._selectedPreview.setHeight(24);
+
+  this._currentPreview.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
+  this._currentPreview.setWidth("1*");
+  this._currentPreview.setHeight(24);
+}
+
+qx.Proto._createSelectorBtn = function()
+{
+  this._selectorButton = new qx.ui.form.Button("Open ColorSelector");
+  this._selectorButton.setWidth(null);
+  this._selectorButton.setAllowStretchX(true);
+  this._selectorButton.addEventListener("execute", this._onSelectorButtonExecute, this);
+
+  this._layout.add(this._selectorButton);
+}
+
+qx.Proto._createColorSelector = function()
+{
+  if (this._colorSelector) {
+    return;
+  }
+
+  this._colorSelectorWindow = new qx.ui.window.Window("Color Selector");
+  this._colorSelectorWindow.setMinWidth(null);
+  this._colorSelectorWindow.setMinHeight(null);
+  this._colorSelectorWindow.setResizeable(false);
+  this._colorSelectorWindow.auto();
+
+  this._colorSelector = new qx.ui.component.ColorSelector;
+  this._colorSelector.setBorder(null);
+  this._colorSelector.setLocation(0, 0);
+  this._colorSelector.addEventListener("dialogok", this._onColorSelectorOk, this);
+  this._colorSelector.addEventListener("dialogcancel", this._onColorSelectorCancel, this);
+
+  this._colorSelectorWindow.add(this._colorSelector);
+  this._colorSelectorWindow.addToDocument();
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyValue = function(propValue, propOldValue, propData)
+{
+  if (propValue === null)
+  {
+    this.setRed(null);
+    this.setGreen(null);
+    this.setBlue(null);
+  }
+  else
+  {
+    this.setRed(propValue.getRed());
+    this.setGreen(propValue.getGreen());
+    this.setBlue(propValue.getBlue());
+  };
+
+  this._selectedPreview.setBackgroundColor(propValue);
+  this._rotatePreviousColors();
+
+  return true;
+}
+
+qx.Proto._rotatePreviousColors = function()
+{
+  var vRecentTable = this._tables[this._recentTableId].values;
+  var vRecentBox = this._boxes[this._recentTableId];
+
+  if (!vRecentTable) {
+    return;
+  }
+
+  var newValue = this.getValue();
+
+  if (!newValue) {
+    return;
+  }
+
+  // use style compatible value (like the incoming value from the user or as RGB value string)
+  newValue = newValue.getStyle();
+
+  // Modifying incoming table
+  var vIndex = vRecentTable.indexOf(newValue);
+
+  if (vIndex != -1) {
+    qx.lang.Array.removeAt(vRecentTable, vIndex);
+  } else if (vRecentTable.length == this._fieldNumber) {
+    vRecentTable.shift();
+  }
+
+  vRecentTable.push(newValue);
+
+  // Sync to visible fields
+  var vFields = vRecentBox.getFrameObject().getFirstChild().getChildren();
+  for (var i=0; i<vFields.length; i++) {
+    vFields[i].setBackgroundColor(vRecentTable[i] || null);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onFieldMouseDown = function(e) {
+  this.setValue(this._currentPreview.getBackgroundColor());
+}
+
+qx.Proto._onFieldMouseOver = function(e) {
+  this._currentPreview.setBackgroundColor(e.getTarget().getBackgroundColor());
+}
+
+qx.Proto._onAutomaticBtnExecute = function(e) {
+  this.setValue(null);
+  this.hide();
+}
+
+qx.Proto._onSelectorButtonExecute = function(e)
+{
+  this._createColorSelector();
+
+  this._colorSelectorWindow.setTop(qx.dom.Location.getPageBoxTop(this._selectorButton.getElement()) + 10);
+  this._colorSelectorWindow.setLeft(qx.dom.Location.getPageBoxLeft(this._selectorButton.getElement()) + 100);
+
+  this.hide();
+
+  this._colorSelectorWindow.open();
+}
+
+qx.Proto._onColorSelectorOk = function(e)
+{
+  var sel = this._colorSelector;
+  this.setValue(qx.renderer.color.ColorCache([sel.getRed(), sel.getGreen(), sel.getBlue()]));
+  this._colorSelectorWindow.close();
+}
+
+qx.Proto._onColorSelectorCancel = function(e) {
+  this._colorSelectorWindow.close();
+}
+
+qx.Proto._onBeforeAppear = function(e) {
+  this._currentPreview.setBackgroundColor(null);
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._tables = null;
+  this._boxes = null;
+
+  if (this._layout)
+  {
+    this._layout.dispose();
+    this._layout = null;
+  }
+
+  if (this._automaticBtn)
+  {
+    this._automaticBtn.dispose();
+    this._automaticBtn = null;
+  }
+
+  if (this._previewBox)
+  {
+    this._previewBox.dispose();
+    this._previewBox = null;
+  }
+
+  if (this._previewLayout)
+  {
+    this._previewLayout.dispose();
+    this._previewLayout = null;
+  }
+
+  if (this._selectedPreview)
+  {
+    this._selectedPreview.dispose();
+    this._selectedPreview = null;
+  }
+
+  if (this._currentPreview)
+  {
+    this._currentPreview.dispose();
+    this._currentPreview = null;
+  }
+
+  if (this._selectorButton)
+  {
+    this._selectorButton.dispose();
+    this._selectorButton = null;
+  }
+
+  if (this._colorSelectorWindow)
+  {
+    this._colorSelectorWindow.dispose();
+    this._colorSelectorWindow = null;
+  }
+
+  if (this._colorSelector)
+  {
+    this._colorSelector.dispose();
+    this._colorSelector = null;
+  }
+
+  return qx.ui.popup.Popup.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/component/ColorSelector.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/component/ColorSelector.js
new file mode 100644 (file)
index 0000000..2a53f20
--- /dev/null
@@ -0,0 +1,1312 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+/**
+ * A typical color selector as known from native applications.
+ *
+ * Includes support for RGB and HSB color areas.
+ *
+ * @event dialogok {qx.event.type.Event}
+ * @event dialogcancel {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.ui.component.ColorSelector", qx.ui.layout.VerticalBoxLayout,
+function(vPreviousRed, vPreviousGreen, vPreviousBlue)
+{
+  qx.ui.layout.VerticalBoxLayout.call(this);
+
+  // ********************************************
+  //   CREATE CHILDREN
+  // ********************************************
+
+  // 1. Base Structure (Vertical Split)
+  this._createControlBar();
+  this._createButtonBar();
+
+  // 2. Panes (Horizontal Split)
+  this._createControlPane();
+  this._createHueSaturationPane();
+  this._createBrightnessPane();
+
+  // 3. Control Pane Content
+  this._createPresetFieldSet();
+  this._createInputFieldSet();
+  this._createPreviewFieldSet();
+
+  // 4. Input FieldSet Content
+  this._createHexField();
+  this._createRgbSpinner();
+  this._createHsbSpinner();
+
+  // 5. Preview FieldSet Content
+  this._createPreviewContent();
+
+
+  // ********************************************
+  //   INIT COLORS
+  // ********************************************
+
+  if (arguments.length == 3) {
+    this.setPreviousColor(vPreviousRed, vPreviousGreen, vPreviousBlue);
+  }
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "colorselector" });
+
+qx.OO.addProperty({ name : "red", type : "number", defaultValue : 255 });
+qx.OO.addProperty({ name : "green", type : "number", defaultValue : 255 });
+qx.OO.addProperty({ name : "blue", type : "number", defaultValue : 255 });
+
+qx.OO.addProperty({ name : "hue", type : "number", defaultValue : 0 });
+qx.OO.addProperty({ name : "saturation", type : "number", defaultValue : 0 });
+qx.OO.addProperty({ name : "brightness", type : "number", defaultValue : 100 });
+
+/*
+---------------------------------------------------------------------------
+  LOCALIZATION SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("labelOK", "OK");
+qx.Settings.setDefault("labelCancel", "Cancel");
+qx.Settings.setDefault("labelPresets", "Presets");
+qx.Settings.setDefault("labelDetails", "Details");
+qx.Settings.setDefault("labelPreview", "Preview (Old/New)");
+qx.Settings.setDefault("labelRGB", "RGB");
+qx.Settings.setDefault("labelHSB", "HSB");
+qx.Settings.setDefault("labelHex", "Hex");
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CONTEXT HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._updateContext = null;
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CREATE #1: BASE STRUCTURE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._createControlBar = function()
+{
+  this._controlBar = new qx.ui.layout.HorizontalBoxLayout;
+  this._controlBar.setHeight("auto");
+  this._controlBar.setParent(this);
+}
+
+qx.Proto._createButtonBar = function()
+{
+  this._btnbar = new qx.ui.layout.HorizontalBoxLayout;
+  this._btnbar.setHeight("auto");
+  this._btnbar.setSpacing(4);
+  this._btnbar.setHorizontalChildrenAlign("right");
+  this._btnbar.setPadding(2, 4);
+  this.add(this._btnbar);
+
+  this._btncancel = new qx.ui.form.Button(this.getSetting("labelCancel"), "icon/16/button-cancel.png");
+  this._btnok = new qx.ui.form.Button(this.getSetting("labelOK"), "icon/16/button-ok.png");
+
+  this._btncancel.addEventListener("execute", this._onButtonCancelExecute, this);
+  this._btnok.addEventListener("execute", this._onButtonOkExecute, this);
+
+  this._btnbar.add(this._btncancel, this._btnok);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CREATE #2: PANES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._createControlPane = function()
+{
+  this._controlPane = new qx.ui.layout.VerticalBoxLayout;
+  this._controlPane.setWidth("auto");
+  this._controlPane.setPadding(4);
+  this._controlPane.setPaddingBottom(7);
+  this._controlPane.setParent(this._controlBar);
+}
+
+qx.Proto._createHueSaturationPane = function()
+{
+  this._hueSaturationPane = new qx.ui.layout.CanvasLayout;
+  this._hueSaturationPane.setWidth("auto");
+  this._hueSaturationPane.setPadding(6, 4);
+  this._hueSaturationPane.setParent(this._controlBar);
+
+  this._hueSaturationPane.addEventListener("mousewheel", this._onHueSaturationPaneMouseWheel, this);
+
+  this._hueSaturationField = new qx.ui.basic.Image("widget/colorselector/huesaturation-field.jpg");
+  this._hueSaturationField.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
+  this._hueSaturationField.setMargin(5);
+  this._hueSaturationField.setParent(this._hueSaturationPane);
+
+  this._hueSaturationField.addEventListener("mousedown", this._onHueSaturationFieldMouseDown, this);
+
+  this._hueSaturationHandle = new qx.ui.basic.Image("widget/colorselector/huesaturation-handle.gif");
+  this._hueSaturationHandle.setLocation(0, 256);
+  this._hueSaturationHandle.setParent(this._hueSaturationPane);
+
+  this._hueSaturationHandle.addEventListener("mousedown", this._onHueSaturationHandleMouseDown, this);
+  this._hueSaturationHandle.addEventListener("mouseup", this._onHueSaturationHandleMouseUp, this);
+  this._hueSaturationHandle.addEventListener("mousemove", this._onHueSaturationHandleMouseMove, this);
+}
+
+qx.Proto._createBrightnessPane = function()
+{
+  this._brightnessPane = new qx.ui.layout.CanvasLayout;
+  this._brightnessPane.setWidth("auto");
+  this._brightnessPane.setPadding(6, 4);
+  this._brightnessPane.setParent(this._controlBar);
+
+  this._brightnessPane.addEventListener("mousewheel", this._onBrightnessPaneMouseWheel, this);
+
+  this._brightnessField = new qx.ui.basic.Image("widget/colorselector/brightness-field.jpg");
+  this._brightnessField.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
+  this._brightnessField.setMargin(5, 7);
+  this._brightnessField.setParent(this._brightnessPane);
+
+  this._brightnessField.addEventListener("mousedown", this._onBrightnessFieldMouseDown, this);
+
+  this._brightnessHandle = new qx.ui.basic.Image("widget/colorselector/brightness-handle.gif");
+  this._brightnessHandle.setLocation(0, 0);
+  this._brightnessHandle.setParent(this._brightnessPane);
+
+  this._brightnessHandle.addEventListener("mousedown", this._onBrightnessHandleMouseDown, this);
+  this._brightnessHandle.addEventListener("mouseup", this._onBrightnessHandleMouseUp, this);
+  this._brightnessHandle.addEventListener("mousemove", this._onBrightnessHandleMouseMove, this);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CREATE #3: CONTROL PANE CONTENT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._createPresetFieldSet = function()
+{
+  this._presetFieldSet = new qx.ui.groupbox.GroupBox("Presets");
+  this._presetFieldSet.setHeight("auto");
+  this._presetFieldSet.setParent(this._controlPane);
+
+  this._presetGrid = new qx.ui.layout.GridLayout;
+  this._presetGrid.setHorizontalSpacing(2);
+  this._presetGrid.setVerticalSpacing(2);
+  this._presetGrid.setColumnCount(11);
+  this._presetGrid.setRowCount(4);
+  this._presetGrid.setColumnWidth(0, 18);
+  this._presetGrid.setColumnWidth(1, 18);
+  this._presetGrid.setColumnWidth(2, 18);
+  this._presetGrid.setColumnWidth(3, 18);
+  this._presetGrid.setColumnWidth(4, 18);
+  this._presetGrid.setColumnWidth(5, 18);
+  this._presetGrid.setColumnWidth(6, 18);
+  this._presetGrid.setColumnWidth(7, 18);
+  this._presetGrid.setColumnWidth(8, 18);
+  this._presetGrid.setColumnWidth(9, 18);
+
+  this._presetGrid.setRowHeight(0, 16);
+  this._presetGrid.setRowHeight(1, 16);
+  this._presetFieldSet.add(this._presetGrid);
+
+  this._presetTable = [ "maroon", "red", "orange", "yellow", "olive", "purple", "fuchsia", "lime", "green", "navy", "blue", "aqua", "teal", "black", "#333", "#666", "#999", "#BBB", "#EEE", "white" ];
+
+  var colorField;
+
+  for (var i=0; i<2; i++)
+  {
+    for (var j=0; j<10; j++)
+    {
+      colorField = new qx.ui.basic.Terminator;
+      colorField.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
+      colorField.setBackgroundColor(this._presetTable[i*10+j]);
+      colorField.addEventListener("mousedown", this._onColorFieldClick, this);
+
+      this._presetGrid.add(colorField, j, i);
+    }
+  }
+}
+
+qx.Proto._createInputFieldSet = function()
+{
+  this._inputFieldSet = new qx.ui.groupbox.GroupBox(this.getSetting("labelDetails"));
+  this._inputFieldSet.setHeight("auto");
+  this._inputFieldSet.setParent(this._controlPane);
+
+  this._inputLayout = new qx.ui.layout.VerticalBoxLayout;
+  this._inputLayout.setHeight("auto");
+  this._inputLayout.setSpacing(10);
+  this._inputLayout.setParent(this._inputFieldSet.getFrameObject());
+}
+
+qx.Proto._createPreviewFieldSet = function()
+{
+  this._previewFieldSet = new qx.ui.groupbox.GroupBox(this.getSetting("labelPreview"));
+  this._previewFieldSet.setHeight("1*");
+  this._previewFieldSet.setParent(this._controlPane);
+
+  this._previewLayout = new qx.ui.layout.HorizontalBoxLayout;
+  this._previewLayout.setHeight("100%");
+  this._previewLayout.setLocation(0, 0);
+  this._previewLayout.setRight(0);
+  this._previewLayout.setSpacing(10);
+  this._previewLayout.setParent(this._previewFieldSet.getFrameObject());
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CREATE #4: INPUT FIELDSET CONTENT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._createHexField = function()
+{
+  this._hexLayout = new qx.ui.layout.HorizontalBoxLayout;
+  this._hexLayout.setHeight("auto");
+  this._hexLayout.setSpacing(4);
+  this._hexLayout.setVerticalChildrenAlign("middle");
+  this._hexLayout.setParent(this._inputLayout);
+
+  this._hexLabel = new qx.ui.basic.Label(this.getSetting("labelHex"));
+  this._hexLabel.setWidth(25);
+  this._hexLabel.setParent(this._hexLayout);
+
+  this._hexHelper = new qx.ui.basic.Label("#");
+  this._hexHelper.setParent(this._hexLayout);
+
+  this._hexField = new qx.ui.form.TextField("FFFFFF");
+  this._hexField.setWidth(50);
+  this._hexField.setFont('11px "Bitstream Vera Sans Mono", monospace');
+  this._hexField.setParent(this._hexLayout);
+
+  this._hexField.addEventListener("changeValue", this._onHexFieldChange, this);
+}
+
+qx.Proto._createRgbSpinner = function()
+{
+  this._rgbSpinLayout = new qx.ui.layout.HorizontalBoxLayout;
+  this._rgbSpinLayout.setHeight("auto");
+  this._rgbSpinLayout.setSpacing(4);
+  this._rgbSpinLayout.setVerticalChildrenAlign("middle");
+  this._rgbSpinLayout.setParent(this._inputLayout);
+
+  this._rgbSpinLabel = new qx.ui.basic.Label(this.getSetting("labelRGB"));
+  this._rgbSpinLabel.setWidth(25);
+  this._rgbSpinLabel.setParent(this._rgbSpinLayout);
+
+  this._rgbSpinRed = new qx.ui.form.Spinner(0, 255, 255);
+  this._rgbSpinRed.setWidth(50);
+
+  this._rgbSpinGreen = new qx.ui.form.Spinner(0, 255, 255);
+  this._rgbSpinGreen.setWidth(50);
+
+  this._rgbSpinBlue = new qx.ui.form.Spinner(0, 255, 255);
+  this._rgbSpinBlue.setWidth(50);
+
+  this._rgbSpinLayout.add(this._rgbSpinRed, this._rgbSpinGreen, this._rgbSpinBlue);
+
+  this._rgbSpinRed.addEventListener("change", this._setRedFromSpinner, this);
+  this._rgbSpinGreen.addEventListener("change", this._setGreenFromSpinner, this);
+  this._rgbSpinBlue.addEventListener("change", this._setBlueFromSpinner, this);
+}
+
+qx.Proto._createHsbSpinner = function()
+{
+  this._hsbSpinLayout = new qx.ui.layout.HorizontalBoxLayout;
+  this._hsbSpinLayout.setHeight("auto");
+  this._hsbSpinLayout.setSpacing(4);
+  this._hsbSpinLayout.setVerticalChildrenAlign("middle");
+  this._hsbSpinLayout.setParent(this._inputLayout);
+
+  this._hsbSpinLabel = new qx.ui.basic.Label(this.getSetting("labelHSB"));
+  this._hsbSpinLabel.setWidth(25);
+  this._hsbSpinLayout.add(this._hsbSpinLabel);
+
+  this._hsbSpinHue = new qx.ui.form.Spinner(0, 0, 360);
+  this._hsbSpinHue.setWidth(50);
+
+  this._hsbSpinSaturation = new qx.ui.form.Spinner(0, 0, 100);
+  this._hsbSpinSaturation.setWidth(50);
+
+  this._hsbSpinBrightness = new qx.ui.form.Spinner(0, 100, 100);
+  this._hsbSpinBrightness.setWidth(50);
+
+  this._hsbSpinLayout.add(this._hsbSpinHue, this._hsbSpinSaturation, this._hsbSpinBrightness);
+
+  this._hsbSpinHue.addEventListener("change", this._setHueFromSpinner, this);
+  this._hsbSpinSaturation.addEventListener("change", this._setSaturationFromSpinner, this);
+  this._hsbSpinBrightness.addEventListener("change", this._setBrightnessFromSpinner, this);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CREATE #5: PREVIEW CONTENT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._createPreviewContent = function()
+{
+  this._oldColorPreview = new qx.ui.basic.Terminator;
+  this._oldColorPreview.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
+  this._oldColorPreview.setWidth("1*");
+  this._oldColorPreview.setBackgroundImage("static/image/dotted_white.gif");
+  this._oldColorPreview.setParent(this._previewLayout);
+
+  this._newColorPreview = new qx.ui.basic.Terminator;
+  this._newColorPreview.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
+  this._newColorPreview.setWidth("1*");
+  this._newColorPreview.setBackgroundColor("white");
+  this._newColorPreview.setParent(this._previewLayout);
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  RGB MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyRed = function(propValue, propOldValue, propData)
+{
+  if (this._updateContext === null) {
+    this._updateContext = "redModifier";
+  }
+
+  if (this._updateContext !== "rgbSpinner") {
+    this._rgbSpinRed.setValue(propValue);
+  }
+
+  if (this._updateContext !== "hexField") {
+    this._setHexFromRgb();
+  }
+
+  switch(this._updateContext)
+  {
+    case "rgbSpinner":
+    case "hexField":
+    case "redModifier":
+      this._setHueFromRgb();
+  }
+
+  this._setPreviewFromRgb();
+
+  if (this._updateContext === "redModifier") {
+    this._updateContext = null;
+  }
+
+  return true;
+}
+
+qx.Proto._modifyGreen = function(propValue, propOldValue, propData)
+{
+  if (this._updateContext === null) {
+    this._updateContext = "greenModifier";
+  }
+
+  if (this._updateContext !== "rgbSpinner") {
+    this._rgbSpinGreen.setValue(propValue);
+  }
+
+  if (this._updateContext !== "hexField") {
+    this._setHexFromRgb();
+  }
+
+  switch(this._updateContext)
+  {
+    case "rgbSpinner":
+    case "hexField":
+    case "greenModifier":
+      this._setHueFromRgb();
+  }
+
+  this._setPreviewFromRgb();
+
+  if (this._updateContext === "greenModifier") {
+    this._updateContext = null;
+  }
+
+  return true;
+}
+
+qx.Proto._modifyBlue = function(propValue, propOldValue, propData)
+{
+  if (this._updateContext === null) {
+    this._updateContext = "blueModifier";
+  }
+
+  if (this._updateContext !== "rgbSpinner") {
+    this._rgbSpinBlue.setValue(propValue);
+  }
+
+  if (this._updateContext !== "hexField") {
+    this._setHexFromRgb();
+  }
+
+  switch(this._updateContext)
+  {
+    case "rgbSpinner":
+    case "hexField":
+    case "blueModifier":
+      this._setHueFromRgb();
+  }
+
+  this._setPreviewFromRgb();
+
+  if (this._updateContext === "blueModifier") {
+    this._updateContext = null;
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HSB MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyHue = function(propValue, propOldValue, propData)
+{
+  if (this._updateContext === null) {
+    this._updateContext = "hueModifier";
+  }
+
+  if (this._updateContext !== "hsbSpinner") {
+    this._hsbSpinHue.setValue(propValue);
+  }
+
+  if (this._updateContext !== "hueSaturationField")
+  {
+    if (this._hueSaturationHandle.isCreated())
+    {
+      this._hueSaturationHandle._applyRuntimeLeft(Math.round(propValue / 1.40625) + this._hueSaturationPane.getPaddingLeft());
+    }
+    else
+    {
+      this._hueSaturationHandle.setLeft(Math.round(propValue / 1.40625));
+    }
+  }
+
+  switch(this._updateContext)
+  {
+    case "hsbSpinner":
+    case "hueSaturationField":
+    case "hueModifier":
+      this._setRgbFromHue();
+  }
+
+  if (this._updateContext === "hueModifier") {
+    this._updateContext = null;
+  }
+
+  return true;
+}
+
+qx.Proto._modifySaturation = function(propValue, propOldValue, propData)
+{
+  if (this._updateContext === null) {
+    this._updateContext = "saturationModifier";
+  }
+
+  if (this._updateContext !== "hsbSpinner") {
+    this._hsbSpinSaturation.setValue(propValue);
+  }
+
+  if (this._updateContext !== "hueSaturationField")
+  {
+    if (this._hueSaturationHandle.isCreated())
+    {
+      this._hueSaturationHandle._applyRuntimeTop(256 - Math.round(propValue * 2.56) + this._hueSaturationPane.getPaddingTop());
+    }
+    else
+    {
+      this._hueSaturationHandle.setTop(256 - Math.round(propValue * 2.56));
+    }
+  }
+
+  switch(this._updateContext)
+  {
+    case "hsbSpinner":
+    case "hueSaturationField":
+    case "saturationModifier":
+      this._setRgbFromHue();
+  }
+
+  if (this._updateContext === "saturationModifier") {
+    this._updateContext = null;
+  }
+
+  return true;
+}
+
+qx.Proto._modifyBrightness = function(propValue, propOldValue, propData)
+{
+  if (this._updateContext === null) {
+    this._updateContext = "brightnessModifier";
+  }
+
+  if (this._updateContext !== "hsbSpinner") {
+    this._hsbSpinBrightness.setValue(propValue);
+  }
+
+  if (this._updateContext !== "brightnessField")
+  {
+    var topValue = 256 - Math.round(propValue * 2.56);
+
+    if (this._brightnessHandle.isCreated())
+    {
+      this._brightnessHandle._applyRuntimeTop(topValue + this._brightnessPane.getPaddingTop());
+    }
+    else
+    {
+      this._brightnessHandle.setTop(topValue);
+    }
+  }
+
+  switch(this._updateContext)
+  {
+    case "hsbSpinner":
+    case "brightnessField":
+    case "brightnessModifier":
+      this._setRgbFromHue();
+  }
+
+  if (this._updateContext === "brightnessModifier") {
+    this._updateContext = null;
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  BRIGHTNESS IMPLEMENTATION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onBrightnessHandleMouseDown = function(e)
+{
+  // Activate Capturing
+  this._brightnessHandle.setCapture(true);
+
+  // Calculate subtract: Position of Brightness Field - Current Mouse Offset
+  this._brightnessSubtract = qx.dom.Location.getPageOuterTop(this._brightnessField.getElement()) + (e.getPageY() - qx.dom.Location.getPageBoxTop(this._brightnessHandle.getElement()));
+
+  // Block field event handling
+  e.setPropagationStopped(true);
+}
+
+qx.Proto._onBrightnessHandleMouseUp = function(e)
+{
+  // Disabling capturing
+  this._brightnessHandle.setCapture(false);
+}
+
+qx.Proto._onBrightnessHandleMouseMove = function(e)
+{
+  // Update if captured currently (through previous mousedown)
+  if (this._brightnessHandle.getCapture()) {
+    this._setBrightnessOnFieldEvent(e);
+  }
+}
+
+qx.Proto._onBrightnessFieldMouseDown = function(e)
+{
+  // Calculate substract: Half height of handler
+  this._brightnessSubtract = qx.dom.Location.getPageOuterTop(this._brightnessField.getElement()) + Math.round(qx.dom.Dimension.getBoxHeight(this._brightnessHandle.getElement()) / 2);
+
+  // Update
+  this._setBrightnessOnFieldEvent(e);
+
+  // Afterwards: Activate Capturing for handle
+  this._brightnessHandle.setCapture(true);
+}
+
+qx.Proto._onBrightnessPaneMouseWheel = function(e) {
+  this.setBrightness(qx.lang.Number.limit(this.getBrightness() + e.getWheelDelta(), 0, 100));
+}
+
+qx.Proto._setBrightnessOnFieldEvent = function(e)
+{
+  var vValue = qx.lang.Number.limit(e.getPageY() - this._brightnessSubtract, 0, 256);
+
+  this._updateContext = "brightnessField";
+
+  if (this._brightnessHandle.isCreated())
+  {
+    this._brightnessHandle._applyRuntimeTop(vValue + this._brightnessPane.getPaddingTop());
+  }
+  else
+  {
+    this._brightnessHandle.setTop(vValue);
+  }
+
+  this.setBrightness(100-Math.round(vValue / 2.56));
+
+  this._updateContext = null;
+}
+
+qx.Proto._onButtonOkExecute = function(e) {
+  this.createDispatchEvent("dialogok");
+}
+
+qx.Proto._onButtonCancelExecute = function(e) {
+  this.createDispatchEvent("dialogcancel");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HUE/SATURATION IMPLEMENTATION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onHueSaturationHandleMouseDown = function(e)
+{
+  // Activate Capturing
+  this._hueSaturationHandle.setCapture(true);
+
+  // Calculate subtract: Position of HueSaturation Field - Current Mouse Offset
+  this._hueSaturationSubtractTop = qx.dom.Location.getPageOuterTop(this._hueSaturationField.getElement()) + (e.getPageY() - qx.dom.Location.getPageBoxTop(this._hueSaturationHandle.getElement()));
+  this._hueSaturationSubtractLeft = qx.dom.Location.getPageOuterLeft(this._hueSaturationField.getElement()) + (e.getPageX() - qx.dom.Location.getPageBoxLeft(this._hueSaturationHandle.getElement()));
+
+  // Block field event handling
+  e.setPropagationStopped(true);
+}
+
+qx.Proto._onHueSaturationHandleMouseUp = function(e)
+{
+  // Disabling capturing
+  this._hueSaturationHandle.setCapture(false);
+}
+
+qx.Proto._onHueSaturationHandleMouseMove = function(e)
+{
+  // Update if captured currently (through previous mousedown)
+  if (this._hueSaturationHandle.getCapture()) {
+    this._setHueSaturationOnFieldEvent(e);
+  }
+}
+
+qx.Proto._onHueSaturationFieldMouseDown = function(e)
+{
+  // Calculate substract: Half width/height of handler
+  this._hueSaturationSubtractTop = qx.dom.Location.getPageOuterTop(this._hueSaturationField.getElement()) + Math.round(qx.dom.Dimension.getBoxHeight(this._hueSaturationHandle.getElement()) / 2);
+  this._hueSaturationSubtractLeft = qx.dom.Location.getPageOuterLeft(this._hueSaturationField.getElement()) + Math.round(qx.dom.Dimension.getBoxWidth(this._hueSaturationHandle.getElement()) / 2);
+
+  // Update
+  this._setHueSaturationOnFieldEvent(e);
+
+  // Afterwards: Activate Capturing for handle
+  this._hueSaturationHandle.setCapture(true);
+}
+
+qx.Proto._onHueSaturationPaneMouseWheel = function(e) {
+  this.setSaturation(qx.lang.Number.limit(this.getSaturation() + e.getWheelDelta(), 0, 100));
+}
+
+qx.Proto._setHueSaturationOnFieldEvent = function(e)
+{
+  var vTop = qx.lang.Number.limit(e.getPageY() - this._hueSaturationSubtractTop, 0, 256);
+  var vLeft = qx.lang.Number.limit(e.getPageX() - this._hueSaturationSubtractLeft, 0, 256);
+
+  if (this._hueSaturationHandle.isCreated())
+  {
+    this._hueSaturationHandle._applyRuntimeTop(vTop + this._hueSaturationPane.getPaddingTop());
+    this._hueSaturationHandle._applyRuntimeLeft(vLeft + this._hueSaturationPane.getPaddingLeft());
+  }
+  else
+  {
+    this._hueSaturationHandle.setTop(vTop);
+    this._hueSaturationHandle.setLeft(vLeft);
+  }
+
+  this._updateContext = "hueSaturationField";
+
+  this.setSaturation(100-Math.round(vTop / 2.56));
+  this.setHue(Math.round(vLeft * 1.40625));
+
+  this._updateContext = null;
+}
+
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  RGB SPINNER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._setRedFromSpinner = function()
+{
+  if (this._updateContext !== null) {
+    return;
+  }
+
+  this._updateContext = "rgbSpinner";
+  this.setRed(this._rgbSpinRed.getValue());
+  this._updateContext = null;
+}
+
+qx.Proto._setGreenFromSpinner = function()
+{
+  if (this._updateContext !== null) {
+    return;
+  }
+
+  this._updateContext = "rgbSpinner";
+  this.setGreen(this._rgbSpinGreen.getValue());
+  this._updateContext = null;
+}
+
+qx.Proto._setBlueFromSpinner = function()
+{
+  if (this._updateContext !== null) {
+    return;
+  }
+
+  this._updateContext = "rgbSpinner";
+  this.setBlue(this._rgbSpinBlue.getValue());
+  this._updateContext = null;
+}
+
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HSB SPINNER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._setHueFromSpinner = function()
+{
+  if (this._updateContext !== null) {
+    return;
+  }
+
+  this._updateContext = "hsbSpinner";
+  this.setHue(this._hsbSpinHue.getValue());
+  this._updateContext = null;
+}
+
+qx.Proto._setSaturationFromSpinner = function()
+{
+  if (this._updateContext !== null) {
+    return;
+  }
+
+  this._updateContext = "hsbSpinner";
+  this.setSaturation(this._hsbSpinSaturation.getValue());
+  this._updateContext = null;
+}
+
+qx.Proto._setBrightnessFromSpinner = function()
+{
+  if (this._updateContext !== null) {
+    return;
+  }
+
+  this._updateContext = "hsbSpinner";
+  this.setBrightness(this._hsbSpinBrightness.getValue());
+  this._updateContext = null;
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HEX FIELD
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onHexFieldChange = function(e)
+{
+  if (this._updateContext !== null) {
+    return;
+  }
+
+  var vValue = this._hexField.getValue().toLowerCase();
+
+  var vRed = 0;
+  var vGreen = 0;
+  var vBlue = 0;
+
+  switch(vValue.length)
+  {
+    case 3:
+      vRed = qx.renderer.color.Color.m_rgb[vValue.charAt(0)];
+      vGreen = qx.renderer.color.Color.m_rgb[vValue.charAt(1)];
+      vBlue = qx.renderer.color.Color.m_rgb[vValue.charAt(2)];
+
+      vRed = (vRed * 16) + vRed;
+      vGreen = (vGreen * 16) + vGreen;
+      vBlue = (vBlue * 16) + vBlue;
+
+      break;
+
+    case 6:
+      vRed = (qx.renderer.color.Color.m_rgb[vValue.charAt(0)] * 16) + qx.renderer.color.Color.m_rgb[vValue.charAt(1)];
+      vGreen = (qx.renderer.color.Color.m_rgb[vValue.charAt(2)] * 16) + qx.renderer.color.Color.m_rgb[vValue.charAt(3)];
+      vBlue = (qx.renderer.color.Color.m_rgb[vValue.charAt(4)] * 16) + qx.renderer.color.Color.m_rgb[vValue.charAt(5)];
+
+      break;
+
+    default:
+      return false;
+  }
+
+  this._updateContext = "hexField";
+
+  this.setRed(vRed);
+  this.setGreen(vGreen);
+  this.setBlue(vBlue);
+
+  this._updateContext = null;
+}
+
+qx.Proto._setHexFromRgb = function() {
+  this._hexField.setValue(qx.lang.String.pad(this.getRed().toString(16).toUpperCase(), 2) + qx.lang.String.pad(this.getGreen().toString(16).toUpperCase(), 2) + qx.lang.String.pad(this.getBlue().toString(16).toUpperCase(), 2));
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  COLOR FIELD
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onColorFieldClick = function(e)
+{
+  var vColor = e.getTarget().getBackgroundColor();
+
+  if (!vColor) {
+    return this.error("Missing backgroundColor value for field: " + e.getTarget());
+  }
+
+  this.setRed(vColor.getRed());
+  this.setGreen(vColor.getGreen());
+  this.setBlue(vColor.getBlue());
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  RGB/HSB SYNC
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._setHueFromRgb = function()
+{
+  switch(this._updateContext)
+  {
+    case "hsbSpinner":
+    case "hueSaturationField":
+    case "brightnessField":
+      break;
+
+    default:
+      var vHsb = qx.util.ColorUtil.rgb2hsb(this.getRed(), this.getGreen(), this.getBlue());
+
+      this.setHue(vHsb.hue);
+      this.setSaturation(vHsb.saturation);
+      this.setBrightness(vHsb.brightness);
+  }
+}
+
+qx.Proto._setRgbFromHue = function()
+{
+  switch(this._updateContext)
+  {
+    case "rgbSpinner":
+    case "hexField":
+      break;
+
+    default:
+      var vRgb = qx.util.ColorUtil.hsb2rgb(this.getHue(), this.getSaturation(), this.getBrightness());
+
+      this.setRed(vRgb.red);
+      this.setGreen(vRgb.green);
+      this.setBlue(vRgb.blue);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PREVIEW SYNC
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._setPreviewFromRgb = function()
+{
+  if (this._newColorPreview.isCreated())
+  {
+    // faster (omit qx.renderer.color.Color instances)
+    this._newColorPreview._style.backgroundColor = qx.renderer.color.Color.rgb2style(this.getRed(), this.getGreen(), this.getBlue());
+  }
+  else
+  {
+    this._newColorPreview.setBackgroundColor([this.getRed(), this.getGreen(), this.getBlue()]);
+  }
+}
+
+qx.Proto.setPreviousColor = function(vRed, vGreen, vBlue)
+{
+  this._oldColorPreview.setBackgroundImage(null);
+  this._oldColorPreview.setBackgroundColor([vRed, vGreen, vBlue]);
+
+  this.setRed(vRed);
+  this.setGreen(vGreen);
+  this.setBlue(vBlue);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if (this._controlBar)
+  {
+    this._controlBar.dispose();
+    this._controlBar = null;
+  }
+
+  if (this._btnbar)
+  {
+    this._btnbar.dispose();
+    this._btnbar = null;
+  }
+
+  if (this._btncancel)
+  {
+    this._btncancel.dispose();
+    this._btncancel = null;
+  }
+
+  if (this._btnok)
+  {
+    this._btnok.dispose();
+    this._btnok = null;
+  }
+
+  if (this._controlPane)
+  {
+    this._controlPane.dispose();
+    this._controlPane = null;
+  }
+
+  if (this._hueSaturationPane)
+  {
+    this._hueSaturationPane.removeEventListener("mousewheel", this._onHueSaturationPaneMouseWheel, this);
+    this._hueSaturationPane.dispose();
+    this._hueSaturationPane = null;
+  }
+
+  if (this._hueSaturationField)
+  {
+    this._hueSaturationField.removeEventListener("mousedown", this._onHueSaturationFieldMouseDown, this);
+    this._hueSaturationField.dispose();
+    this._hueSaturationField = null;
+  }
+
+  if (this._hueSaturationHandle)
+  {
+    this._hueSaturationHandle.removeEventListener("mousedown", this._onHueSaturationHandleMouseDown, this);
+    this._hueSaturationHandle.removeEventListener("mouseup", this._onHueSaturationHandleMouseUp, this);
+    this._hueSaturationHandle.removeEventListener("mousemove", this._onHueSaturationHandleMouseMove, this);
+    this._hueSaturationHandle.dispose();
+    this._hueSaturationHandle = null;
+  }
+
+  if (this._brightnessPane)
+  {
+    this._brightnessPane.removeEventListener("mousewheel", this._onBrightnessPaneMouseWheel, this);
+    this._brightnessPane.dispose();
+    this._brightnessPane = null;
+  }
+
+  if (this._brightnessField)
+  {
+    this._brightnessField.removeEventListener("mousedown", this._onBrightnessFieldMouseDown, this);
+    this._brightnessField.dispose();
+    this._brightnessField = null;
+  }
+
+  if (this._brightnessHandle)
+  {
+    this._brightnessHandle.removeEventListener("mousedown", this._onBrightnessHandleMouseDown, this);
+    this._brightnessHandle.removeEventListener("mouseup", this._onBrightnessHandleMouseUp, this);
+    this._brightnessHandle.removeEventListener("mousemove", this._onBrightnessHandleMouseMove, this);
+    this._brightnessHandle.dispose();
+    this._brightnessHandle = null;
+  }
+
+  if (this._presetFieldSet)
+  {
+    this._presetFieldSet.dispose();
+    this._presetFieldSet = null;
+  }
+
+  if (this._presetGrid)
+  {
+    this._presetGrid.dispose();
+    this._presetGrid = null;
+  }
+
+  this._presetTable = null;
+
+  if (this._inputFieldSet)
+  {
+    this._inputFieldSet.dispose();
+    this._inputFieldSet = null;
+  }
+
+  if (this._inputLayout)
+  {
+    this._inputLayout.dispose();
+    this._inputLayout = null;
+  }
+
+  if (this._previewFieldSet)
+  {
+    this._previewFieldSet.dispose();
+    this._previewFieldSet = null;
+  }
+
+  if (this._previewLayout)
+  {
+    this._previewLayout.dispose();
+    this._previewLayout = null;
+  }
+
+  if (this._hexLayout)
+  {
+    this._hexLayout.dispose();
+    this._hexLayout = null;
+  }
+
+  if (this._hexLabel)
+  {
+    this._hexLabel.dispose();
+    this._hexLabel = null;
+  }
+
+  if (this._hexHelper)
+  {
+    this._hexHelper.dispose();
+    this._hexHelper = null;
+  }
+
+  if (this._hexField)
+  {
+    this._hexField.addEventListener("changeValue", this._onHexFieldChange, this);
+    this._hexField.dispose();
+    this._hexField = null;
+  }
+
+  if (this._rgbSpinLayout)
+  {
+    this._rgbSpinLayout.dispose();
+    this._rgbSpinLayout = null;
+  }
+
+  if (this._rgbSpinLabel)
+  {
+    this._rgbSpinLabel.dispose();
+    this._rgbSpinLabel = null;
+  }
+
+  if (this._rgbSpinRed)
+  {
+    this._rgbSpinRed.removeEventListener("change", this._setRedFromSpinner, this);
+    this._rgbSpinRed.dispose();
+    this._rgbSpinRed = null;
+  }
+
+  if (this._rgbSpinGreen)
+  {
+    this._rgbSpinGreen.removeEventListener("change", this._setGreenFromSpinner, this);
+    this._rgbSpinGreen.dispose();
+    this._rgbSpinGreen = null;
+  }
+
+  if (this._rgbSpinBlue)
+  {
+    this._rgbSpinBlue.removeEventListener("change", this._setBlueFromSpinner, this);
+    this._rgbSpinBlue.dispose();
+    this._rgbSpinBlue = null;
+  }
+
+  if (this._hsbSpinLayout)
+  {
+    this._hsbSpinLayout.dispose();
+    this._hsbSpinLayout = null;
+  }
+
+  if (this._hsbSpinLabel)
+  {
+    this._hsbSpinLabel.dispose();
+    this._hsbSpinLabel = null;
+  }
+
+  if (this._hsbSpinHue)
+  {
+    this._hsbSpinHue.removeEventListener("change", this._setHueFromSpinner, this);
+    this._hsbSpinHue.dispose();
+    this._hsbSpinHue = null;
+  }
+
+  if (this._hsbSpinSaturation)
+  {
+    this._hsbSpinSaturation.removeEventListener("change", this._setSaturationFromSpinner, this);
+    this._hsbSpinSaturation.dispose();
+    this._hsbSpinSaturation = null;
+  }
+
+  if (this._hsbSpinBrightness)
+  {
+    this._hsbSpinBrightness.removeEventListener("change", this._setBrightnessFromSpinner, this);
+    this._hsbSpinBrightness.dispose();
+    this._hsbSpinBrightness = null;
+  }
+
+  if (this._oldColorPreview)
+  {
+    this._oldColorPreview.dispose();
+    this._oldColorPreview = null;
+  }
+
+  if (this._newColorPreview)
+  {
+    this._newColorPreview.dispose();
+    this._newColorPreview = null;
+  }
+
+  return qx.ui.layout.VerticalBoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/component/DateChooser.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/component/DateChooser.js
new file mode 100644 (file)
index 0000000..fdfb2af
--- /dev/null
@@ -0,0 +1,518 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#require(qx.util.format.DateFormat)
+
+************************************************************************ */
+
+/**
+ * Shows calendar and allows choosing a date.
+ *
+ * @param date {Date ? null} The initial date to show. If <code>null</code>
+ *        the current day (today) is shown.
+ *
+ * @event select {qx.event.type.DataEvent} Fired when a date was selected. The
+ *        event holds the new selected date in its data property.
+ */
+qx.OO.defineClass("qx.ui.component.DateChooser", qx.ui.layout.BoxLayout,
+function(date) {
+  qx.ui.layout.BoxLayout.call(this);
+
+  this.setOrientation("vertical");
+
+  // Create the navigation bar
+  var navBar = new qx.ui.layout.BoxLayout;
+  navBar.set({ width:null, height:"auto", spacing:1 });
+
+  var lastYearBt = new qx.ui.toolbar.Button(null, "widget/datechooser/lastYear.png");
+  var lastMonthBt = new qx.ui.toolbar.Button(null, "widget/datechooser/lastMonth.png");
+  var monthYearLabel = new qx.ui.basic.Label;
+  var nextMonthBt = new qx.ui.toolbar.Button(null, "widget/datechooser/nextMonth.png");
+  var nextYearBt = new qx.ui.toolbar.Button(null, "widget/datechooser/nextYear.png");
+
+  lastYearBt.set({ show:'icon', toolTip:new qx.ui.popup.ToolTip("Last year"), spacing:0 });
+  lastMonthBt.set({ show:'icon', toolTip:new qx.ui.popup.ToolTip("Last month") });
+  nextMonthBt.set({ show:'icon', toolTip:new qx.ui.popup.ToolTip("Next month") });
+  nextYearBt.set({ show:'icon', toolTip:new qx.ui.popup.ToolTip("Next year") });
+
+  lastYearBt.setAppearance("datechooser-toolbar-button");
+  lastMonthBt.setAppearance("datechooser-toolbar-button");
+  nextMonthBt.setAppearance("datechooser-toolbar-button");
+  nextYearBt.setAppearance("datechooser-toolbar-button");
+
+  lastYearBt.addEventListener("click", this._onNavButtonClicked, this);
+  lastMonthBt.addEventListener("click", this._onNavButtonClicked, this);
+  nextMonthBt.addEventListener("click", this._onNavButtonClicked, this);
+  nextYearBt.addEventListener("click", this._onNavButtonClicked, this);
+
+  this._lastYearBt = lastYearBt;
+  this._lastMonthBt = lastMonthBt;
+  this._nextMonthBt = nextMonthBt;
+  this._nextYearBt = nextYearBt;
+
+  monthYearLabel.setAppearance("datechooser-monthyear");
+  monthYearLabel.set({ width:"1*" });
+
+  navBar.add(lastYearBt, lastMonthBt, monthYearLabel, nextMonthBt, nextYearBt);
+  this._monthYearLabel = monthYearLabel;
+  navBar.setHtmlAttribute("id", "navBar");
+
+  // Calculate the cell width and height
+  var testLabel = new qx.ui.basic.Label;
+  var testParent = new qx.ui.layout.CanvasLayout;
+  testParent.add(testLabel);
+  testLabel.setHtml("Xx");
+  testLabel.set({ paddingLeft : 5, paddingRight : 5 });
+  testLabel.setAppearance("datechooser-weekday");
+  var cellWidth = testLabel.getBoxWidth();
+  var cellHeight = testLabel.getBoxHeight();
+  testLabel.dispose();
+  testParent.dispose();
+
+  // Create the date pane
+  var datePane = new qx.ui.layout.GridLayout;
+  datePane.setAppearance("datechooser-datepane");
+  datePane.set({ width:"100%", height:"auto" });
+  datePane.setColumnCount(8);
+  datePane.setRowCount(7);
+  for (var i = 0; i < datePane.getColumnCount(); i++) {
+    datePane.setColumnWidth(i, cellWidth);
+  }
+  for (var i = 0; i < datePane.getRowCount(); i++) {
+    datePane.setRowHeight(i, cellHeight);
+  }
+
+  // Create the weekdays
+  // Add an empty label as spacer for the week numbers
+  var label = new qx.ui.basic.Label;
+  label.setAppearance("datechooser-week");
+  label.set({ width:"100%", height:"100%" });
+  label.addState("header");
+  datePane.add(label, 0, 0);
+
+  this._weekdayLabelArr = [];
+  for (var i = 0; i < 7; i++) {
+    var label = new qx.ui.basic.Label;
+    label.setAppearance("datechooser-weekday");
+    label.set({ width:"100%", height:"100%" });
+    datePane.add(label, i + 1, 0);
+    this._weekdayLabelArr.push(label);
+  }
+
+  // Add the days
+  this._dayLabelArr = [];
+  this._weekLabelArr = [];
+  for (var y = 0; y < 6; y++) {
+    // Add the week label
+    var label = new qx.ui.basic.Label;
+    label.setAppearance("datechooser-week");
+    label.set({ width:"100%", height:"100%" });
+    datePane.add(label, 0, y + 1);
+    this._weekLabelArr.push(label);
+
+    // Add the day labels
+    for (var x = 0; x < 7; x++) {
+      var label = new qx.ui.basic.Label;
+      label.setAppearance("datechooser-day");
+      label.set({ width:"100%", height:"100%" });
+      label.addEventListener("mousedown", this._onDayClicked, this);
+      label.addEventListener("dblclick", this._onDayDblClicked, this);
+      datePane.add(label, x + 1, y + 1);
+      this._dayLabelArr.push(label);
+    }
+  }
+
+  // Make focusable
+  this.setTabIndex(1);
+  this.addEventListener("keypress", this._onkeypress);
+
+  // Show the right date
+  var shownDate = (date != null) ? date : new Date();
+  this.showMonth(shownDate.getMonth(), shownDate.getFullYear());
+
+  // Add the main widgets
+  this.add(navBar);
+  this.add(datePane);
+
+});
+
+
+// ***** Properties *****
+
+/** The start of the week. 0 = sunday, 1 = monday, and so on. */
+qx.OO.addProperty({ name:"startOfWeek", type:"number", defaultValue:1 });
+/** The currently shown month. 0 = january, 1 = february, and so on. */
+qx.OO.addProperty({ name:"shownMonth", type:"number", defaultValue:null });
+/** The currently shown year. */
+qx.OO.addProperty({ name:"shownYear", type:"number", defaultValue:null });
+/** {Date} The currently selected date. */
+qx.OO.addProperty({ name:"date", type:"object", defaultValue:null });
+
+
+// property checker
+qx.Proto._checkDate = function(propValue, propData) {
+  // Use a clone of the date internally since date instances may be changed
+  return (propValue == null) ? null : new Date(propValue.getTime());
+}
+
+
+// property modifier
+qx.Proto._modifyDate = function(propValue, propOldValue, propData) {
+  var DateChooser = qx.ui.component.DateChooser;
+
+  if ((propValue != null) && (this.getShownMonth() != propValue.getMonth()
+    || this.getShownYear() != propValue.getFullYear()))
+  {
+    // The new date is in another month -> Show that month
+    this.showMonth(propValue.getMonth(), propValue.getFullYear());
+  } else {
+    // The new date is in the current month -> Just change the states
+    var newDay = (propValue == null) ? -1 : propValue.getDate();
+    for (var i = 0; i < 6 * 7; i++) {
+      var dayLabel = this._dayLabelArr[i];
+
+      if (dayLabel.hasState("otherMonth")) {
+        if (dayLabel.hasState("selected")) {
+          dayLabel.removeState("selected");
+        }
+      } else {
+        var day = parseInt(dayLabel.getHtml());
+        if (day == newDay) {
+          dayLabel.addState("selected");
+        } else if (dayLabel.hasState("selected")) {
+          dayLabel.removeState("selected");
+        }
+      }
+    }
+  }
+
+  return true;
+}
+
+
+/**
+ * Event handler. Called when a navigation button has been clicked.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onNavButtonClicked = function(evt) {
+  var year = this.getShownYear();
+  var month = this.getShownMonth();
+
+  switch(evt.getCurrentTarget()) {
+    case this._lastYearBt:
+      year--;
+      break;
+    case this._lastMonthBt:
+      month--;
+      if (month < 0) {
+        month = 11;
+        year--;
+      }
+      break;
+    case this._nextMonthBt:
+      month++;
+      if (month >= 12) {
+        month = 0;
+        year++;
+      }
+      break;
+    case this._nextYearBt:
+      year++;
+      break;
+  }
+
+  this.showMonth(month, year);
+}
+
+
+/**
+ * Event handler. Called when a day has been clicked.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onDayClicked = function(evt) {
+  var time = evt.getCurrentTarget().dateTime;
+  this.setDate(new Date(time));
+}
+
+qx.Proto._onDayDblClicked = function() {
+  this.createDispatchDataEvent("select", this.getDate());
+}
+
+/**
+ * Event handler. Called when a key was pressed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onkeypress = function(evt) {
+  var dayIncrement = null;
+  var monthIncrement = null;
+  var yearIncrement = null;
+  if (evt.getModifiers() == 0) {
+    switch(evt.getKeyIdentifier()) {
+      case "Left":
+        dayIncrement = -1;
+        break;
+      case "Right":
+        dayIncrement = 1;
+        break;
+      case "Up":
+        dayIncrement = -7;
+        break;
+      case "Down":
+        dayIncrement = 7;
+        break;
+      case "PageUp":
+        monthIncrement = -1;
+        break;
+      case "PageDown":
+        monthIncrement = 1;
+        break;
+      case "Escape":
+        if (this.getDate() != null) {
+          this.setDate(null);
+          return true;
+        }
+        break;
+      case "Enter":
+      case "Space":
+        if (this.getDate() != null) {
+          this.createDispatchDataEvent("select", this.getDate());
+        }
+        return;
+    }
+  } else if (evt.getShiftKey()) {
+    switch(evt.getKeyIdentifier()) {
+      case "PageUp":
+        yearIncrement = -1;
+        break;
+      case "PageDown":
+        yearIncrement = 1;
+        break;
+    }
+  }
+
+  if (dayIncrement != null || monthIncrement != null || yearIncrement != null) {
+    var date = this.getDate();
+    if (date != null) {
+      date = new Date(date.getTime()); // TODO: Do cloning in getter
+    }
+    if (date == null) {
+      date = new Date();
+    } else {
+      if (dayIncrement != null)   date.setDate(date.getDate() + dayIncrement);
+      if (monthIncrement != null) date.setMonth(date.getMonth() + monthIncrement);
+      if (yearIncrement != null)  date.setFullYear(date.getFullYear() + yearIncrement);
+    }
+    this.setDate(date);
+  }
+}
+
+
+// ***** Methods *****
+
+
+/**
+ * Returns whether a certain day of week belongs to the week end.
+ *
+ * @param dayOfWeek {int} the day to check. (0 = sunday, 1 = monday, ...,
+ *    6 = saturday)
+ * @return {boolean} whether the day belongs to the week end.
+ */
+qx.Proto._isWeekend = function(dayOfWeek) {
+  return (dayOfWeek == 0) || (dayOfWeek == 6);
+}
+
+
+/**
+ * Shows a certain month.
+ *
+ * @param month {int ? null} the month to show (0 = january). If not set the month
+ *    will remain the same.
+ * @param year {int ? null} the year to show. If not set the year will remain the
+ *    same.
+ */
+qx.Proto.showMonth = function(month, year) {
+  if ((month != null && month != this.getShownMonth())
+    || (year != null && year != this.getShownYear()))
+  {
+    if (month != null) {
+      this.setShownMonth(month);
+    }
+    if (year != null) {
+      this.setShownYear(year);
+    }
+
+    this._updateDatePane();
+  }
+}
+
+
+/**
+ * Updates the date pane.
+ */
+qx.Proto._updateDatePane = function() {
+  var DateChooser = qx.ui.component.DateChooser;
+
+  var today = new Date();
+  var todayYear     = today.getFullYear();
+  var todayMonth    = today.getMonth();
+  var todayDayOfMonth = today.getDate();
+
+  var selDate = this.getDate();
+  var selYear     = (selDate == null) ? -1 : selDate.getFullYear();
+  var selMonth    = (selDate == null) ? -1 : selDate.getMonth();
+  var selDayOfMonth = (selDate == null) ? -1 : selDate.getDate();
+
+  var shownMonth = this.getShownMonth();
+  var shownYear  = this.getShownYear();
+
+  var startOfWeek = this.getStartOfWeek();
+
+  // Create a help date that points to the first of the current month
+  var helpDate = new Date(this.getShownYear(), this.getShownMonth(), 1);
+
+  this._monthYearLabel.setHtml(DateChooser.MONTH_YEAR_FORMAT.format(helpDate));
+
+  // Show the day names
+  var firstDayOfWeek = helpDate.getDay();
+  var firstSundayInMonth = (1 + 7 - firstDayOfWeek) % 7;
+  for (var i = 0; i < 7; i++) {
+    var day = (i + startOfWeek) % 7;
+
+    var dayLabel = this._weekdayLabelArr[i];
+
+    helpDate.setDate(firstSundayInMonth + day);
+    dayLabel.setHtml(DateChooser.WEEKDAY_FORMAT.format(helpDate));
+
+    if (this._isWeekend(day)) {
+      dayLabel.addState("weekend");
+    } else {
+      dayLabel.removeState("weekend");
+    }
+  }
+
+  // Show the days
+  helpDate = new Date(shownYear, shownMonth, 1);
+  var nrDaysOfLastMonth = (7 + firstDayOfWeek - startOfWeek) % 7;
+  helpDate.setDate(helpDate.getDate() - nrDaysOfLastMonth);
+  for (var week = 0; week < 6; week++) {
+    this._weekLabelArr[week].setHtml(DateChooser.WEEK_FORMAT.format(helpDate));
+
+    for (var i = 0; i < 7; i++) {
+      var dayLabel = this._dayLabelArr[week * 7 + i];
+
+      var year     = helpDate.getFullYear();
+      var month    = helpDate.getMonth();
+      var dayOfMonth = helpDate.getDate();
+
+      var isSelectedDate = (selYear == year && selMonth == month && selDayOfMonth == dayOfMonth);
+      if (isSelectedDate) {
+        dayLabel.addState("selected");
+      } else {
+        dayLabel.removeState("selected");
+      }
+
+      if (month != shownMonth) {
+        dayLabel.addState("otherMonth");
+      } else {
+        dayLabel.removeState("otherMonth");
+      }
+
+      var isToday = (year == todayYear && month == todayMonth && dayOfMonth == todayDayOfMonth);
+      if (isToday) {
+        dayLabel.addState("today");
+      } else {
+        dayLabel.removeState("today");
+      }
+
+      dayLabel.setHtml("" + dayOfMonth);
+      dayLabel.dateTime = helpDate.getTime();
+
+      // Go to the next day
+      helpDate.setDate(helpDate.getDate() + 1);
+    }
+  }
+}
+
+
+/**
+ * {qx.util.format.DateFormat} The format for the date year
+ * label at the top center.
+ */
+qx.Class.MONTH_YEAR_FORMAT = new qx.util.format.DateFormat("MMMM yyyy");
+
+/**
+ * {qx.util.format.DateFormat} The format for the weekday
+ * labels (the headers of the date table).
+ */
+qx.Class.WEEKDAY_FORMAT = new qx.util.format.DateFormat("EE");
+
+/**
+ * {qx.util.format.DateFormat} The format for the week labels.
+ */
+qx.Class.WEEK_FORMAT = new qx.util.format.DateFormat("ww");
+
+
+// overridden
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  this._lastYearBt.removeEventListener("click", this._onNavButtonClicked, this);
+  this._lastMonthBt.removeEventListener("click", this._onNavButtonClicked, this);
+  this._nextMonthBt.removeEventListener("click", this._onNavButtonClicked, this);
+  this._nextYearBt.removeEventListener("click", this._onNavButtonClicked, this);
+
+  this._lastYearBt.dispose();
+  this._lastMonthBt.dispose();
+  this._nextMonthBt.dispose();
+  this._nextYearBt.dispose();
+
+  this._lastYearBt = null;
+  this._lastMonthBt = null;
+  this._nextMonthBt = null;
+  this._nextYearBt = null;
+
+  this._monthYearLabel.dispose();
+  this._monthYearLabel = null;
+
+  for (var i = 0; i < this._weekdayLabelArr.length; i++) {
+    this._weekdayLabelArr[i].dispose();
+  }
+  this._weekdayLabelArr = null;
+
+  for (var i = 0; i < this._dayLabelArr.length; i++) {
+    this._dayLabelArr[i].dispose();
+    this._dayLabelArr[i].removeEventListener("mousedown", this._onDayClicked, this);
+    this._dayLabelArr[i].removeEventListener("dblclick", this._onDayDblClicked, this);
+  }
+  this._dayLabelArr = null;
+
+  for (var i = 0; i < this._weekLabelArr.length; i++) {
+    this._weekLabelArr[i].dispose();
+  }
+  this._weekLabelArr = null;
+
+  this.removeEventListener("keypress", this._onkeypress);
+
+  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/ClientDocument.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/ClientDocument.js
new file mode 100644 (file)
index 0000000..f65edcb
--- /dev/null
@@ -0,0 +1,450 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#require(qx.dom.StyleSheet)
+#require(qx.event.handler.EventHandler)
+#optional(qx.client.NativeWindow)
+#optional(qx.ui.window.Window)
+#optional(qx.manager.object.PopupManager)
+
+************************************************************************ */
+
+/**
+ * This is the basic widget of all qooxdoo applications.
+ *
+ * qx.ui.core.ClientDocument is the parent of all children inside your application. It
+ * also handles their resizing and focus navigation.
+ *
+ * @event windowblur {qx.event.type.Event} Fired when the window looses the
+ *        focus. (Fired by {@link qx.event.handler.EventHandler})
+ * @event windowfocus {qx.event.type.Event} Fired when the window gets the
+ *        focus. (Fired by {@link qx.event.handler.EventHandler})
+ * @event windowresize {qx.event.type.Event} Fired when the window has been
+ *        resized. (Fired by {@link qx.event.handler.EventHandler})
+ */
+qx.OO.defineClass("qx.ui.core.ClientDocument", qx.ui.layout.CanvasLayout,
+function()
+{
+  this._window = window;
+  this._document = window.document;
+
+  // Init element
+  this.setElement(this._document.body);
+
+  // Needed hard-coded because otherwise the client document
+  // would not be added initially to the state queue
+  this.addToStateQueue();
+
+  qx.ui.layout.CanvasLayout.call(this);
+
+  // Don't use widget styles
+  this._styleProperties = {};
+
+  // Configure as focus root
+  this.activateFocusRoot();
+
+  // Cache current size
+  this._cachedInnerWidth = this._document.body.offsetWidth;
+  this._cachedInnerHeight = this._document.body.offsetHeight;
+
+  // Add Resize Handler
+  this.addEventListener("windowresize", this._onwindowresize);
+
+  // Dialog Support
+  this._modalWidgets = [];
+  this._modalNativeWindow = null;
+
+  // Register as focus root
+  qx.event.handler.EventHandler.getInstance().setFocusRoot(this);
+
+
+  // Init Resize Helper
+  /*
+  if (qx.sys.Client.getInstance().isGecko())
+  {
+    var o = this;
+    this._resizeHelper = window.setInterval(function() { o._onresizehelper() }, 100);
+  }
+  */
+});
+
+qx.OO.addProperty({ name : "globalCursor", type : "string" });
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "client-document" });
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("enableApplicationLayout", true);
+qx.Settings.setDefault("boxModelCorrection", true);
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  OVERWRITE WIDGET FUNCTIONS/PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyParent = qx.util.Return.returnTrue;
+qx.Proto._modifyVisible = qx.util.Return.returnTrue;
+
+qx.Proto._modifyElement = function(propValue, propOldValue, propData)
+{
+  this._isCreated = qx.util.Validation.isValidElement(propValue);
+
+  if (propOldValue)
+  {
+    propOldValue.qx_Widget = null;
+  }
+
+  if (propValue)
+  {
+    // add reference to widget instance
+    propValue.qx_Widget = this;
+
+    // link element and style reference
+    this._element = propValue;
+    this._style = propValue.style;
+  }
+  else
+  {
+    this._element = null;
+    this._style = null;
+  }
+
+  return true;
+}
+
+qx.Proto.getTopLevelWidget = qx.util.Return.returnThis;
+qx.Proto.getWindowElement = function() { return this._window; }
+qx.Proto.getDocumentElement = function() { return this._document; }
+
+qx.Proto.getParent = qx.Proto.getToolTip = qx.util.Return.returnNull;
+qx.Proto.isMaterialized = qx.Proto.isSeeable = qx.util.Return.returnTrue;
+
+qx.Proto._isDisplayable = true;
+qx.Proto._hasParent = false;
+qx.Proto._initialLayoutDone = true;
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  BLOCKER AND DIALOG SUPPORT
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Returns the blocker widget if already created; otherwise create it first
+ *
+ * @return {ClientDocumentBlocker} the blocker widget.
+ */
+qx.Proto._getBlocker = function()
+{
+  if (!this._blocker)
+  {
+    // Create blocker instance
+    this._blocker = new qx.ui.core.ClientDocumentBlocker;
+
+    // Add blocker events
+    this._blocker.addEventListener("mousedown", this.blockHelper, this);
+    this._blocker.addEventListener("mouseup", this.blockHelper, this);
+
+    // Add blocker to client document
+    this.add(this._blocker);
+  }
+
+  return this._blocker;
+};
+
+qx.Proto.blockHelper = function(e)
+{
+  if (this._modalNativeWindow)
+  {
+    try
+    {
+      this._modalNativeWindow._window.focus();
+    }
+    catch(ex)
+    {
+      this.debug("Window seems to be closed already! => Releasing Blocker: (" + e.getType() + ")", ex);
+      this.release(this._modalNativeWindow);
+    }
+  }
+}
+
+qx.Proto.block = function(vActiveChild)
+{
+  // this.debug("BLOCK: " + vActiveChild.toHashCode());
+
+  this._getBlocker().show();
+
+  if (qx.OO.isAvailable("qx.ui.window.Window") && vActiveChild instanceof qx.ui.window.Window)
+  {
+    this._modalWidgets.push(vActiveChild);
+
+    var vOrigIndex = vActiveChild.getZIndex();
+    this._getBlocker().setZIndex(vOrigIndex);
+    vActiveChild.setZIndex(vOrigIndex+1);
+  }
+  else if (qx.OO.isAvailable("qx.client.NativeWindow") && vActiveChild instanceof qx.client.NativeWindow)
+  {
+    this._modalNativeWindow = vActiveChild;
+    this._getBlocker().setZIndex(1e7);
+  }
+}
+
+qx.Proto.release = function(vActiveChild)
+{
+  // this.debug("RELEASE: " + vActiveChild.toHashCode());
+
+  if (vActiveChild)
+  {
+    if (qx.OO.isAvailable("qx.client.NativeWindow") && vActiveChild instanceof qx.client.NativeWindow)
+    {
+      this._modalNativeWindow = null;
+    }
+    else
+    {
+      qx.lang.Array.remove(this._modalWidgets, vActiveChild);
+    }
+  }
+
+  var l = this._modalWidgets.length;
+  if (l == 0)
+  {
+    this._getBlocker().hide();
+  }
+  else
+  {
+    var oldActiveChild = this._modalWidgets[l-1];
+
+    var o = oldActiveChild.getZIndex();
+    this._getBlocker().setZIndex(o);
+    oldActiveChild.setZIndex(o+1);
+  }
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CSS API
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.createStyleElement = function(vCssText) {
+  return qx.dom.StyleSheet.createElement(vCssText);
+}
+
+qx.Proto.addCssRule = function(vSheet, vSelector, vStyle) {
+  return qx.dom.StyleSheet.addRule(vSheet, vSelector, vStyle);
+}
+
+qx.Proto.removeCssRule = function(vSheet, vSelector) {
+  return qx.dom.StyleSheet.removeRule(vSheet, vSelector);
+}
+
+qx.Proto.removeAllCssRules = function(vSheet) {
+  return qx.dom.StyleSheet.removeAllRules(vSheet);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CSS FIX
+---------------------------------------------------------------------------
+*/
+if (qx.Settings.getValueOfClass("qx.ui.core.ClientDocument", "boxModelCorrection")) {
+  qx.dom.StyleSheet.createElement("html,body{margin:0;border:0;padding:0;}" +
+    " html{border:0 none;} *{" + qx.sys.Client.getInstance().getEngineBoxSizingAttribute() +
+    ":border-box;} img{" + qx.sys.Client.getInstance().getEngineBoxSizingAttribute() +
+    ":content-box;}");
+}
+if (qx.Settings.getValueOfClass("qx.ui.core.ClientDocument", "enableApplicationLayout")) {
+  qx.dom.StyleSheet.createElement("html,body{width:100%;height:100%;overflow:hidden;}");
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  GLOBAL CURSOR SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyGlobalCursor = function(propValue, propOldValue, propData)
+{
+  if (!this._globalCursorStyleSheet) {
+    this._globalCursorStyleSheet = this.createStyleElement();
+  }
+
+  // Selector based remove does not work with the "*" selector in mshtml
+  // this.removeCssRule(this._globalCursorStyleSheet, "*");
+
+  this.removeAllCssRules(this._globalCursorStyleSheet);
+
+  if (propValue) {
+    this.addCssRule(this._globalCursorStyleSheet, "*", "cursor:" + propValue + " !important");
+  }
+
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  WINDOW RESIZE HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onwindowresize = function(e)
+{
+  // Hide popups, tooltips, ...
+  if (qx.OO.isAvailable("qx.manager.object.PopupManager")) {
+    qx.manager.object.PopupManager.getInstance().update();
+  }
+
+  // Update children
+  this._recomputeInnerWidth();
+  this._recomputeInnerHeight();
+
+  // Flush queues
+  qx.ui.core.Widget.flushGlobalQueues();
+}
+
+// This was an idea to allow mozilla more realtime document resize updates
+// but it seems so, that mozilla stops javascript execution while the user
+// resize windows. Bad.
+
+/*
+qx.Proto._onwindowresizehelper = function()
+{
+  // Test for changes
+  var t1 = this._recomputeInnerWidth();
+  var t2 = this._recomputeInnerHeight();
+
+  // Flush queues
+  if (t1 || t2) {
+    qx.ui.core.Widget.flushGlobalQueues();
+  }
+}
+*/
+
+qx.Proto._computeInnerWidth = function() {
+  return this._document.body.offsetWidth;
+}
+
+qx.Proto._computeInnerHeight = function() {
+  return this._document.body.offsetHeight;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  delete this._document;
+  delete this._modalWidgets;
+  delete this._modalNativeWindow;
+
+  // Remove Resize Handler
+  this.removeEventListener("windowresize", this._onwindowresize);
+
+  this._globalCursorStyleSheet = null;
+
+  if (this._blocker)
+  {
+    this._blocker.removeEventListener("mousedown", this.blockHelper, this);
+    this._blocker.removeEventListener("mouseup", this.blockHelper, this);
+
+    this._blocker.dispose();
+    this._blocker = null;
+  }
+
+  /*
+  if (this._resizeHelper)
+  {
+    window.clearInterval(this._resizeHelper);
+    this._resizeHelper = null;
+  }
+  */
+
+  return qx.ui.layout.CanvasLayout.prototype.dispose.call(this);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/ClientDocumentBlocker.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/ClientDocumentBlocker.js
new file mode 100644 (file)
index 0000000..5acbb85
--- /dev/null
@@ -0,0 +1,39 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+
+************************************************************************ */
+
+/*!
+  qx.ui.core.ClientDocumentBlocker blocks the inputs from the user.
+  This will be used internally to allow better modal dialogs for example.
+*/
+qx.OO.defineClass("qx.ui.core.ClientDocumentBlocker", qx.ui.basic.Terminator,
+function()
+{
+  qx.ui.basic.Terminator.call(this);
+
+  this.setEdge(0);
+  this.setZIndex(1e8);
+  this.setDisplay(false);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "blocker" });
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/Parent.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/Parent.js
new file mode 100644 (file)
index 0000000..29e8861
--- /dev/null
@@ -0,0 +1,1207 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#optional(qx.event.handler.FocusHandler)
+#optional(qx.manager.object.ToolTipManager)
+#optional(qx.manager.object.PopupManager)
+#optional(qx.dom.ElementFromPoint)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.core.Parent", qx.ui.core.Widget,
+function()
+{
+  if (this.classname == qx.ui.core.Parent.ABSTRACT_CLASS) {
+    throw new Error("Please omit the usage of qx.ui.core.Parent directly. Choose between any widget which inherits from qx.ui.core.Parent and so comes with a layout implementation!");
+  }
+
+  qx.ui.core.Widget.call(this);
+
+  // Contains all children
+  this._children = [];
+
+  // Create instanceof layout implementation
+  this._layoutImpl = this._createLayoutImpl();
+});
+
+qx.ui.core.Parent.ABSTRACT_CLASS = "qx.ui.core.Parent";
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Individual focus handler for all child elements.
+*/
+qx.OO.addProperty({ name : "focusHandler", type : "object", instance : "qx.event.handler.FocusHandler" });
+
+/*!
+  The current active child.
+*/
+qx.OO.addProperty({ name : "activeChild", type : "object", instance : "qx.ui.core.Widget" });
+
+/*!
+  The current focused child.
+*/
+qx.OO.addProperty({ name : "focusedChild", type : "object", instance : "qx.ui.core.Widget" });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CACHED PRIVATE PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addCachedProperty({ name : "visibleChildren", defaultValue : null });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  FOCUS HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.isFocusRoot = function() {
+  return this.getFocusHandler() != null;
+}
+
+qx.Proto.getFocusRoot = function()
+{
+  if (this.isFocusRoot()) {
+    return this;
+  }
+
+  if(this._hasParent) {
+    return this.getParent().getFocusRoot();
+  }
+
+  return null;
+}
+
+qx.Proto.activateFocusRoot = function() {
+  this.setFocusHandler(new qx.event.handler.FocusHandler(this));
+}
+
+qx.Proto._onfocuskeyevent = function(e) {
+  this.getFocusHandler()._onkeyevent(this, e);
+}
+
+qx.Proto._modifyFocusHandler = function(propValue, propOldValue, propData)
+{
+  if (propValue)
+  {
+    // Add Key Handler
+    this.addEventListener("keydown", this._onfocuskeyevent);
+    this.addEventListener("keypress", this._onfocuskeyevent);
+
+    // Activate focus handling (but keep already configured tabIndex)
+    if (this.getTabIndex() < 1) {
+      this.setTabIndex(1);
+    }
+
+    // But hide the focus outline
+    this.setHideFocus(true);
+
+    // Make myself the default
+    this.setActiveChild(this);
+  }
+  else
+  {
+    // Remove Key Handler
+    this.removeEventListener("keydown", this._onfocuskeyevent);
+    this.removeEventListener("keypress", this._onfocuskeyevent);
+
+    // Deactivate focus handling
+    this.setTabIndex(-1);
+
+    // Don't hide focus outline
+    this.setHideFocus(false);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyFocusedChild = function(propValue, propOldValue, propData)
+{
+  // this.debug("FocusedChild: " + propValue);
+
+  var vFocusValid = qx.util.Validation.isValidObject(propValue);
+  var vBlurValid = qx.util.Validation.isValidObject(propOldValue);
+
+  if (qx.OO.isAvailable("qx.manager.object.PopupManager") && vFocusValid)
+  {
+    var vMgr = qx.manager.object.PopupManager.getInstance();
+    if (vMgr) {
+      vMgr.update(propValue);
+    }
+  }
+
+  if (vBlurValid)
+  {
+    // Dispatch FocusOut
+    if (propOldValue.hasEventListeners("focusout"))
+    {
+      var vEventObject = new qx.event.type.FocusEvent("focusout", propOldValue);
+
+      if (vFocusValid) {
+        vEventObject.setRelatedTarget(propValue);
+      }
+
+      propOldValue.dispatchEvent(vEventObject);
+      vEventObject.dispose();
+    }
+  }
+
+  if (vFocusValid)
+  {
+    if (propValue.hasEventListeners("focusin"))
+    {
+      // Dispatch FocusIn
+      var vEventObject = new qx.event.type.FocusEvent("focusin", propValue);
+
+      if (vBlurValid) {
+        vEventObject.setRelatedTarget(propOldValue);
+      }
+
+      propValue.dispatchEvent(vEventObject);
+      vEventObject.dispose();
+    }
+  }
+
+  if (vBlurValid)
+  {
+    if (this.getActiveChild() == propOldValue) {
+      this.setActiveChild(null);
+    }
+
+    propOldValue.setFocused(false);
+
+    // Dispatch Blur
+    var vEventObject = new qx.event.type.FocusEvent("blur", propOldValue);
+
+    if (vFocusValid) {
+      vEventObject.setRelatedTarget(propValue);
+    }
+
+    propOldValue.dispatchEvent(vEventObject);
+
+    if (qx.OO.isAvailable("qx.manager.object.ToolTipManager"))
+    {
+      var vMgr = qx.manager.object.ToolTipManager.getInstance();
+      if (vMgr) {
+        vMgr.handleBlur(vEventObject);
+      }
+    }
+
+    vEventObject.dispose();
+  }
+
+  if (vFocusValid)
+  {
+    this.setActiveChild(propValue);
+    propValue.setFocused(true);
+    qx.event.handler.EventHandler.getInstance().setFocusRoot(this);
+
+    // Dispatch Focus
+    var vEventObject = new qx.event.type.FocusEvent("focus", propValue);
+
+    if (vBlurValid) {
+      vEventObject.setRelatedTarget(propOldValue);
+    }
+
+    propValue.dispatchEvent(vEventObject);
+
+    if (qx.OO.isAvailable("qx.manager.object.ToolTipManager"))
+    {
+      var vMgr = qx.manager.object.ToolTipManager.getInstance();
+      if (vMgr) {
+        vMgr.handleFocus(vEventObject);
+      }
+    }
+
+    vEventObject.dispose();
+  }
+
+  // Flush Queues
+  // Do we really need this?
+  // qx.ui.core.Widget.flushGlobalQueues();
+
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LAYOUT IMPLEMENTATION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._layoutImpl = null;
+
+qx.Proto._createLayoutImpl = function() {
+  return null;
+}
+
+qx.Proto.getLayoutImpl = function() {
+  return this._layoutImpl;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHILDREN MANAGMENT: MANAGE ALL
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Return the array of all children
+*/
+qx.Proto.getChildren = function() {
+  return this._children;
+}
+
+/*!
+  Get children count
+*/
+qx.Proto.getChildrenLength = function() {
+  return this.getChildren().length;
+}
+
+/*!
+  Check if the widget has a children
+*/
+qx.Proto.hasChildren = function() {
+  return this.getChildrenLength() > 0;
+}
+
+/*!
+  Check if there are any childrens inside
+*/
+qx.Proto.isEmpty = function() {
+  return this.getChildrenLength() == 0;
+}
+
+/*!
+  Get the position of a children.
+*/
+qx.Proto.indexOf = function(vChild) {
+  return this.getChildren().indexOf(vChild);
+}
+
+/*!
+Check if the given qx.ui.core.Widget is a children.
+
+#param des[qx.ui.core.Widget]: The widget which should be checked.
+*/
+qx.Proto.contains = function(vWidget)
+{
+  switch(vWidget)
+  {
+    case null:
+      return false;
+
+    case this:
+      return true;
+
+    default:
+      // try the next parent of the widget (recursive until found)
+      return this.contains(vWidget.getParent());
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHILDREN MANAGMENT: MANAGE VISIBLE ONES
+
+  uses a cached private property
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Return the array of all visible children
+  (which are configured as visible=true)
+*/
+qx.Proto._computeVisibleChildren = function()
+{
+  var vVisible = [];
+  var vChildren = this.getChildren();
+  var vLength = vChildren.length;
+
+  for (var i=0; i<vLength; i++)
+  {
+    var vChild = vChildren[i];
+    if (vChild._isDisplayable) {
+      vVisible.push(vChild);
+    }
+  }
+
+  return vVisible;
+}
+
+/*!
+  Get length of visible children
+*/
+qx.Proto.getVisibleChildrenLength = function() {
+  return this.getVisibleChildren().length;
+}
+
+/*!
+  Check if the widget has any visible children
+*/
+qx.Proto.hasVisibleChildren = function() {
+  return this.getVisibleChildrenLength() > 0;
+}
+
+/*!
+  Check if there are any visible childrens inside
+*/
+qx.Proto.isVisibleEmpty = function() {
+  return this.getVisibleChildrenLength() == 0;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHILDREN MANAGMENT: ADD
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Add/Append another widget. Allows to add multiple at
+  one, a parameter could be a widget.
+*/
+qx.Proto.add = function()
+{
+  var vWidget;
+
+  for (var i=0, l=arguments.length; i<l; i++)
+  {
+    vWidget = arguments[i];
+
+    if (!(vWidget instanceof qx.ui.core.Parent) && !(vWidget instanceof qx.ui.basic.Terminator))
+    {
+      throw new Error("Invalid Widget: " + vWidget);
+    }
+    else
+    {
+      vWidget.setParent(this);
+    }
+  }
+
+  return this;
+}
+
+qx.Proto.addAt = function(vChild, vIndex)
+{
+  if (qx.util.Validation.isInvalidNumber(vIndex) || vIndex == -1) {
+    throw new Error("Not a valid index for addAt(): " + vIndex);
+  }
+
+  if (vChild.getParent() == this)
+  {
+    var vChildren = this.getChildren();
+    var vOldIndex = vChildren.indexOf(vChild);
+
+    if (vOldIndex != vIndex)
+    {
+      if (vOldIndex != -1) {
+        qx.lang.Array.removeAt(vChildren, vOldIndex);
+      }
+
+      qx.lang.Array.insertAt(vChildren, vChild, vIndex);
+
+      if (this._initialLayoutDone)
+      {
+        this._invalidateVisibleChildren();
+        this.getLayoutImpl().updateChildrenOnMoveChild(vChild, vIndex, vOldIndex);
+      }
+    }
+  }
+  else
+  {
+    vChild._insertIndex = vIndex;
+    vChild.setParent(this);
+  }
+}
+
+qx.Proto.addAtBegin = function(vChild) {
+  return this.addAt(vChild, 0);
+}
+
+qx.Proto.addAtEnd = function(vChild)
+{
+  // we need to fix here, when the child is already inside myself, but
+  // want to change its position
+  var vLength = this.getChildrenLength();
+  return this.addAt(vChild, vChild.getParent() == this ? vLength - 1 : vLength);
+}
+
+/*!
+  Add a widget before another already inserted child
+*/
+qx.Proto.addBefore = function(vChild, vBefore)
+{
+  var vChildren = this.getChildren();
+  var vTargetIndex = vChildren.indexOf(vBefore);
+
+  if (vTargetIndex == -1) {
+    throw new Error("Child to add before: " + vBefore + " is not inside this parent.");
+  }
+
+  var vSourceIndex = vChildren.indexOf(vChild);
+
+  if (vSourceIndex == -1 || vSourceIndex > vTargetIndex) {
+    vTargetIndex++;
+  }
+
+  return this.addAt(vChild, Math.max(0, vTargetIndex-1));
+}
+
+/*!
+  Add a widget after another already inserted child
+*/
+qx.Proto.addAfter = function(vChild, vAfter)
+{
+  var vChildren = this.getChildren();
+  var vTargetIndex = vChildren.indexOf(vAfter);
+
+  if (vTargetIndex == -1) {
+    throw new Error("Child to add after: " + vAfter + " is not inside this parent.");
+  }
+
+  var vSourceIndex = vChildren.indexOf(vChild);
+
+  if (vSourceIndex != -1 && vSourceIndex < vTargetIndex) {
+    vTargetIndex--;
+  }
+
+  return this.addAt(vChild, Math.min(vChildren.length, vTargetIndex+1));
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHILDREN MANAGMENT: REMOVE
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Remove one or multiple childrens.
+*/
+qx.Proto.remove = function()
+{
+  var vWidget;
+
+  for (var i=0, l=arguments.length; i<l; i++)
+  {
+    vWidget = arguments[i];
+
+    if (!(vWidget instanceof qx.ui.core.Parent) && !(vWidget instanceof qx.ui.basic.Terminator))
+    {
+      throw new Error("Invalid Widget: " + vWidget);
+    }
+    else if (vWidget.getParent() == this)
+    {
+      vWidget.setParent(null);
+    }
+  }
+}
+
+qx.Proto.removeAt = function(vIndex)
+{
+  var vChild = this.getChildren()[vIndex];
+
+  if (vChild)
+  {
+    delete vChild._insertIndex;
+
+    vChild.setParent(null);
+  }
+}
+
+/*!
+  Remove all childrens.
+*/
+qx.Proto.removeAll = function()
+{
+  var cs = this.getChildren();
+  var co = cs[0];
+
+  while (co)
+  {
+    this.remove(co);
+    co = cs[0];
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHILDREN MANAGMENT: FIRST CHILD
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getFirstChild = function() {
+  return qx.lang.Array.getFirst(this.getChildren());
+}
+
+qx.Proto.getFirstVisibleChild = function() {
+  return qx.lang.Array.getFirst(this.getVisibleChildren());
+}
+
+qx.Proto.getFirstActiveChild = function(vIgnoreClasses) {
+  return qx.ui.core.Widget.getActiveSiblingHelper(null, this, 1, vIgnoreClasses, "first");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHILDREN MANAGMENT: LAST CHILD
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getLastChild = function() {
+  return qx.lang.Array.getLast(this.getChildren());
+}
+
+qx.Proto.getLastVisibleChild = function() {
+  return qx.lang.Array.getLast(this.getVisibleChildren());
+}
+
+qx.Proto.getLastActiveChild = function(vIgnoreClasses) {
+  return qx.ui.core.Widget.getActiveSiblingHelper(null, this, -1, vIgnoreClasses, "last");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHILDREN MANAGMENT: LOOP UTILS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.forEachChild = function(vFunc)
+{
+  var ch=this.getChildren(), chc, i=-1;
+  while(chc=ch[++i]) {
+    vFunc.call(chc, i);
+  }
+}
+
+qx.Proto.forEachVisibleChild = function(vFunc)
+{
+  var ch=this.getVisibleChildren(), chc, i=-1;
+  while(chc=ch[++i]) {
+    vFunc.call(chc, i);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPEAR/DISAPPEAR MESSAGES FOR CHILDREN
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._beforeAppear = function()
+{
+  qx.ui.core.Widget.prototype._beforeAppear.call(this);
+
+  this.forEachVisibleChild(function() {
+    if (this.isAppearRelevant()) {
+      this._beforeAppear();
+    }
+  });
+}
+
+qx.Proto._afterAppear = function()
+{
+  qx.ui.core.Widget.prototype._afterAppear.call(this);
+
+  this.forEachVisibleChild(function() {
+    if (this.isAppearRelevant()) {
+      this._afterAppear();
+    }
+  });
+}
+
+qx.Proto._beforeDisappear = function()
+{
+  qx.ui.core.Widget.prototype._beforeDisappear.call(this);
+
+  this.forEachVisibleChild(function() {
+    if (this.isAppearRelevant()) {
+      this._beforeDisappear();
+    }
+  });
+}
+
+qx.Proto._afterDisappear = function()
+{
+  qx.ui.core.Widget.prototype._afterDisappear.call(this);
+
+  this.forEachVisibleChild(function() {
+    if (this.isAppearRelevant()) {
+      this._afterDisappear();
+    }
+  });
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INSERTDOM/REMOVEDOM MESSAGES FOR CHILDREN
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._beforeInsertDom = function()
+{
+  qx.ui.core.Widget.prototype._beforeInsertDom.call(this);
+
+  this.forEachVisibleChild(function() {
+    if (this.isAppearRelevant()) {
+      this._beforeInsertDom();
+    }
+  });
+}
+
+qx.Proto._afterInsertDom = function()
+{
+  qx.ui.core.Widget.prototype._afterInsertDom.call(this);
+
+  this.forEachVisibleChild(function() {
+    if (this.isAppearRelevant()) {
+      this._afterInsertDom();
+    }
+  });
+}
+
+qx.Proto._beforeRemoveDom = function()
+{
+  qx.ui.core.Widget.prototype._beforeRemoveDom.call(this);
+
+  this.forEachVisibleChild(function() {
+    if (this.isAppearRelevant()) {
+      this._beforeRemoveDom();
+    }
+  });
+}
+
+qx.Proto._afterRemoveDom = function()
+{
+  qx.ui.core.Widget.prototype._afterRemoveDom.call(this);
+
+  this.forEachVisibleChild(function() {
+    if (this.isAppearRelevant()) {
+      this._afterRemoveDom();
+    }
+  });
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPLAYBLE HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._handleDisplayableCustom = function(vDisplayable, vParent, vHint)
+{
+  this.forEachChild(function() {
+    this._handleDisplayable();
+  });
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STATE QUEUE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._addChildrenToStateQueue = function()
+{
+  this.forEachVisibleChild(function() {
+    this.addToStateQueue();
+  });
+}
+
+qx.Proto.recursiveAddToStateQueue = function()
+{
+  this.addToStateQueue();
+
+  this.forEachVisibleChild(function() {
+    this.recursiveAddToStateQueue();
+  });
+}
+
+qx.Proto._recursiveAppearanceThemeUpdate = function(vNewAppearanceTheme, vOldAppearanceTheme)
+{
+  qx.ui.core.Widget.prototype._recursiveAppearanceThemeUpdate.call(this, vNewAppearanceTheme, vOldAppearanceTheme);
+
+  this.forEachVisibleChild(function() {
+    this._recursiveAppearanceThemeUpdate(vNewAppearanceTheme, vOldAppearanceTheme);
+  });
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHILDREN QUEUE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._addChildToChildrenQueue = function(vChild)
+{
+  if (!vChild._isInParentChildrenQueue && !vChild._isDisplayable) {
+    this.warn("Ignoring invisible child: " + vChild);
+  }
+
+  if (!vChild._isInParentChildrenQueue && vChild._isDisplayable)
+  {
+    qx.ui.core.Widget.addToGlobalLayoutQueue(this);
+
+    if (!this._childrenQueue) {
+      this._childrenQueue = {};
+    }
+
+    this._childrenQueue[vChild.toHashCode()] = vChild;
+  }
+}
+
+qx.Proto._removeChildFromChildrenQueue = function(vChild)
+{
+  if (this._childrenQueue && vChild._isInParentChildrenQueue)
+  {
+    delete this._childrenQueue[vChild.toHashCode()];
+
+    if (qx.lang.Object.isEmpty(this._childrenQueue)) {
+      qx.ui.core.Widget.removeFromGlobalLayoutQueue(this);
+    }
+  }
+}
+
+qx.Proto._flushChildrenQueue = function()
+{
+  if (!qx.lang.Object.isEmpty(this._childrenQueue))
+  {
+    this.getLayoutImpl().flushChildrenQueue(this._childrenQueue);
+    delete this._childrenQueue;
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LAYOUT QUEUE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._addChildrenToLayoutQueue = function(p)
+{
+  this.forEachChild(function() {
+    this.addToLayoutChanges(p);
+  });
+}
+
+qx.Proto._layoutChild = function(vChild)
+{
+  if (!vChild._isDisplayable)
+  {
+    this.warn("Want to render an invisible child: " + vChild + " -> omitting!");
+    return;
+  }
+
+  // APPLY LAYOUT
+  var vChanges = vChild._layoutChanges;
+
+  // this.debug("Layouting " + vChild + ": " + qx.lang.Object.getKeysAsString(vChanges));
+
+  try
+  {
+    if (vChanges.borderX) {
+      this._applyBorderX(vChild, vChanges);
+    }
+
+    if (vChanges.borderY) {
+      this._applyBorderY(vChild, vChanges);
+    }
+  }
+  catch(ex)
+  {
+    this.error("Could not apply border to child " + vChild, ex);
+  }
+
+  try
+  {
+    if (vChanges.paddingLeft || vChanges.paddingRight) {
+      vChild._applyPaddingX(this, vChanges);
+    }
+
+    if (vChanges.paddingTop || vChanges.paddingBottom) {
+      vChild._applyPaddingY(this, vChanges);
+    }
+  }
+  catch(ex)
+  {
+    this.error("Could not apply padding to child " + vChild, ex);
+  }
+
+
+  // WRAP TO LAYOUT ENGINE
+  try
+  {
+    this.getLayoutImpl().layoutChild(vChild, vChanges);
+  }
+  catch(ex)
+  {
+    this.error("Could not layout child " + vChild + " through layout handler", ex);
+  }
+
+
+  // POST LAYOUT
+  try
+  {
+    vChild._layoutPost(vChanges);
+  }
+  catch(ex)
+  {
+    this.error("Could not post layout child " + vChild, ex);
+  }
+
+
+  // DISPLAY DOM NODE
+  try
+  {
+    // insert dom node (if initial flag enabled)
+    if (vChanges.initial)
+    {
+      vChild._initialLayoutDone = true;
+      qx.ui.core.Widget.addToGlobalDisplayQueue(vChild);
+    }
+  }
+  catch(ex)
+  {
+    this.error("Could not handle display updates from layout flush for child " + vChild, ex);
+  }
+
+
+  // CLEANUP
+  vChild._layoutChanges = {};
+
+  delete vChild._isInParentLayoutQueue;
+  delete this._childrenQueue[vChild.toHashCode()];
+}
+
+qx.Proto._layoutPost = qx.util.Return.returnTrue;
+
+/*!
+  Fix Operas Rendering Bugs
+*/
+if (qx.sys.Client.getInstance().isOpera())
+{
+  qx.Proto._layoutChildOrig = qx.Proto._layoutChild;
+
+  qx.Proto._layoutChild = function(vChild)
+  {
+    if (!vChild._initialLayoutDone || !vChild._layoutChanges.borderX || !vChild._layoutChanges.borderY) {
+      return this._layoutChildOrig(vChild);
+    }
+
+    var vStyle = vChild.getElement().style;
+
+    var vOldDisplay = vStyle.display;
+    vStyle.display = "none";
+    var vRet = this._layoutChildOrig(vChild);
+    vStyle.display = vOldDisplay;
+
+    return vRet;
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DIMENSION CACHE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._computePreferredInnerWidth = function() {
+  return this.getLayoutImpl().computeChildrenNeededWidth();
+}
+
+qx.Proto._computePreferredInnerHeight = function() {
+  return this.getLayoutImpl().computeChildrenNeededHeight();
+}
+
+qx.Proto._changeInnerWidth = function(vNew, vOld)
+{
+  var vLayout = this.getLayoutImpl();
+
+  if (vLayout.invalidateChildrenFlexWidth) {
+    vLayout.invalidateChildrenFlexWidth();
+  }
+
+  this.forEachVisibleChild(function()
+  {
+    if (vLayout.updateChildOnInnerWidthChange(this) && this._recomputeBoxWidth())
+    {
+      this._recomputeOuterWidth();
+      this._recomputeInnerWidth();
+    }
+  });
+}
+
+qx.Proto._changeInnerHeight = function(vNew, vOld)
+{
+  var vLayout = this.getLayoutImpl();
+
+  if (vLayout.invalidateChildrenFlexHeight) {
+    vLayout.invalidateChildrenFlexHeight();
+  }
+
+  this.forEachVisibleChild(function()
+  {
+    if (vLayout.updateChildOnInnerHeightChange(this) && this._recomputeBoxHeight())
+    {
+      this._recomputeOuterHeight();
+      this._recomputeInnerHeight();
+    }
+  });
+}
+
+qx.Proto.getInnerWidthForChild = function(vChild) {
+  return this.getInnerWidth();
+}
+
+qx.Proto.getInnerHeightForChild = function(vChild) {
+  return this.getInnerHeight();
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  WIDGET FROM POINT SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getWidgetFromPointHelper = function(x, y)
+{
+  var ch = this.getChildren();
+
+  for (var chl=ch.length, i=0; i<chl; i++) {
+    if (qx.dom.ElementFromPoint.getElementAbsolutePointChecker(ch[i].getElement(), x, y)) {
+      return ch[i].getWidgetFromPointHelper(x, y);
+    }
+  }
+
+  return this;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CLONE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._cloneRecursive = function(cloneInstance)
+{
+  var ch = this.getChildren();
+  var chl = ch.length;
+  var cloneChild;
+
+  for (var i=0; i<chl; i++)
+  {
+    cloneChild = ch[i].clone(true);
+    cloneInstance.add(cloneChild);
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  REMAPPING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._remappingChildTable = [ "add", "remove", "addAt", "addAtBegin", "addAtEnd", "removeAt", "addBefore", "addAfter", "removeAll" ];
+qx.Proto._remapStart = "return this._remappingChildTarget.";
+qx.Proto._remapStop = ".apply(this._remappingChildTarget, arguments)";
+
+qx.Proto.remapChildrenHandlingTo = function(vTarget)
+{
+  var t = this._remappingChildTable;
+
+  this._remappingChildTarget = vTarget;
+
+  for (var i=0, l=t.length, s; i<l; i++) {
+    s = t[i]; this[s] = new Function(qx.ui.core.Parent.prototype._remapStart + s + qx.ui.core.Parent.prototype._remapStop);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if (this._layoutImpl)
+  {
+    this._layoutImpl.dispose();
+    this._layoutImpl = null;
+  }
+
+  for (var i in this._childrenQueue) {
+    delete this._childrenQueue[i];
+  }
+
+  this._childrenQueue = null;
+  this._remappingChildTable = null;
+  this._remappingChildTarget = null;
+
+  if (this._children)
+  {
+    var chl = this._children.length;
+
+    for (var i=chl-1; i>=0; i--)
+    {
+      this._children[i].dispose();
+      this._children[i] = null;
+    }
+
+    this._children = null;
+  }
+
+  delete this._cachedVisibleChildren;
+
+  // Remove Key Handler
+  if (this.getFocusHandler())
+  {
+    this.removeEventListener("keydown", this._onfocuskeyevent);
+    this.removeEventListener("keypress", this._onfocuskeyevent);
+
+    this.forceFocusHandler(null);
+  }
+
+  return qx.ui.core.Widget.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/ScrollBar.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/ScrollBar.js
new file mode 100644 (file)
index 0000000..c4630fb
--- /dev/null
@@ -0,0 +1,260 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+/**
+ * A scroll bar.
+ *
+ * @param horizontal {boolean ? false} whether the scroll bar should be
+ *    horizontal. If false it will be vertical.
+ */
+qx.OO.defineClass("qx.ui.core.ScrollBar", qx.ui.layout.BoxLayout,
+function(horizontal) {
+  qx.ui.layout.BoxLayout.call(this, horizontal ? "horizontal" : "vertical");
+
+  this._horizontal = (horizontal == true);
+
+  this._scrollBar = new qx.ui.layout.CanvasLayout;
+  if (qx.sys.Client.getInstance().isGecko()) {
+    // NOTE: We have to force not using position:absolute, because this causes
+    //     strange looking scrollbars in some cases (e.g. in Firefox under
+    //     Linux the horizontal scrollbar is too high)
+    this._scrollBar.setStyleProperty("position", "");
+  }
+  this._scrollBar.setOverflow(horizontal ? "scrollX" : "scrollY");
+  this._scrollBar.enableInlineEvent("scroll");
+  this._scrollBar.addEventListener("scroll", this._onscroll, this);
+
+  this._scrollContent = new qx.ui.basic.Terminator;
+  if (qx.sys.Client.getInstance().isGecko()) {
+    this._scrollContent.setStyleProperty("position", "");
+  }
+  this._scrollBar.add(this._scrollContent);
+
+  if (this._horizontal) {
+    this._scrollContent.setHeight(5);
+    this._scrollBar.setWidth("100%");
+    this._scrollBar.setHeight(this._getScrollBarWidth());
+
+    // IE needs that the scrollbar element has a width of +1
+    if (qx.sys.Client.getInstance().isMshtml()) {
+      this.setHeight(this._getScrollBarWidth());
+      this.setOverflow("hidden");
+      this._scrollBar.setHeight(this._getScrollBarWidth() + 1);
+      this._scrollBar.setTop(-1);
+    }
+  } else {
+    this._scrollContent.setWidth(5);
+    this._scrollBar.setHeight("100%");
+    this._scrollBar.setWidth(this._getScrollBarWidth());
+
+    // IE needs that the scrollbar element has a width of +1
+    if (qx.sys.Client.getInstance().isMshtml()) {
+      this.setWidth(this._getScrollBarWidth());
+      this.setOverflow("hidden");
+      this._scrollBar.setWidth(this._getScrollBarWidth() + 1);
+      this._scrollBar.setLeft(-1);
+    }
+  }
+
+  this.add(this._scrollBar);
+
+  this.setMaximum(0);
+});
+
+/**
+ * The current value of the scroll bar. This value is between 0 and
+ * (maxium - size), where size is the width of a horizontal resp. the height of
+ * a vertical scroll bar in pixels.
+ *
+ * @see #maximum
+ */
+qx.OO.addProperty({ name:"value", type:"number", defaultValue:0, allowNull:false });
+
+/**
+ * The maximum value of the scroll bar. Note that the size of the scroll bar is
+ * substracted.
+ *
+ * @see #value
+ */
+qx.OO.addProperty({ name:"maximum", type:"number", allowNull:false });
+
+/**
+ * Whether to merge consecutive scroll event. If true, events will be collected
+ * until the user stops scrolling, so the scroll bar itself will move smoothly
+ * and the scrolled content will update asynchroniously.
+ */
+qx.OO.addProperty({ name:"mergeEvents", type:"boolean", defaultValue:false, allowNull:false });
+
+
+// property checker
+qx.Proto._checkValue = function(propValue, propData) {
+  var innerSize = !this.getElement() ? 0 :
+    (this._horizontal ? this.getInnerWidth() : this.getInnerHeight());
+
+  // NOTE: We can't use Number.limit here because our maximum may get negative
+  //       (when the scrollbar isn't needed). In this case Number.limit returns
+  //       this negative maximum instead of 0. But we need that the minimum is
+  //       stronger than the maximum.
+  //       -> We use Math.max and Math.min
+  return Math.max(0, Math.min(this.getMaximum() - innerSize, propValue));
+}
+
+
+// property modifier
+qx.Proto._modifyValue = function(propValue, propOldValue, propData) {
+  if (! this._internalValueChange && this._isCreated) {
+    this._positionKnob(propValue);
+  }
+  return true;
+}
+
+
+// property modifier
+qx.Proto._modifyMaximum = function(propValue, propOldValue, propData) {
+  if (this._horizontal) {
+    this._scrollContent.setWidth(propValue);
+  } else {
+    this._scrollContent.setHeight(propValue);
+  }
+
+  // recheck the value
+  this.setValue(this._checkValue(this.getValue()));
+
+  return true;
+}
+
+
+// property modifier
+qx.Proto._modifyVisibility = function(propValue, propOldValue, propData) {
+  if (! propValue) {
+    this._positionKnob(0);
+  } else {
+    this._positionKnob(this.getValue());
+  }
+
+  return qx.ui.layout.BoxLayout.prototype._modifyVisibility.call(this, propValue, propOldValue, propData);
+};
+
+
+// overridden
+qx.Proto._computePreferredInnerWidth = function() {
+  return this._horizontal ? 0 : this._getScrollBarWidth();
+}
+
+
+// overridden
+qx.Proto._computePreferredInnerHeight = function() {
+  return this._horizontal ? this._getScrollBarWidth() : 0;
+}
+
+
+/**
+ * Gets the width of vertical scroll bar.
+ *
+ * @return {int} the width in pixels.
+ */
+qx.Proto._getScrollBarWidth = function() {
+  // Auto-detect the scrollbar width
+  if (qx.ui.core.ScrollBar._scrollBarWidth == null) {
+    var dummy = document.createElement("div");
+    dummy.style.width = "100px";
+    dummy.style.height = "100px";
+    dummy.style.overflow = "scroll";
+    dummy.style.visibility = "hidden";
+    document.body.appendChild(dummy);
+    qx.ui.core.ScrollBar._scrollBarWidth = dummy.offsetWidth - dummy.clientWidth;
+    document.body.removeChild(dummy);
+  }
+  return qx.ui.core.ScrollBar._scrollBarWidth;
+}
+
+
+/**
+ * Event handler. Called when the user scrolled.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onscroll = function(evt) {
+  var value = this._horizontal ? this._scrollBar.getScrollLeft() : this._scrollBar.getScrollTop();
+  if (this.getMergeEvents()) {
+    this._lastScrollEventValue = value;
+    window.clearTimeout(this._setValueTimerId);
+    var self = this;
+    this._setValueTimerId = window.setTimeout(function() {
+      self._internalValueChange = true;
+      self.setValue(self._lastScrollEventValue);
+      self._internalValueChange = false;
+      qx.ui.core.Widget.flushGlobalQueues();
+    }, qx.ui.core.ScrollBar.EVENT_DELAY);
+  } else {
+    this._internalValueChange = true;
+    this.setValue(value);
+    this._internalValueChange = false;
+    qx.ui.core.Widget.flushGlobalQueues();
+  }
+}
+
+
+/**
+ * Positions the scroll bar knob at a certain value.
+ *
+ * @param value {int} The value where to postion the scroll bar.
+ */
+qx.Proto._positionKnob = function(value) {
+  if (this._horizontal) {
+    this._scrollBar.setScrollLeft(value);
+  } else {
+    this._scrollBar.setScrollTop(value);
+  }
+}
+
+
+// overridden
+qx.Proto._afterAppear = function() {
+  qx.ui.layout.BoxLayout.prototype._afterAppear.call(this);
+
+  //this.debug("Setting to value: " + this.getValue());
+  this._positionKnob(this.getValue());
+}
+
+
+// overridden
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if (this._scrollContent) {
+    this._scrollContent.dispose();
+    this._scrollContent = null;
+  }
+
+  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
+}
+
+
+/**
+ * The delay when to update the scroll bar value after a scroll event if
+ * {@link #mergeEvents} is true (in milliseconds). All scroll events that arrive
+ * in shorter time will be merged.
+ */
+qx.Class.EVENT_DELAY = 250;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/Widget.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/Widget.js
new file mode 100644 (file)
index 0000000..de775ac
--- /dev/null
@@ -0,0 +1,5703 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#require(qx.renderer.color.ColorCache)
+#require(qx.renderer.border.BorderCache)
+#require(qx.manager.object.AppearanceManager)
+#after(qx.component.init.InterfaceInitComponent)
+#optional(qx.ui.core.Parent)
+#optional(qx.ui.form.Button)
+#optional(qx.client.Timer)
+#optional(qx.client.Command)
+#optional(qx.ui.popup.ToolTip)
+#optional(qx.ui.menu.Menu)
+#optional(qx.ui.basic.Inline)
+
+************************************************************************ */
+
+/**
+ * This is the main widget, all visible objects in the application extend this.
+ *
+ * @event beforeAppear {qx.event.type.Event}
+ * @event appear {qx.event.type.Event}
+ * @event beforeDisappear {qx.event.type.Event}
+ * @event disappear {qx.event.type.Event}
+ * @event beforeInsertDom {qx.event.type.Event}
+ * @event insertDom {qx.event.type.Event}
+ * @event beforeRemoveDom {qx.event.type.Event}
+ * @event removeDom {qx.event.type.Event}
+ * @event create {qx.event.type.Event}
+ * @event execute {qx.event.type.Event}
+ * @event FADE_FINISHED {qx.event.type.DataEvent}
+ * @event mouseover {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
+ * @event mousemove {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
+ * @event mouseout {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
+ * @event mousedown {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
+ * @event mouseup {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
+ * @event mousewheel {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
+ * @event click {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
+ * @event dblclick {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
+ * @event contextmenu {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
+ * @event keydown {qx.event.type.KeyEvent} (Fired by {@link qx.event.handler.EventHandler})
+ * @event keypress {qx.event.type.KeyEvent} (Fired by {@link qx.event.handler.EventHandler})
+ * @event keyinput {qx.event.type.KeyEvent} (Fired by {@link qx.event.handler.EventHandler})
+ * @event keyup {qx.event.type.KeyEvent} (Fired by {@link qx.event.handler.EventHandler})
+ * @event focusout {qx.event.type.FocusEvent} (Fired by {@link qx.ui.core.Parent})
+ * @event focusin {qx.event.type.FocusEvent} (Fired by {@link qx.ui.core.Parent})
+ * @event blur {qx.event.type.FocusEvent} (Fired by {@link qx.ui.core.Parent})
+ * @event focus {qx.event.type.FocusEvent} (Fired by {@link qx.ui.core.Parent})
+ */
+qx.OO.defineClass("qx.ui.core.Widget", qx.core.Target,
+function()
+{
+  if (this.classname == qx.ui.core.Widget.ABSTRACT_CLASS) {
+    throw new Error("Please omit the usage of qx.ui.core.Widget directly. Choose between qx.ui.core.Parent and qx.ui.basic.Terminator instead!");
+  }
+
+  qx.core.Target.call(this, true);
+
+
+  // ************************************************************************
+  //   HTML MAPPING DATA STRUCTURES
+  // ************************************************************************
+  // Allows the user to setup styles and attributes without a
+  // need to have the target element created already.
+  /*
+  this._htmlProperties = { className : this.classname }
+  this._htmlAttributes = { qxhashcode : this._hashCode }
+  */
+  this._styleProperties = { position : "absolute" }
+
+
+  // ************************************************************************
+  //   LAYOUT CHANGES
+  // ************************************************************************
+  this._layoutChanges = {};
+
+
+  // ************************************************************************
+  //   APPEARANCE
+  // ************************************************************************
+  this._states = {};
+  this._applyInitialAppearance();
+});
+
+qx.Class.ABSTRACT_CLASS = "qx.ui.core.Widget";
+
+// Will be calculated later (TODO: Move to qx.Dom?)
+qx.Class.SCROLLBAR_SIZE = 16;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault("enableQueueDebug", false);
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  BASIC PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  The parent widget (the real object, no ID or something)
+*/
+qx.OO.addProperty({ name : "parent", type : "object", instance : "qx.ui.core.Parent", defaultValue : null });
+
+/*!
+  The element node (if the widget is created, otherwise null)
+*/
+qx.OO.addProperty({ name : "element" });
+
+/*!
+  Simple and fast switch of the visibility of a widget.
+*/
+qx.OO.addProperty({ name : "visibility", type : "boolean", defaultValue : true });
+
+/*!
+  If the widget should be displayed. Use this property instead of visibility if the change
+  in visibility should have effects on the parent widget.
+*/
+qx.OO.addProperty({ name : "display", type : "boolean", defaultValue : true });
+
+/*!
+  If you switch this to true, the widget doesn't handle
+  events directly. It will redirect them to the parent
+  widget.
+*/
+qx.OO.addProperty({ name : "anonymous", type : "boolean", defaultValue : false, getAlias : "isAnonymous" });
+
+/*!
+  The tagname of the element which should automatically be created
+*/
+qx.OO.addProperty({ name : "tagName", type : "string", defaultValue : "div" });
+
+/*!
+  This is used by many layout managers to control the individual horizontal alignment of this widget inside this parent.
+
+  This should be used with caution since in some cases
+  this might give unrespected results.
+*/
+qx.OO.addProperty({ name : "horizontalAlign", type : "string" });
+
+/*!
+  This is used by many layout managers to control the individual vertical alignment of this widget inside this parent.
+
+  This should be used with caution since in some cases
+  this might give unrespected results.
+*/
+qx.OO.addProperty({ name : "verticalAlign", type : "string" });
+
+/*!
+  Should this widget be stretched on the x-axis if the layout handler will do this?
+  Used by some layout handlers (qx.ui.layout.BoxLayout, ...).
+*/
+qx.OO.addProperty({ name : "allowStretchX", type : "boolean", defaultValue : true });
+
+/*!
+  Should this widget be stretched on the y-axis if the layout handler will do this?
+  Used by some layout handlers (qx.ui.layout.BoxLayout, ...).
+*/
+qx.OO.addProperty({ name : "allowStretchY", type : "boolean", defaultValue : true });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STYLE PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Mapping to native style property z-index.
+
+  This should be used with caution since in some cases
+  this might give unrespected results.
+*/
+qx.OO.addProperty({ name : "zIndex", type : "number" });
+
+/*!
+  The backgroundColor style property of the rendered widget.
+  As input are allowed any instance of qx.renderer.color.Color or a string which defines the color itself.
+*/
+qx.OO.addProperty({ name : "backgroundColor", type : "object", instance : "qx.renderer.color.Color", convert : qx.renderer.color.ColorCache, allowMultipleArguments : true });
+
+/*!
+  The color style property of the rendered widget.
+  As input are allowed any instance of qx.renderer.color.Color or a string which defines the color itself.
+*/
+qx.OO.addProperty({ name : "color", type : "object", instance : "qx.renderer.color.Color", convert : qx.renderer.color.ColorCache, allowMultipleArguments : true });
+
+/*!
+  The border property describes how to paint the border on the widget.
+
+  This should be used with caution since in some cases (mostly complex widgets)
+  this might give unrespected results.
+*/
+qx.OO.addProperty({ name : "border", type : "object", instance : "qx.renderer.border.Border", convert : qx.renderer.border.BorderCache, allowMultipleArguments : true });
+
+/*!
+  Mapping to native style property opacity.
+
+  The uniform opacity setting to be applied across an entire object. Behaves like the new CSS-3 Property.
+  Any values outside the range 0.0 (fully transparent) to 1.0 (fully opaque) will be clamped to this range.
+*/
+qx.OO.addProperty({ name : "opacity", type : "number" });
+
+/*!
+  Mapping to native style property cursor.
+
+  The name of the cursor to show when the mouse pointer is over the widget.
+  This is any valid CSS2 cursor name defined by W3C.
+
+  The following values are possible:
+  <ul><li>default</li>
+  <li>crosshair</li>
+  <li>pointer (hand is the ie name and will mapped to pointer in non-ie).</li>
+  <li>move</li>
+  <li>n-resize</li>
+  <li>ne-resize</li>
+  <li>e-resize</li>
+  <li>se-resize</li>
+  <li>s-resize</li>
+  <li>sw-resize</li>
+  <li>w-resize</li>
+  <li>nw-resize</li>
+  <li>text</li>
+  <li>wait</li>
+  <li>help </li>
+  <li>url([file]) = self defined cursor, file should be an ANI- or CUR-type</li>
+  </ul>
+*/
+qx.OO.addProperty({ name : "cursor", type : "string" });
+
+/*!
+  Mapping to native style property background-image.
+
+  The URI of the image file to use as background image.
+*/
+qx.OO.addProperty({ name : "backgroundImage", type : "string" });
+
+/**
+ * Describes how to handle content that is too large to fit inside the widget.
+ *
+ * Overflow modes:
+ * * hidden: The content is clipped
+ * * auto: Scroll bars are shown as needed
+ * * scroll: Scroll bars are always shown. Even if there is enough room for the content inside the widget.
+ * * scrollX: Scroll bars for the X-Axis are always shown. Even if there is enough room for the content inside the widget.
+ * * scrollY: Scroll bars for the Y-Axis are always shown. Even if there is enough room for the content inside the widget.
+ */
+qx.OO.addProperty({ name : "overflow", type : "string", addToQueue : true });
+
+/*!
+  Clipping of the widget (left)
+*/
+qx.OO.addProperty({ name : "clipLeft", type : "number", impl : "clip" });
+
+/*!
+  Clipping of the widget (top)
+*/
+qx.OO.addProperty({ name : "clipTop", type : "number", impl : "clip" });
+
+/*!
+  Clipping of the widget (width)
+*/
+qx.OO.addProperty({ name : "clipWidth", type : "number", impl : "clip" });
+
+/*!
+  Clipping of the widget (height)
+*/
+qx.OO.addProperty({ name : "clipHeight", type : "number", impl : "clip" });
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MANAGMENT PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Set this to a positive value makes the widget able to get the focus.
+  It even is reachable through the usage of the tab-key.
+
+  Widgets with the same tabIndex are handled through there position
+  in the document.
+*/
+qx.OO.addProperty({ name : "tabIndex", type : "number", defaultValue : -1 });
+
+/*!
+  If the focus outline should be hidden.
+*/
+qx.OO.addProperty({ name : "hideFocus", type : "boolean", defaultValue : false });
+
+/*!
+  Use DOM focussing (focus() and blur() methods of DOM nodes)
+*/
+qx.OO.addProperty({ name : "enableElementFocus", type : "boolean", defaultValue : true });
+
+/*!
+  Handle focus state of this widget.
+
+  someWidget.setFocused(true) set the current focus to this widget.
+  someWidget.setFocused(false) remove the current focus and leave it blank.
+
+  Normally you didn't need to set this directly.
+*/
+qx.OO.addProperty({ name : "focused", type : "boolean", defaultValue : false });
+
+/*!
+  Toggle the possibility to select the element of this widget.
+*/
+qx.OO.addProperty({ name : "selectable", type : "boolean", defaultValue : true, getAlias : "isSelectable" });
+
+/*!
+  Contains the tooltip object connected to the widget.
+*/
+qx.OO.addProperty({ name : "toolTip", type : "object", instance : "qx.ui.popup.ToolTip" });
+
+/*!
+  Contains the context menu object connected to the widget. (Need real implementation)
+*/
+qx.OO.addProperty({ name : "contextMenu", type : "object", instance : "qx.ui.menu.Menu" });
+
+/*!
+  Capture all events and map them to this widget
+*/
+qx.OO.addProperty({ name : "capture", type : "boolean", defaultValue : false });
+
+/*!
+  Contains the support drop types for drag and drop support
+*/
+qx.OO.addProperty({ name : "dropDataTypes" });
+
+/*!
+  A command called if the widget should be excecuted (a placeholder for buttons, ...)
+*/
+qx.OO.addProperty({ name : "command", type : "object", instance : "qx.client.Command" });
+
+/*!
+  Appearance of the widget
+*/
+qx.OO.addProperty({ name : "appearance", type : "string" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MARGIN/PADDING PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Margin of the widget (top)
+*/
+qx.OO.addProperty({ name : "marginTop", type : "number", addToQueue : true, impl : "marginY" });
+
+/*!
+  Margin of the widget (right)
+*/
+qx.OO.addProperty({ name : "marginRight", type : "number", addToQueue : true, impl : "marginX" });
+
+/*!
+  Margin of the widget (bottom)
+*/
+qx.OO.addProperty({ name : "marginBottom", type : "number", addToQueue : true, impl : "marginY" });
+
+/*!
+  Margin of the widget (left)
+*/
+qx.OO.addProperty({ name : "marginLeft", type : "number", addToQueue : true, impl : "marginX" });
+
+
+/*!
+  Padding of the widget (top)
+*/
+qx.OO.addProperty({ name : "paddingTop", type : "number", addToQueue : true, impl : "paddingY" });
+
+/*!
+  Padding of the widget (right)
+*/
+qx.OO.addProperty({ name : "paddingRight", type : "number", addToQueue : true, impl : "paddingX" });
+
+/*!
+  Padding of the widget (bottom)
+*/
+qx.OO.addProperty({ name : "paddingBottom", type : "number", addToQueue : true, impl : "paddingY" });
+
+/*!
+  Padding of the widget (left)
+*/
+qx.OO.addProperty({ name : "paddingLeft", type : "number", addToQueue : true, impl : "paddingX" });
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HORIZONAL DIMENSION PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  The distance from the outer left border to the parent left area edge.
+
+  You could only set two of the three horizonal dimension properties (boxLeft, boxRight, boxWidth)
+  at the same time. This will be omitted during the setup of the new third value. To reset a value
+  you didn't want anymore, set it to null.
+*/
+qx.OO.addProperty({ name : "left", addToQueue : true, unitDetection : "pixelPercent" });
+
+/*!
+  The distance from the outer right border to the parent right area edge.
+
+  You could only set two of the three horizonal dimension properties (boxLeft, boxRight, boxWidth)
+  at the same time. This will be omitted during the setup of the new third value. To reset a value
+  you didn't want anymore, set it to null.
+*/
+qx.OO.addProperty({ name : "right", addToQueue : true, unitDetection : "pixelPercent" });
+
+/*!
+  The width of the box (including padding and border).
+
+  You could only set two of the three horizonal dimension properties (boxLeft, boxRight, boxWidth)
+  at the same time. This will be omitted during the setup of the new third value. To reset a value
+  you didn't want anymore, set it to null.
+*/
+qx.OO.addProperty({ name : "width", addToQueue : true, unitDetection : "pixelPercentAutoFlex" });
+
+/*!
+  The minimum width of the box (including padding and border).
+
+  Set this to omit the shrinking of the box width under this value.
+*/
+qx.OO.addProperty({ name : "minWidth", addToQueue : true, unitDetection : "pixelPercentAuto" });
+
+/*!
+  The maximum width of the box (including padding and border).
+
+  Set this to omit the expanding of the box width above this value.
+*/
+qx.OO.addProperty({ name : "maxWidth", addToQueue : true, unitDetection : "pixelPercentAuto" });
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  VERTICAL DIMENSION PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  The distance from the outer top border to the parent top area edge.
+
+  You could only set two of the three vertical dimension properties (boxTop, boxBottom, boxHeight)
+  at the same time. This will be omitted during the setup of the new third value. To reset a value
+  you didn't want anymore, set it to null.
+*/
+qx.OO.addProperty({ name : "top", addToQueue : true, unitDetection : "pixelPercent" });
+
+/*!
+  The distance from the outer bottom border to the parent bottom area edge.
+
+  You could only set two of the three vertical dimension properties (boxTop, boxBottom, boxHeight)
+  at the same time. This will be omitted during the setup of the new third value. To reset a value
+  you didn't want anymore, set it to null.
+*/
+qx.OO.addProperty({ name : "bottom", addToQueue : true, unitDetection : "pixelPercent" });
+
+/*!
+  The height of the box (including padding and border).
+
+  You could only set two of the three vertical dimension properties (boxTop, boxBottom, boxHeight)
+  at the same time. This will be omitted during the setup of the new third value. To reset a value
+  you didn't want anymore, set it to null.
+*/
+qx.OO.addProperty({ name : "height", addToQueue : true, unitDetection : "pixelPercentAutoFlex" });
+
+/*!
+  The minimum height of the box (including padding and border).
+
+  Set this to omit the shrinking of the box height under this value.
+*/
+qx.OO.addProperty({ name : "minHeight", addToQueue : true, unitDetection : "pixelPercentAuto" });
+
+/*!
+  The maximum height of the box (including padding and border).
+
+  Set this to omit the expanding of the box height above this value.
+*/
+qx.OO.addProperty({ name : "maxHeight", addToQueue : true, unitDetection : "pixelPercentAuto" });
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTY GROUPS
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addPropertyGroup({ name : "location", members : [ "left", "top" ]});
+qx.OO.addPropertyGroup({ name : "dimension", members : [ "width", "height" ]});
+
+qx.OO.addPropertyGroup({ name : "space", members : [ "left", "width", "top", "height" ]});
+qx.OO.addPropertyGroup({ name : "edge", members : [ "top", "right", "bottom", "left" ], mode : "shorthand" });
+
+qx.OO.addPropertyGroup({ name : "padding", members : [ "paddingTop", "paddingRight", "paddingBottom", "paddingLeft" ], mode: "shorthand" });
+qx.OO.addPropertyGroup({ name : "margin", members : [ "marginTop", "marginRight", "marginBottom", "marginLeft" ], mode: "shorthand" });
+
+qx.OO.addPropertyGroup({ name : "heights", members : [ "minHeight", "height", "maxHeight" ]});
+qx.OO.addPropertyGroup({ name : "widths", members : [ "minWidth", "width", "maxWidth" ]});
+
+qx.OO.addPropertyGroup({ name : "align", members : [ "horizontalAlign", "verticalAlign" ]});
+qx.OO.addPropertyGroup({ name : "stretch", members : [ "stretchX", "stretchY" ]});
+
+qx.OO.addPropertyGroup({ name : "clipLocation", members : [ "clipLeft", "clipTop" ]});
+qx.OO.addPropertyGroup({ name : "clipDimension", members : [ "clipWidth", "clipHeight" ]});
+qx.OO.addPropertyGroup({ name : "clip", members : [ "clipLeft", "clipTop", "clipWidth", "clipHeight" ]});
+
+
+
+
+
+
+
+
+/* ************************************************************************
+   Class data, properties and methods
+************************************************************************ */
+
+/*
+---------------------------------------------------------------------------
+  ALL QUEUES
+---------------------------------------------------------------------------
+*/
+
+if (qx.Settings.getValueOfClass("qx.ui.core.Widget", "enableQueueDebug"))
+{
+  qx.ui.core.Widget.flushGlobalQueues = function()
+  {
+    if (qx.ui.core.Widget._inFlushGlobalQueues || !qx.core.Init.getInstance().getComponent().isUiReady()) {
+      return;
+    }
+
+    if (!(qx.ui.core.Widget._globalWidgetQueue.length > 0 || qx.ui.core.Widget._globalElementQueue.length > 0 ||
+        qx.ui.core.Widget._globalStateQueue.length > 0  || qx.ui.core.Widget._globalJobQueue.length > 0 ||
+        qx.ui.core.Widget._globalLayoutQueue.length > 0 || qx.ui.core.Widget._fastGlobalDisplayQueue.length > 0 ||
+        !qx.lang.Object.isEmpty(qx.ui.core.Widget._lazyGlobalDisplayQueue))) {
+      return;
+    }
+
+    var globalWidgetQueueLength      = qx.ui.core.Widget._globalWidgetQueue.length;
+    var globalElementQueueLength     = qx.ui.core.Widget._globalElementQueue.length;
+    var globalStateQueueLength       = qx.ui.core.Widget._globalStateQueue.length;
+    var globalJobQueueLength         = qx.ui.core.Widget._globalJobQueue.length;
+    var globalLayoutQueueLength      = qx.ui.core.Widget._globalLayoutQueue.length;
+    var fastGlobalDisplayQueueLength = qx.ui.core.Widget._fastGlobalDisplayQueue.length;
+    var lazyGlobalDisplayQueueLength = qx.ui.core.Widget._lazyGlobalDisplayQueue ? qx.ui.core.Widget._lazyGlobalDisplayQueue.length : 0;
+
+    // Also used for inline event handling to seperate 'real' events
+    qx.ui.core.Widget._inFlushGlobalQueues = true;
+
+    var vStart;
+
+    vStart = (new Date).valueOf();
+    qx.ui.core.Widget.flushGlobalWidgetQueue();
+    var vWidgetDuration = (new Date).valueOf() - vStart;
+
+    vStart = (new Date).valueOf();
+    qx.ui.core.Widget.flushGlobalStateQueue();
+    var vStateDuration = (new Date).valueOf() - vStart;
+
+    vStart = (new Date).valueOf();
+    qx.ui.core.Widget.flushGlobalElementQueue();
+    var vElementDuration = (new Date).valueOf() - vStart;
+
+    vStart = (new Date).valueOf();
+    qx.ui.core.Widget.flushGlobalJobQueue();
+    var vJobDuration = (new Date).valueOf() - vStart;
+
+    vStart = (new Date).valueOf();
+    qx.ui.core.Widget.flushGlobalLayoutQueue();
+    var vLayoutDuration = (new Date).valueOf() - vStart;
+
+    vStart = (new Date).valueOf();
+    qx.ui.core.Widget.flushGlobalDisplayQueue();
+    var vDisplayDuration = (new Date).valueOf() - vStart;
+
+    var vSum = vWidgetDuration + vStateDuration + vElementDuration + vJobDuration + vLayoutDuration + vDisplayDuration;
+
+    if (vSum > 0)
+    {
+      var logger = qx.dev.log.Logger.getClassLogger(qx.ui.core.Widget);
+      logger.debug("Flush Global Queues");
+      logger.debug("Widgets: " + vWidgetDuration + "ms (" + globalWidgetQueueLength + ")");
+      logger.debug("State: " + vStateDuration + "ms (" + globalStateQueueLength + ")");
+      logger.debug("Element: " + vElementDuration + "ms (" + globalElementQueueLength + ")");
+      logger.debug("Job: " + vJobDuration + "ms (" + globalJobQueueLength + ")");
+      logger.debug("Layout: " + vLayoutDuration + "ms (" + globalLayoutQueueLength + ")");
+      logger.debug("Display: " + vDisplayDuration + "ms (fast:" + fastGlobalDisplayQueueLength + ",lazy:" + lazyGlobalDisplayQueueLength + ")");
+
+      window.status = "Flush: Widget:" + vWidgetDuration + " State:" + vStateDuration + " Element:" + vElementDuration + " Job:" + vJobDuration + " Layout:" + vLayoutDuration + " Display:" + vDisplayDuration;
+    }
+
+    delete qx.ui.core.Widget._inFlushGlobalQueues;
+  }
+}
+else
+{
+  qx.ui.core.Widget.flushGlobalQueues = function()
+  {
+    if (qx.ui.core.Widget._inFlushGlobalQueues || !qx.core.Init.getInstance().getComponent().isUiReady()) {
+      return;
+    }
+
+    // Also used for inline event handling to seperate 'real' events
+    qx.ui.core.Widget._inFlushGlobalQueues = true;
+
+    qx.ui.core.Widget.flushGlobalWidgetQueue();
+    qx.ui.core.Widget.flushGlobalStateQueue();
+    qx.ui.core.Widget.flushGlobalElementQueue();
+    qx.ui.core.Widget.flushGlobalJobQueue();
+    qx.ui.core.Widget.flushGlobalLayoutQueue();
+    qx.ui.core.Widget.flushGlobalDisplayQueue();
+
+    delete qx.ui.core.Widget._inFlushGlobalQueues;
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  WIDGET QUEUE
+
+  Allows widgets to register to the widget queue to do multiple things
+  before the other queues will be flushed
+---------------------------------------------------------------------------
+*/
+
+qx.ui.core.Widget._globalWidgetQueue = [];
+
+qx.ui.core.Widget.addToGlobalWidgetQueue = function(vWidget)
+{
+  if (!vWidget._isInGlobalWidgetQueue && vWidget._isDisplayable)
+  {
+    qx.ui.core.Widget._globalWidgetQueue.push(vWidget);
+    vWidget._isInGlobalWidgetQueue = true;
+  }
+}
+
+qx.ui.core.Widget.removeFromGlobalWidgetQueue = function(vWidget)
+{
+  if (vWidget._isInGlobalWidgetQueue)
+  {
+    qx.lang.Array.remove(qx.ui.core.Widget._globalWidgetQueue, vWidget);
+    delete vWidget._isInGlobalWidgetQueue;
+  }
+}
+
+qx.ui.core.Widget.flushGlobalWidgetQueue = function()
+{
+  var vQueue=qx.ui.core.Widget._globalWidgetQueue, vLength, vWidget;
+
+  while ((vLength=vQueue.length) > 0)
+  {
+    for (var i=0; i<vLength; i++)
+    {
+      vWidget = vQueue[i];
+
+      vWidget.flushWidgetQueue();
+      delete vWidget._isInGlobalWidgetQueue;
+    }
+
+    vQueue.splice(0, vLength);
+  }
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ELEMENT QUEUE
+
+  Contains the widgets which should be (dom-)created
+---------------------------------------------------------------------------
+*/
+
+qx.ui.core.Widget._globalElementQueue = [];
+
+qx.ui.core.Widget.addToGlobalElementQueue = function(vWidget)
+{
+  if (!vWidget._isInGlobalElementQueue && vWidget._isDisplayable)
+  {
+    qx.ui.core.Widget._globalElementQueue.push(vWidget);
+    vWidget._isInGlobalElementQueue = true;
+  }
+}
+
+qx.ui.core.Widget.removeFromGlobalElementQueue = function(vWidget)
+{
+  if (vWidget._isInGlobalElementQueue)
+  {
+    qx.lang.Array.remove(qx.ui.core.Widget._globalElementQueue, vWidget);
+    delete vWidget._isInGlobalElementQueue;
+  }
+}
+
+qx.ui.core.Widget.flushGlobalElementQueue = function()
+{
+  var vQueue=qx.ui.core.Widget._globalElementQueue, vLength, vWidget;
+
+  while ((vLength=vQueue.length) > 0)
+  {
+    for (var i=0; i<vLength; i++)
+    {
+      vWidget = vQueue[i];
+
+      vWidget._createElementImpl();
+      delete vWidget._isInGlobalElementQueue;
+    }
+
+    vQueue.splice(0, vLength);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STATE QUEUE
+
+  Contains the widgets which recently changed their state
+---------------------------------------------------------------------------
+*/
+
+qx.ui.core.Widget._globalStateQueue = [];
+
+qx.ui.core.Widget.addToGlobalStateQueue = function(vWidget)
+{
+  if (!vWidget._isInGlobalStateQueue && vWidget._isDisplayable)
+  {
+    qx.ui.core.Widget._globalStateQueue.push(vWidget);
+    vWidget._isInGlobalStateQueue = true;
+  }
+}
+
+qx.ui.core.Widget.removeFromGlobalStateQueue = function(vWidget)
+{
+  if (vWidget._isInGlobalStateQueue)
+  {
+    qx.lang.Array.remove(qx.ui.core.Widget._globalStateQueue, vWidget);
+    delete vWidget._isInGlobalStateQueue;
+  }
+}
+
+qx.ui.core.Widget.flushGlobalStateQueue = function()
+{
+  var vQueue=qx.ui.core.Widget._globalStateQueue, vLength, vWidget;
+
+  while ((vLength=vQueue.length) > 0)
+  {
+    for (var i=0; i<vLength; i++)
+    {
+      vWidget = vQueue[i];
+
+      vWidget._applyStateAppearance();
+
+      delete vWidget._isInGlobalStateQueue;
+    }
+
+    vQueue.splice(0, vLength);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  JOBS QUEUE
+
+  Contains the widgets which need a update after they were visible before
+---------------------------------------------------------------------------
+*/
+
+qx.ui.core.Widget._globalJobQueue = [];
+
+qx.ui.core.Widget.addToGlobalJobQueue = function(vWidget)
+{
+  if (!vWidget._isInGlobalJobQueue && vWidget._isDisplayable)
+  {
+    qx.ui.core.Widget._globalJobQueue.push(vWidget);
+    vWidget._isInGlobalJobQueue = true;
+  }
+}
+
+qx.ui.core.Widget.removeFromGlobalJobQueue = function(vWidget)
+{
+  if (vWidget._isInGlobalJobQueue)
+  {
+    qx.lang.Array.remove(qx.ui.core.Widget._globalJobQueue, vWidget);
+    delete vWidget._isInGlobalJobQueue;
+  }
+}
+
+qx.ui.core.Widget.flushGlobalJobQueue = function()
+{
+  var vQueue=qx.ui.core.Widget._globalJobQueue, vLength, vWidget;
+
+  while ((vLength=vQueue.length) > 0)
+  {
+    for (var i=0; i<vLength; i++)
+    {
+      vWidget = vQueue[i];
+
+      vWidget._flushJobQueue(vWidget._jobQueue);
+      delete vWidget._isInGlobalJobQueue;
+    }
+
+    vQueue.splice(0, vLength);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LAYOUT QUEUE
+
+  Contains the parents (qx.ui.core.Parent) of the children which needs layout updates
+---------------------------------------------------------------------------
+*/
+
+qx.ui.core.Widget._globalLayoutQueue = [];
+
+qx.ui.core.Widget.addToGlobalLayoutQueue = function(vParent)
+{
+  if (!vParent._isInGlobalLayoutQueue && vParent._isDisplayable)
+  {
+    qx.ui.core.Widget._globalLayoutQueue.push(vParent);
+    vParent._isInGlobalLayoutQueue = true;
+  }
+}
+
+qx.ui.core.Widget.removeFromGlobalLayoutQueue = function(vParent)
+{
+  if (vParent._isInGlobalLayoutQueue)
+  {
+    qx.lang.Array.remove(qx.ui.core.Widget._globalLayoutQueue, vParent);
+    delete vParent._isInGlobalLayoutQueue;
+  }
+}
+
+qx.ui.core.Widget.flushGlobalLayoutQueue = function()
+{
+  var vQueue=qx.ui.core.Widget._globalLayoutQueue, vLength, vParent;
+
+  while ((vLength=vQueue.length) > 0)
+  {
+    for (var i=0; i<vLength; i++)
+    {
+      vParent = vQueue[i];
+
+      vParent._flushChildrenQueue();
+      delete vParent._isInGlobalLayoutQueue;
+    }
+
+    vQueue.splice(0, vLength);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPLAY QUEUE
+
+  Contains the widgets which should initially become visible
+---------------------------------------------------------------------------
+*/
+
+qx.ui.core.Widget._fastGlobalDisplayQueue = [];
+qx.ui.core.Widget._lazyGlobalDisplayQueues = {};
+
+qx.ui.core.Widget.addToGlobalDisplayQueue = function(vWidget)
+{
+  if (!vWidget._isInGlobalDisplayQueue && vWidget._isDisplayable)
+  {
+    var vParent = vWidget.getParent();
+
+    if (vParent.isSeeable())
+    {
+      var vKey = vParent.toHashCode();
+
+      if (qx.ui.core.Widget._lazyGlobalDisplayQueues[vKey])
+      {
+        qx.ui.core.Widget._lazyGlobalDisplayQueues[vKey].push(vWidget);
+      }
+      else
+      {
+        qx.ui.core.Widget._lazyGlobalDisplayQueues[vKey] = [vWidget];
+      }
+    }
+    else
+    {
+      qx.ui.core.Widget._fastGlobalDisplayQueue.push(vWidget);
+    }
+
+    vWidget._isInGlobalDisplayQueue = true;
+  }
+}
+
+qx.ui.core.Widget.removeFromGlobalDisplayQueue = function(vWidget) {}
+
+qx.ui.core.Widget.flushGlobalDisplayQueue = function()
+{
+  var vKey, vLazyQueue, vWidget, vFragment;
+
+  var vFastQueue = qx.ui.core.Widget._fastGlobalDisplayQueue;
+  var vLazyQueues = qx.ui.core.Widget._lazyGlobalDisplayQueues;
+
+
+
+
+  /* -----------------------------------------------
+      Flush display queues
+  ----------------------------------------------- */
+
+  // Work on fast queue
+  for (var i=0, l=vFastQueue.length; i<l; i++)
+  {
+    vWidget = vFastQueue[i];
+    vWidget.getParent()._getTargetNode().appendChild(vWidget.getElement());
+  }
+
+
+  // Work on lazy queues: Inline widgets
+  if (qx.OO.isAvailable("qx.ui.basic.Inline"))
+  {
+    for (vKey in vLazyQueues)
+    {
+      vLazyQueue = vLazyQueues[vKey];
+
+      for (var i=0; i<vLazyQueue.length; i++)
+      {
+        vWidget = vLazyQueue[i];
+
+        if (vWidget instanceof qx.ui.basic.Inline)
+        {
+          vWidget._beforeInsertDom();
+
+          try
+          {
+            document.getElementById(vWidget.getInlineNodeId()).appendChild(vWidget.getElement());
+          }
+          catch(ex)
+          {
+            vWidget.debug("Could not append to inline id: " + vWidget.getInlineNodeId(), ex);
+          }
+
+          vWidget._afterInsertDom();
+          vWidget._afterAppear();
+
+          // Remove inline widget from queue and fix iterator position
+          qx.lang.Array.remove(vLazyQueue, vWidget);
+          i--;
+
+          // Reset display queue flag
+          delete vWidget._isInGlobalDisplayQueue;
+        }
+      }
+    }
+  }
+
+
+  // Work on lazy queues: Other widgets
+  for (vKey in vLazyQueues)
+  {
+    vLazyQueue = vLazyQueues[vKey];
+
+    // Speed enhancement: Choose a fairly small arbitrary value for the number
+    // of elements that should be added to the parent individually.  If more
+    // than this number of elements is to be added to the parent, we'll create
+    // a document fragment, add the elements to the document fragment, and
+    // then add the whole fragment to the parent en mass (assuming that
+    // creation of a document fragment is supported by the browser).
+    if (document.createDocumentFragment && vLazyQueue.length >= 3)
+    {
+      // creating new document fragment
+      vFragment = document.createDocumentFragment();
+
+      // appending all widget elements to fragment
+      for (var i=0, l=vLazyQueue.length; i<l; i++)
+      {
+        vWidget = vLazyQueue[i];
+
+        vWidget._beforeInsertDom();
+        vFragment.appendChild(vWidget.getElement());
+      }
+
+      // append all fragment data at once to
+      // the already visible parent widget element
+      vLazyQueue[0].getParent()._getTargetNode().appendChild(vFragment);
+
+      for (var i=0, l=vLazyQueue.length; i<l; i++)
+      {
+        vWidget = vLazyQueue[i];
+        vWidget._afterInsertDom();
+      }
+    }
+    else
+    {
+      // appending all widget elements (including previously added children)
+      // to the already visible parent widget element
+      for (var i=0, l=vLazyQueue.length; i<l; i++)
+      {
+        vWidget = vLazyQueue[i];
+
+        vWidget._beforeInsertDom();
+        vWidget.getParent()._getTargetNode().appendChild(vWidget.getElement());
+        vWidget._afterInsertDom();
+      }
+    }
+  }
+
+
+
+
+
+
+  /* -----------------------------------------------
+      Cleanup and appear signals
+  ----------------------------------------------- */
+
+  // Only need to do this with the lazy queues
+  // because through the recursion from qx.ui.core.Parent
+  // all others get also informed.
+  for (vKey in vLazyQueues)
+  {
+    vLazyQueue = vLazyQueues[vKey];
+
+    for (var i=0, l=vLazyQueue.length; i<l; i++)
+    {
+      vWidget = vLazyQueue[i];
+
+      if (vWidget.getVisibility()) {
+        vWidget._afterAppear();
+      }
+
+      // Reset display queue flag
+      delete vWidget._isInGlobalDisplayQueue;
+    }
+
+    delete vLazyQueues[vKey];
+  }
+
+  // Reset display queue flag for widgets in fastQueue
+  for (var i=0, l=vFastQueue.length; i<l; i++) {
+    delete vFastQueue[i]._isInGlobalDisplayQueue;
+  }
+
+  // Remove fast queue entries
+  qx.lang.Array.removeAll(vFastQueue);
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  GLOBAL HELPERS
+---------------------------------------------------------------------------
+*/
+
+qx.ui.core.Widget.getActiveSiblingHelperIgnore = function(vIgnoreClasses, vInstance)
+{
+  for (var j=0; j<vIgnoreClasses.length; j++) {
+    if (vInstance instanceof vIgnoreClasses[j]) {
+      return true;
+    }
+  }
+
+  return false;
+}
+
+qx.ui.core.Widget.getActiveSiblingHelper = function(vObject, vParent, vCalc, vIgnoreClasses, vMode)
+{
+  if (!vIgnoreClasses) {
+    vIgnoreClasses = [];
+  }
+
+  var vChilds = vParent.getChildren();
+  var vPosition = qx.util.Validation.isInvalid(vMode) ? vChilds.indexOf(vObject) + vCalc : vMode == "first" ? 0 : vChilds.length-1;
+  var vInstance = vChilds[vPosition];
+
+  while(!vInstance.isEnabled() || qx.ui.core.Widget.getActiveSiblingHelperIgnore(vIgnoreClasses, vInstance))
+  {
+    vPosition += vCalc;
+    vInstance = vChilds[vPosition];
+
+    if (!vInstance) {
+      return null;
+    }
+  }
+
+  return vInstance;
+}
+
+
+
+
+
+
+
+/* ************************************************************************
+   Instance data, properties and methods
+************************************************************************ */
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  If the widget is visible and rendered on the screen.
+*/
+qx.Proto.isMaterialized = function() {
+  var el=this._element;
+  return (this._initialLayoutDone &&
+          this._isDisplayable &&
+          qx.dom.Style.getStyleProperty(el, "display") != "none" &&
+          qx.dom.Style.getStyleProperty(el, "visibility") != "hidden" &&
+          el.offsetWidth > 0 && el.offsetHeight > 0);
+}
+
+/*!
+  A single setup to the current preferred pixel values of the widget
+*/
+qx.Proto.pack = function()
+{
+  this.setWidth(this.getPreferredBoxWidth());
+  this.setHeight(this.getPreferredBoxHeight());
+}
+
+/*!
+  A bounded setup to the preferred width/height of the widget. Keeps in
+  sync if the content or requirements of the widget changes
+*/
+qx.Proto.auto = function()
+{
+  this.setWidth("auto");
+  this.setHeight("auto");
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHILDREN HANDLING: ALL
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Get an array of the current children
+*/
+qx.Proto.getChildren = qx.util.Return.returnNull;
+
+/*!
+  Get the number of children
+*/
+qx.Proto.getChildrenLength = qx.util.Return.returnZero;
+
+/*!
+  Get if the widget has any children
+*/
+qx.Proto.hasChildren = qx.util.Return.returnFalse;
+
+/*!
+  Get if the widget has no children
+*/
+qx.Proto.isEmpty = qx.util.Return.returnTrue;
+
+/*!
+  Return the position of the child inside
+*/
+qx.Proto.indexOf = qx.util.Return.returnNegativeIndex;
+
+/*!
+  Test if this widget contains the given widget
+*/
+qx.Proto.contains = qx.util.Return.returnFalse;
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHILDREN HANDLING: VISIBLE ONES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Get an array of the current visible children
+*/
+qx.Proto.getVisibleChildren = qx.util.Return.returnNull;
+
+/*!
+  Get the number of children
+*/
+qx.Proto.getVisibleChildrenLength = qx.util.Return.returnZero;
+
+/*!
+  If this widget has visible children
+*/
+qx.Proto.hasVisibleChildren = qx.util.Return.returnFalse;
+
+/*!
+  Check if there are any visible children inside
+*/
+qx.Proto.isVisibleEmpty = qx.util.Return.returnTrue;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CORE MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._hasParent = false;
+qx.Proto._isDisplayable = false;
+
+qx.Proto.isDisplayable = function() {
+  return this._isDisplayable;
+}
+
+qx.Proto._checkParent = function(propValue, propOldValue, propData)
+{
+  if (this.contains(propValue)) {
+    throw new Error("Could not insert myself into a child " + propValue + "!");
+  }
+
+  return propValue;
+}
+
+qx.Proto._modifyParent = function(propValue, propOldValue, propData)
+{
+  if (propOldValue)
+  {
+    var vOldIndex = propOldValue.getChildren().indexOf(this);
+
+    // Reset cached dimension and location values
+    this._computedWidthValue = this._computedMinWidthValue = this._computedMaxWidthValue = this._computedLeftValue = this._computedRightValue = null;
+    this._computedHeightValue = this._computedMinHeightValue = this._computedMaxHeightValue = this._computedTopValue = this._computedBottomValue = null;
+
+    this._cachedBoxWidth = this._cachedInnerWidth = this._cachedOuterWidth = null;
+    this._cachedBoxHeight = this._cachedInnerHeight = this._cachedOuterHeight = null;
+
+    // Finally remove from children array
+    qx.lang.Array.removeAt(propOldValue.getChildren(), vOldIndex);
+
+    // Invalidate visible children cache
+    propOldValue._invalidateVisibleChildren();
+
+    // Remove child from old parent's children queue
+    propOldValue._removeChildFromChildrenQueue(this);
+
+    // The layouter adds some layout jobs
+    propOldValue.getLayoutImpl().updateChildrenOnRemoveChild(this, vOldIndex);
+
+    // Inform job queue
+    propOldValue.addToJobQueue("removeChild");
+
+    // Invalidate inner preferred dimensions
+    propOldValue._invalidatePreferredInnerDimensions();
+
+    // Store old parent (needed later by _handleDisplayable)
+    this._oldParent = propOldValue;
+  }
+
+  if (propValue)
+  {
+    this._hasParent = true;
+
+    if (qx.util.Validation.isValidNumber(this._insertIndex))
+    {
+      qx.lang.Array.insertAt(propValue.getChildren(), this, this._insertIndex);
+      delete this._insertIndex;
+    }
+    else
+    {
+      propValue.getChildren().push(this);
+    }
+  }
+  else
+  {
+    this._hasParent = false;
+  }
+
+  return this._handleDisplayable("parent");
+}
+
+qx.Proto._modifyDisplay = function(propValue, propOldValue, propData) {
+  return this._handleDisplayable("display");
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPLAYBLE HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._handleDisplayable = function(vHint)
+{
+  // Detect changes. Return if there is no change.
+  // Also handle the case if the displayable keeps true and the parent
+  // was changed then we must not return here.
+  var vDisplayable = this._computeDisplayable();
+  if (this._isDisplayable == vDisplayable && !(vDisplayable && vHint == "parent")) {
+    return true;
+  }
+
+  this._isDisplayable = vDisplayable;
+
+  var vParent = this.getParent();
+
+  // Invalidate visible children
+  if (vParent)
+  {
+    vParent._invalidateVisibleChildren();
+    vParent._invalidatePreferredInnerDimensions();
+  }
+
+  // Remove old parent's elements from DOM and delete old parent
+  if (vHint && this._oldParent && this._oldParent._initialLayoutDone)
+  {
+    var vElement = this.getElement();
+    if(vElement)
+    {
+      if (this.getVisibility()) {
+        this._beforeDisappear();
+      }
+
+      this._beforeRemoveDom();
+
+      this._oldParent._getTargetNode().removeChild(vElement);
+
+      this._afterRemoveDom();
+
+      if (this.getVisibility()) {
+        this._afterDisappear();
+      }
+    }
+
+    delete this._oldParent;
+  }
+
+  // Handle 'show'
+  if (vDisplayable)
+  {
+    /* --------------------------------
+       Update current parent
+    -------------------------------- */
+
+    // The layouter added some layout jobs
+    if (vParent._initialLayoutDone)
+    {
+      vParent.getLayoutImpl().updateChildrenOnAddChild(this, vParent.getChildren().indexOf(this));
+
+      // Inform parents job queue
+      vParent.addToJobQueue("addChild");
+    }
+
+    // Add to parents children queue
+    // (indirectly with a new layout request)
+    this.addToLayoutChanges("initial");
+
+    // Add to custom queues
+    this.addToCustomQueues(vHint);
+
+    // Handle beforeAppear signals
+    if (this.getVisibility()) {
+      this._beforeAppear();
+    }
+
+
+
+    /* --------------------------------
+       Add to global Queues
+    -------------------------------- */
+
+    // Add element (and create if not ready)
+    if (!this._isCreated) {
+      qx.ui.core.Widget.addToGlobalElementQueue(this);
+    }
+
+    // Add to global queues
+    qx.ui.core.Widget.addToGlobalStateQueue(this);
+
+    if (!qx.lang.Object.isEmpty(this._jobQueue)) {
+      qx.ui.core.Widget.addToGlobalJobQueue(this);
+    }
+
+    if (!qx.lang.Object.isEmpty(this._childrenQueue)) {
+      qx.ui.core.Widget.addToGlobalLayoutQueue(this);
+    }
+  }
+
+  // Handle 'hide'
+  else
+  {
+    // Removing from global queues
+    qx.ui.core.Widget.removeFromGlobalElementQueue(this);
+    qx.ui.core.Widget.removeFromGlobalStateQueue(this);
+    qx.ui.core.Widget.removeFromGlobalJobQueue(this);
+    qx.ui.core.Widget.removeFromGlobalLayoutQueue(this);
+
+    // Add to top-level tree queue
+    this.removeFromCustomQueues(vHint);
+
+    // only remove when itself want to be removed
+    // through a property change - not a parent signal
+    if (vParent && vHint)
+    {
+      if (this.getVisibility()) {
+        this._beforeDisappear();
+      }
+
+      // The layouter added some layout jobs
+      if (vParent._initialLayoutDone && this._initialLayoutDone)
+      {
+        vParent.getLayoutImpl().updateChildrenOnRemoveChild(this, vParent.getChildren().indexOf(this));
+
+        // Inform parent's job queue
+        vParent.addToJobQueue("removeChild");
+
+        // Before Remove DOM Event
+        this._beforeRemoveDom();
+
+        // DOM action
+        vParent._getTargetNode().removeChild(this.getElement());
+
+        // After Remove DOM Event
+        this._afterRemoveDom();
+      }
+
+      // Remove from parents children queue
+      vParent._removeChildFromChildrenQueue(this);
+
+      if (this.getVisibility()) {
+        this._afterDisappear();
+      }
+    }
+  }
+
+  this._handleDisplayableCustom(vDisplayable, vParent, vHint);
+
+  return true;
+}
+
+qx.Proto.addToCustomQueues = qx.util.Return.returnTrue;
+qx.Proto.removeFromCustomQueues = qx.util.Return.returnTrue;
+
+qx.Proto._handleDisplayableCustom = qx.util.Return.returnTrue;
+
+qx.Proto._computeDisplayable = function() {
+  return this.getDisplay() && this._hasParent && this.getParent()._isDisplayable ? true : false;
+}
+
+qx.Proto._beforeAppear = function()
+{
+  // this.debug("_beforeAppear");
+  this.createDispatchEvent("beforeAppear");
+}
+
+qx.Proto._afterAppear = function()
+{
+  // this.debug("_afterAppear");
+  this._isSeeable = true;
+  this.createDispatchEvent("appear");
+}
+
+qx.Proto._beforeDisappear = function()
+{
+  // this.debug("_beforeDisappear");
+
+  // Remove any hover/pressed styles
+  this.removeState("over");
+
+  if (qx.OO.isAvailable("qx.ui.form.Button"))
+  {
+    this.removeState("pressed");
+    this.removeState("abandoned");
+  }
+
+  // this.debug("_beforeDisappear");
+  this.createDispatchEvent("beforeDisappear");
+}
+
+qx.Proto._afterDisappear = function()
+{
+  // this.debug("_afterDisappear");
+  this._isSeeable = false;
+  this.createDispatchEvent("disappear");
+}
+
+qx.Proto._isSeeable = false;
+
+/**
+ * If the widget is currently seeable which means that it:
+ *
+ *   * has a also seeable parent
+ *   * visibility is true
+ *   * display is true
+ */
+qx.Proto.isSeeable = function() {
+  return this._isSeeable;
+}
+
+qx.Proto.isAppearRelevant = function() {
+  return this.getVisibility() && this._isDisplayable;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DOM SIGNAL HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._beforeInsertDom = function()
+{
+  // this.debug("_beforeInsertDom");
+  this.createDispatchEvent("beforeInsertDom");
+}
+
+qx.Proto._afterInsertDom = function()
+{
+  // this.debug("_afterInsertDom");
+  this.createDispatchEvent("insertDom");
+}
+
+qx.Proto._beforeRemoveDom = function()
+{
+  // this.debug("_beforeRemoveDom");
+  this.createDispatchEvent("beforeRemoveDom");
+}
+
+qx.Proto._afterRemoveDom = function()
+{
+  // this.debug("_afterRemoveDom");
+  this.createDispatchEvent("removeDom");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  VISIBILITY HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyVisibility = function(propValue, propOldValue, propData)
+{
+  if (propValue)
+  {
+    if (this._isDisplayable) {
+      this._beforeAppear();
+    }
+
+    this.removeStyleProperty("display");
+
+    if (this._isDisplayable) {
+      this._afterAppear();
+    }
+  }
+  else
+  {
+    if (this._isDisplayable) {
+      this._beforeDisappear();
+    }
+
+    this.setStyleProperty("display", "none");
+
+    if (this._isDisplayable) {
+      this._afterDisappear();
+    }
+  }
+
+  return true;
+}
+
+qx.Proto.show = function()
+{
+  this.setVisibility(true);
+  this.setDisplay(true);
+}
+
+qx.Proto.hide = function() {
+  this.setVisibility(false);
+}
+
+qx.Proto.connect = function() {
+  this.setDisplay(true);
+}
+
+qx.Proto.disconnect = function() {
+  this.setDisplay(false);
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ENHANCED BORDER SUPPORT
+---------------------------------------------------------------------------
+*/
+
+if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.Proto._createElementForEnhancedBorder = qx.util.Return.returnTrue;
+}
+else
+{
+  qx.Proto._createElementForEnhancedBorder = function()
+  {
+    // Enhanced Border Test (for IE and Opera)
+    if (qx.renderer.border.Border.enhancedCrossBrowserMode &&
+        this.getTagName() == "div" &&
+        !this._borderElement)
+    {
+      var el = this.getElement();
+      var cl = this._borderElement = document.createElement("div");
+
+      var es = el.style;
+      var cs = this._borderStyle = cl.style;
+
+      cs.width = cs.height = "100%";
+      cs.position = "absolute";
+
+      for (var i in this._styleProperties)
+      {
+        switch(i)
+        {
+          case "position":
+          case "zIndex":
+          case "filter":
+          case "display":
+            break;
+
+          default:
+            cs[i] = this._styleProperties[i];
+            es[i] = "";
+        }
+      }
+
+      // Move existing children
+      while(el.firstChild) {
+        cl.appendChild(el.firstChild);
+      }
+
+      el.appendChild(cl);
+    }
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DOM ELEMENT HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._isCreated = false;
+
+if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.Proto._getTargetNode = function() {
+    return this._element;
+  }
+}
+else
+{
+  qx.Proto._getTargetNode = function() {
+    return this._borderElement || this._element;
+  }
+}
+
+qx.Proto.addToDocument = function() {
+  qx.ui.core.ClientDocument.getInstance().add(this);
+}
+
+/*!
+  Check if the widget is created (or the element is already available).
+*/
+qx.Proto.isCreated = function() {
+  return this._isCreated;
+}
+
+/*!
+  Create widget with empty element (of specified tagname).
+*/
+qx.Proto._createElementImpl = function() {
+  this.setElement(this.getTopLevelWidget().getDocumentElement().createElement(this.getTagName()));
+}
+
+qx.Proto._modifyElement = function(propValue, propOldValue, propData)
+{
+  this._isCreated = qx.util.Validation.isValidElement(propValue);
+
+  if (propOldValue)
+  {
+    // reset reference to widget instance
+    propOldValue.qx_Widget = null;
+
+    // remove events
+    this._removeInlineEvents(propOldValue);
+  }
+
+  if (propValue)
+  {
+    // add reference to widget instance
+    propValue.qx_Widget = this;
+
+    // link element and style reference
+    this._element = propValue;
+    this._style = propValue.style;
+
+    this._applyStyleProperties(propValue);
+    this._applyHtmlProperties(propValue);
+    this._applyHtmlAttributes(propValue);
+    this._applyElementData(propValue);
+
+    // attach inline events
+    this._addInlineEvents(propValue);
+
+    // send out create event
+    this.createDispatchEvent("create");
+  }
+  else
+  {
+    this._element = this._style = null;
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  JOBS QUEUE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.addToJobQueue = function(p)
+{
+  if (this._hasParent) {
+    qx.ui.core.Widget.addToGlobalJobQueue(this);
+  }
+
+  if (!this._jobQueue) {
+    this._jobQueue = {};
+  }
+
+  this._jobQueue[p] = true;
+  return true;
+}
+
+qx.Proto._flushJobQueue = function(q)
+{
+  /* --------------------------------------------------------------------------------
+       1. Pre checks
+  -------------------------------------------------------------------------------- */
+
+  try
+  {
+    var vQueue = this._jobQueue;
+    var vParent = this.getParent();
+
+    if (!vParent || qx.lang.Object.isEmpty(vQueue)) {
+      return;
+    }
+
+    var vLayoutImpl = this instanceof qx.ui.core.Parent ? this.getLayoutImpl() : null;
+
+    if (vLayoutImpl) {
+      vLayoutImpl.updateSelfOnJobQueueFlush(vQueue);
+    }
+  }
+  catch(ex)
+  {
+    this.error("Flushing job queue (prechecks#1) failed", ex);
+  }
+
+
+
+
+
+  /* --------------------------------------------------------------------------------
+       2. Recompute dimensions
+  -------------------------------------------------------------------------------- */
+
+  try
+  {
+    var vFlushParentJobQueue = false;
+    var vRecomputeOuterWidth = vQueue.marginLeft || vQueue.marginRight;
+    var vRecomputeOuterHeight = vQueue.marginTop || vQueue.marginBottom;
+    var vRecomputeInnerWidth = vQueue.frameWidth;
+    var vRecomputeInnerHeight = vQueue.frameHeight;
+    var vRecomputeParentPreferredInnerWidth = (vQueue.frameWidth || vQueue.preferredInnerWidth) && this._recomputePreferredBoxWidth();
+    var vRecomputeParentPreferredInnerHeight = (vQueue.frameHeight || vQueue.preferredInnerHeight) && this._recomputePreferredBoxHeight();
+
+    if (vRecomputeParentPreferredInnerWidth)
+    {
+      var vPref = this.getPreferredBoxWidth();
+
+      if (this._computedWidthTypeAuto)
+      {
+        this._computedWidthValue = vPref;
+        vQueue.width = true;
+      }
+
+      if (this._computedMinWidthTypeAuto)
+      {
+        this._computedMinWidthValue = vPref;
+        vQueue.minWidth = true;
+      }
+
+      if (this._computedMaxWidthTypeAuto)
+      {
+        this._computedMaxWidthValue = vPref;
+        vQueue.maxWidth = true;
+      }
+    }
+
+    if (vRecomputeParentPreferredInnerHeight)
+    {
+      var vPref = this.getPreferredBoxHeight();
+
+      if (this._computedHeightTypeAuto)
+      {
+        this._computedHeightValue = vPref;
+        vQueue.height = true;
+      }
+
+      if (this._computedMinHeightTypeAuto)
+      {
+        this._computedMinHeightValue = vPref;
+        vQueue.minHeight = true;
+      }
+
+      if (this._computedMaxHeightTypeAuto)
+      {
+        this._computedMaxHeightValue = vPref;
+        vQueue.maxHeight = true;
+      }
+    }
+
+    if ((vQueue.width || vQueue.minWidth || vQueue.maxWidth || vQueue.left || vQueue.right) && this._recomputeBoxWidth()) {
+      vRecomputeOuterWidth = vRecomputeInnerWidth = true;
+    }
+
+    if ((vQueue.height || vQueue.minHeight || vQueue.maxHeight || vQueue.top || vQueue.bottom) && this._recomputeBoxHeight()) {
+      vRecomputeOuterHeight = vRecomputeInnerHeight = true;
+    }
+  }
+  catch(ex)
+  {
+    this.error("Flushing job queue (recompute#2) failed", ex);
+  }
+
+
+
+
+
+  /* --------------------------------------------------------------------------------
+       3. Signals to parent widgets
+  -------------------------------------------------------------------------------- */
+
+  try
+  {
+    if ((vRecomputeOuterWidth && this._recomputeOuterWidth()) ||
+        vRecomputeParentPreferredInnerWidth)
+    {
+      vParent._invalidatePreferredInnerWidth();
+      vParent.getLayoutImpl().updateSelfOnChildOuterWidthChange(this);
+
+      vFlushParentJobQueue = true;
+    }
+
+    if ((vRecomputeOuterHeight && this._recomputeOuterHeight()) ||
+        vRecomputeParentPreferredInnerHeight)
+    {
+      vParent._invalidatePreferredInnerHeight();
+      vParent.getLayoutImpl().updateSelfOnChildOuterHeightChange(this);
+
+      vFlushParentJobQueue = true;
+    }
+
+    if (vFlushParentJobQueue) {
+      vParent._flushJobQueue();
+    }
+  }
+  catch(ex)
+  {
+    this.error("Flushing job queue (parentsignals#3) failed", ex);
+  }
+
+
+
+
+
+  /* --------------------------------------------------------------------------------
+       4. Add layout jobs
+  -------------------------------------------------------------------------------- */
+
+  try
+  {
+    // add to layout queue
+    vParent._addChildToChildrenQueue(this);
+
+    // convert jobs to layout jobs
+    for (var i in vQueue) {
+      this._layoutChanges[i] = true;
+    }
+  }
+  catch(ex)
+  {
+    this.error("Flushing job queue (addjobs#4) failed", ex);
+  }
+
+
+
+
+
+  /* --------------------------------------------------------------------------------
+       5. Signals to children
+  -------------------------------------------------------------------------------- */
+
+  try
+  {
+    // inform children about padding change
+    if (this instanceof qx.ui.core.Parent &&
+        (vQueue.paddingLeft ||
+         vQueue.paddingRight ||
+         vQueue.paddingTop ||
+         vQueue.paddingBottom))
+    {
+      var ch=this.getChildren(), chl=ch.length;
+
+      if (vQueue.paddingLeft) {
+        for (var i=0; i<chl; i++) {
+          ch[i].addToLayoutChanges("parentPaddingLeft");
+        }
+      }
+
+      if (vQueue.paddingRight) {
+        for (var i=0; i<chl; i++) {
+          ch[i].addToLayoutChanges("parentPaddingRight");
+        }
+      }
+
+      if (vQueue.paddingTop) {
+        for (var i=0; i<chl; i++) {
+          ch[i].addToLayoutChanges("parentPaddingTop");
+        }
+      }
+
+      if (vQueue.paddingBottom) {
+        for (var i=0; i<chl; i++) {
+          ch[i].addToLayoutChanges("parentPaddingBottom");
+        }
+      }
+    }
+
+    if (vRecomputeInnerWidth) {
+      this._recomputeInnerWidth();
+    }
+
+    if (vRecomputeInnerHeight) {
+      this._recomputeInnerHeight();
+    }
+
+    if (this._initialLayoutDone)
+    {
+      if (vLayoutImpl) {
+        vLayoutImpl.updateChildrenOnJobQueueFlush(vQueue);
+      }
+    }
+  }
+  catch(ex)
+  {
+    this.error("Flushing job queue (childrensignals#5) failed", ex);
+  }
+
+
+
+  /* --------------------------------------------------------------------------------
+       5. Cleanup
+  -------------------------------------------------------------------------------- */
+
+  delete this._jobQueue;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  METHODS TO GIVE THE LAYOUTERS INFORMATION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._isWidthEssential = qx.util.Return.returnTrue;
+qx.Proto._isHeightEssential = qx.util.Return.returnTrue;
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPLY LAYOUT STYLES
+---------------------------------------------------------------------------
+*/
+
+qx.ui.core.Widget.initApplyMethods = function()
+{
+  var f = "_applyRuntime";
+  var r = "_resetRuntime";
+  var s = "this._style.";
+  var e = "=''";
+  var v = "=v+'px'";
+  var vpar = "v";
+
+  var props = ["left", "right", "top", "bottom", "width", "height",
+               "minWidth", "maxWidth", "minHeight", "maxHeight"];
+  var propsup = ["Left", "Right", "Top", "Bottom", "Width", "Height",
+                 "MinWidth", "MaxWidth", "MinHeight", "MaxHeight"];
+
+  for (var i=0, fn=f+"Margin", rn=r+"Margin", sp=s+"margin"; i<4; i++)
+  {
+    qx.Proto[fn+propsup[i]] = new Function(vpar, sp + propsup[i] + v);
+    qx.Proto[rn+propsup[i]] = new Function(sp + propsup[i] + e);
+  }
+
+  var pad = "padding";
+  var upad = "Padding";
+
+  if (qx.sys.Client.getInstance().isGecko())
+  {
+    for (var i=0, fn=f+upad, rn=r+upad, sp=s+pad; i<4; i++)
+    {
+      qx.Proto[fn+propsup[i]] = new Function(vpar, sp + propsup[i] + v);
+      qx.Proto[rn+propsup[i]] = new Function(sp + propsup[i] + e);
+    }
+  }
+  else
+  {
+    // need to use setStyleProperty to keep compatibility with enhanced cross browser borders
+    var s1="this.setStyleProperty('padding";
+    var s2="', v+'px')";
+    var s3="this.removeStyleProperty('padding";
+    var s4="')";
+
+    for (var i=0, fn=f+upad, rn=r+upad, sp=s+pad; i<4; i++)
+    {
+      qx.Proto[fn+propsup[i]] = new Function(vpar, s1 + propsup[i] + s2);
+      qx.Proto[rn+propsup[i]] = new Function(s3 + propsup[i] + s4);
+    }
+  }
+
+  /*
+    Use optimized method for internet explorer
+    to omit string concat and directly setup
+    the new layout property.
+
+    We could not use this to reset the value however.
+    It seems that is just doesn't work this way. And the
+    left/top always get priority. Tried: "", null, "auto".
+    Nothing helps.
+
+    Now I've switched back to the conventional method
+    to reset the value. This seems to work again.
+  */
+  if (qx.sys.Client.getInstance().isMshtml())
+  {
+    for (var i=0, tpos="pos", vset="=v"; i<6; i++)
+    {
+      // to debug the values which will be applied use this instead of the
+      // first line:
+      // qx.Proto[f+propsup[i]] = new Function(vpar, "this.debug('v: ' + v); " + s + tpos + propsup[i] + vset);
+
+      qx.Proto[f+propsup[i]] = new Function(vpar, s + tpos + propsup[i] + vset);
+      qx.Proto[r+propsup[i]] = new Function(s + props[i] + e);
+    }
+  }
+  else
+  {
+    for (var i=0; i<10; i++)
+    {
+      // to debug the values which will be applied use this instead of the
+      // first line:
+      // qx.Proto[f+propsup[i]] = new Function(vpar, "this.debug('v: ' + v); " + s + props[i] + v);
+
+      qx.Proto[f+propsup[i]] = new Function(vpar, s + props[i] + v);
+      qx.Proto[r+propsup[i]] = new Function(s + props[i] + e);
+    }
+  }
+}
+
+qx.ui.core.Widget.initApplyMethods();
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DIMENSION CACHE
+---------------------------------------------------------------------------
+*/
+
+/*
+  Add basic setter/getters
+*/
+
+qx.OO.addCachedProperty({ name : "innerWidth", defaultValue : null });
+qx.OO.addCachedProperty({ name : "innerHeight", defaultValue : null });
+qx.OO.addCachedProperty({ name : "boxWidth", defaultValue : null });
+qx.OO.addCachedProperty({ name : "boxHeight", defaultValue : null });
+qx.OO.addCachedProperty({ name : "outerWidth", defaultValue : null });
+qx.OO.addCachedProperty({ name : "outerHeight", defaultValue : null });
+
+qx.Proto._computeBoxWidthFallback = function() {
+  return 0;
+}
+
+qx.Proto._computeBoxHeightFallback = function() {
+  return 0;
+}
+
+qx.Proto._computeBoxWidth = function() {
+  var vLayoutImpl = this.getParent().getLayoutImpl();
+  return Math.max(0,
+                  qx.lang.Number.limit(vLayoutImpl.computeChildBoxWidth(this),
+                                       this.getMinWidthValue(),
+                                       this.getMaxWidthValue()));
+}
+
+qx.Proto._computeBoxHeight = function() {
+  var vLayoutImpl = this.getParent().getLayoutImpl();
+  return Math.max(0,
+                  qx.lang.Number.limit(vLayoutImpl.computeChildBoxHeight(this),
+                                       this.getMinHeightValue(),
+                                       this.getMaxHeightValue()));
+}
+
+qx.Proto._computeOuterWidth = function() {
+  return Math.max(0,
+                  (this.getMarginLeft() +
+                   this.getBoxWidth() +
+                   this.getMarginRight()));
+}
+
+qx.Proto._computeOuterHeight = function() {
+  return Math.max(0,
+                  (this.getMarginTop() +
+                   this.getBoxHeight() +
+                   this.getMarginBottom()));
+}
+
+qx.Proto._computeInnerWidth = function() {
+  return Math.max(0, this.getBoxWidth() - this.getFrameWidth());
+}
+
+qx.Proto._computeInnerHeight = function() {
+  return Math.max(0, this.getBoxHeight() - this.getFrameHeight());
+}
+
+qx.Proto.getNeededWidth = function() {
+  var vLayoutImpl = this.getParent().getLayoutImpl();
+  return Math.max(0, vLayoutImpl.computeChildNeededWidth(this));
+}
+
+qx.Proto.getNeededHeight = function() {
+  var vLayoutImpl = this.getParent().getLayoutImpl();
+  return Math.max(0, vLayoutImpl.computeChildNeededHeight(this));
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  RECOMPUTE FLEX VALUES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._recomputeFlexX = function()
+{
+  if (!this.getHasFlexX()) {
+    return false;
+  }
+
+  if (this._computedWidthTypeFlex)
+  {
+    this._computedWidthValue = null;
+    this.addToLayoutChanges("width");
+  }
+
+  return true;
+}
+
+qx.Proto._recomputeFlexY = function()
+{
+  if (!this.getHasFlexY()) {
+    return false;
+  }
+
+  if (this._computedHeightTypeFlex)
+  {
+    this._computedHeightValue = null;
+    this.addToLayoutChanges("height");
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  RECOMPUTE PERCENTS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._recomputePercentX = function()
+{
+  if (!this.getHasPercentX()) {
+    return false;
+  }
+
+  if (this._computedWidthTypePercent)
+  {
+    this._computedWidthValue = null;
+    this.addToLayoutChanges("width");
+  }
+
+  if (this._computedMinWidthTypePercent)
+  {
+    this._computedMinWidthValue = null;
+    this.addToLayoutChanges("minWidth");
+  }
+
+  if (this._computedMaxWidthTypePercent)
+  {
+    this._computedMaxWidthValue = null;
+    this.addToLayoutChanges("maxWidth");
+  }
+
+  if (this._computedLeftTypePercent)
+  {
+    this._computedLeftValue = null;
+    this.addToLayoutChanges("left");
+  }
+
+  if (this._computedRightTypePercent)
+  {
+    this._computedRightValue = null;
+    this.addToLayoutChanges("right");
+  }
+
+  return true;
+}
+
+qx.Proto._recomputePercentY = function()
+{
+  if (!this.getHasPercentY()) {
+    return false;
+  }
+
+  if (this._computedHeightTypePercent)
+  {
+    this._computedHeightValue = null;
+    this.addToLayoutChanges("height");
+  }
+
+  if (this._computedMinHeightTypePercent)
+  {
+    this._computedMinHeightValue = null;
+    this.addToLayoutChanges("minHeight");
+  }
+
+  if (this._computedMaxHeightTypePercent)
+  {
+    this._computedMaxHeightValue = null;
+    this.addToLayoutChanges("maxHeight");
+  }
+
+  if (this._computedTopTypePercent)
+  {
+    this._computedTopValue = null;
+    this.addToLayoutChanges("top");
+  }
+
+  if (this._computedBottomTypePercent)
+  {
+    this._computedBottomValue = null;
+    this.addToLayoutChanges("bottom");
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  RECOMPUTE RANGES
+---------------------------------------------------------------------------
+*/
+
+if (qx.sys.Client.getInstance().isMshtml() || qx.sys.Client.getInstance().isOpera())
+{
+  qx.Proto._recomputeRangeX = function()
+  {
+    if (this._computedLeftTypeNull || this._computedRightTypeNull) {
+      return false;
+    }
+
+    this.addToLayoutChanges("width");
+    return true;
+  }
+
+  qx.Proto._recomputeRangeY = function()
+  {
+    if (this._computedTopTypeNull || this._computedBottomTypeNull) {
+      return false;
+    }
+
+    this.addToLayoutChanges("height");
+    return true;
+  }
+}
+else
+{
+  qx.Proto._recomputeRangeX = function() {
+    return !(this._computedLeftTypeNull || this._computedRightTypeNull);
+  }
+
+  qx.Proto._recomputeRangeY = function() {
+    return !(this._computedTopTypeNull || this._computedBottomTypeNull);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  RECOMPUTE STRETCHING
+---------------------------------------------------------------------------
+*/
+
+if (qx.sys.Client.getInstance().isMshtml() || qx.sys.Client.getInstance().isOpera())
+{
+  qx.Proto._recomputeStretchingX = function()
+  {
+    if (this.getAllowStretchX() && this._computedWidthTypeNull)
+    {
+      this._computedWidthValue = null;
+      this.addToLayoutChanges("width");
+
+      return true;
+    }
+
+    return false;
+  }
+
+  qx.Proto._recomputeStretchingY = function()
+  {
+    if (this.getAllowStretchY() && this._computedHeightTypeNull)
+    {
+      this._computedHeightValue = null;
+      this.addToLayoutChanges("height");
+
+      return true;
+    }
+
+    return false;
+  }
+}
+else
+{
+  qx.Proto._recomputeStretchingX = function()
+  {
+    if (this.getAllowStretchX() && this._computedWidthTypeNull) {
+      return true;
+    }
+
+    return false;
+  }
+
+  qx.Proto._recomputeStretchingY = function()
+  {
+    if (this.getAllowStretchY() && this._computedHeightTypeNull) {
+      return true;
+    }
+
+    return false;
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INTELLIGENT GETTERS FOR STANDALONE DIMENSIONS: HELPERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._computeValuePixel = function(v) {
+  return Math.round(v);
+}
+
+qx.Proto._computeValuePixelLimit = function(v) {
+  return Math.max(0, this._computeValuePixel(v));
+}
+
+qx.Proto._computeValuePercentX = function(v) {
+  return Math.round(this.getParent().getInnerWidthForChild(this) * v * 0.01);
+}
+
+qx.Proto._computeValuePercentXLimit = function(v) {
+  return Math.max(0, this._computeValuePercentX(v));
+}
+
+qx.Proto._computeValuePercentY = function(v) {
+  return Math.round(this.getParent().getInnerHeightForChild(this) * v * 0.01);
+}
+
+qx.Proto._computeValuePercentYLimit = function(v) {
+  return Math.max(0, this._computeValuePercentY(v));
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INTELLIGENT GETTERS FOR STANDALONE DIMENSIONS: X-AXIS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getWidthValue = function()
+{
+  if (this._computedWidthValue != null) {
+    return this._computedWidthValue;
+  }
+
+  switch(this._computedWidthType)
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      return this._computedWidthValue = this._computeValuePixelLimit(this._computedWidthParsed);
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+      return this._computedWidthValue = this._computeValuePercentXLimit(this._computedWidthParsed);
+
+    case qx.ui.core.Widget.TYPE_AUTO:
+      return this._computedWidthValue = this.getPreferredBoxWidth();
+
+    case qx.ui.core.Widget.TYPE_FLEX:
+      try{
+         this.getParent().getLayoutImpl().computeChildrenFlexWidth();
+      } catch (e){
+        if (this.getParent().getLayoutImpl()["computeChildrenFlexWidth"] == null){
+          throw new Error("Widget " + this + ": having flex size but parent layout does not support it");
+        } else {
+          throw e;
+        }
+      }
+      return this._computedWidthValue = this._computedWidthFlexValue;
+  }
+
+  return null;
+}
+
+qx.Proto.getMinWidthValue = function()
+{
+  if (this._computedMinWidthValue != null) {
+    return this._computedMinWidthValue;
+  }
+
+  switch(this._computedMinWidthType)
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      return this._computedWidthValue = this._computeValuePixelLimit(this._computedMinWidthParsed);
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+      return this._computedWidthValue = this._computeValuePercentXLimit(this._computedMinWidthParsed);
+
+    case qx.ui.core.Widget.TYPE_AUTO:
+      return this._computedMinWidthValue = this.getPreferredBoxWidth();
+  }
+
+  return null;
+}
+
+qx.Proto.getMaxWidthValue = function()
+{
+  if (this._computedMaxWidthValue != null) {
+    return this._computedMaxWidthValue;
+  }
+
+  switch(this._computedMaxWidthType)
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      return this._computedWidthValue = this._computeValuePixelLimit(this._computedMaxWidthParsed);
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+      return this._computedWidthValue = this._computeValuePercentXLimit(this._computedMaxWidthParsed);
+
+    case qx.ui.core.Widget.TYPE_AUTO:
+      return this._computedMaxWidthValue = this.getPreferredBoxWidth();
+  }
+
+  return null;
+}
+
+qx.Proto.getLeftValue = function()
+{
+  if (this._computedLeftValue != null) {
+    return this._computedLeftValue;
+  }
+
+  switch(this._computedLeftType)
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      return this._computedLeftValue = this._computeValuePixel(this._computedLeftParsed);
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+      return this._computedLeftValue = this._computeValuePercentX(this._computedLeftParsed);
+  }
+
+  return null;
+}
+
+qx.Proto.getRightValue = function()
+{
+  if (this._computedRightValue != null) {
+    return this._computedRightValue;
+  }
+
+  switch(this._computedRightType)
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      return this._computedRightValue = this._computeValuePixel(this._computedRightParsed);
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+      return this._computedRightValue = this._computeValuePercentX(this._computedRightParsed);
+  }
+
+  return null;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INTELLIGENT GETTERS FOR STANDALONE DIMENSIONS: Y-AXIS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getHeightValue = function()
+{
+  if (this._computedHeightValue != null) {
+    return this._computedHeightValue;
+  }
+
+  switch(this._computedHeightType)
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      return this._computedHeightValue = this._computeValuePixelLimit(this._computedHeightParsed);
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+      return this._computedHeightValue = this._computeValuePercentYLimit(this._computedHeightParsed);
+
+    case qx.ui.core.Widget.TYPE_AUTO:
+      return this._computedHeightValue = this.getPreferredBoxHeight();
+
+    case qx.ui.core.Widget.TYPE_FLEX:
+      try{
+        this.getParent().getLayoutImpl().computeChildrenFlexHeight();
+      } catch (e){
+        if (this.getParent().getLayoutImpl()["computeChildrenFlexHeight"] == null){
+          throw new Error("Widget " + this + ": having flex size but parent layout does not support it");
+        } else {
+          throw e;
+        }
+      }
+      return this._computedHeightValue = this._computedHeightFlexValue;
+  }
+
+  return null;
+}
+
+qx.Proto.getMinHeightValue = function()
+{
+  if (this._computedMinHeightValue != null) {
+    return this._computedMinHeightValue;
+  }
+
+  switch(this._computedMinHeightType)
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      return this._computedMinHeightValue = this._computeValuePixelLimit(this._computedMinHeightParsed);
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+      return this._computedMinHeightValue = this._computeValuePercentYLimit(this._computedMinHeightParsed);
+
+    case qx.ui.core.Widget.TYPE_AUTO:
+      return this._computedMinHeightValue = this.getPreferredBoxHeight();
+  }
+
+  return null;
+}
+
+qx.Proto.getMaxHeightValue = function()
+{
+  if (this._computedMaxHeightValue != null) {
+    return this._computedMaxHeightValue;
+  }
+
+  switch(this._computedMaxHeightType)
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      return this._computedMaxHeightValue = this._computeValuePixelLimit(this._computedMaxHeightParsed);
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+      return this._computedMaxHeightValue = this._computeValuePercentYLimit(this._computedMaxHeightParsed);
+
+    case qx.ui.core.Widget.TYPE_AUTO:
+      return this._computedMaxHeightValue = this.getPreferredBoxHeight();
+  }
+
+  return null;
+}
+
+qx.Proto.getTopValue = function()
+{
+  if (this._computedTopValue != null) {
+    return this._computedTopValue;
+  }
+
+  switch(this._computedTopType)
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      return this._computedTopValue = this._computeValuePixel(this._computedTopParsed);
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+      return this._computedTopValue = this._computeValuePercentY(this._computedTopParsed);
+  }
+
+  return null;
+}
+
+qx.Proto.getBottomValue = function()
+{
+  if (this._computedBottomValue != null) {
+    return this._computedBottomValue;
+  }
+
+  switch(this._computedBottomType)
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      return this._computedBottomValue = this._computeValuePixel(this._computedBottomParsed);
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+      return this._computedBottomValue = this._computeValuePercentY(this._computedBottomParsed);
+  }
+
+  return null;
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  FRAME DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addCachedProperty({ name : "frameWidth", defaultValue : null, addToQueueRuntime : true });
+qx.OO.addCachedProperty({ name : "frameHeight", defaultValue : null, addToQueueRuntime : true });
+
+qx.Proto._computeFrameWidth = function()
+{
+  var fw = this._cachedBorderLeft + this.getPaddingLeft() + this.getPaddingRight() + this._cachedBorderRight;
+
+  switch(this.getOverflow())
+  {
+    case "scroll":
+    case "scrollY":
+      qx.ui.core.Widget.initOverflow();
+      fw += qx.ui.core.Widget.SCROLLBAR_SIZE;
+      break;
+
+    case "auto":
+      // This seems to be really hard to implement
+      // this.debug("Check Auto Scroll-X: " + this.getPreferredBoxHeight() + " :: " + this.getBoxHeight());
+      break;
+  }
+
+  return fw;
+}
+
+qx.Proto._computeFrameHeight = function()
+{
+  var fh = this._cachedBorderTop + this.getPaddingTop() + this.getPaddingBottom() + this._cachedBorderBottom;
+
+  switch(this.getOverflow())
+  {
+    case "scroll":
+    case "scrollX":
+      qx.ui.core.Widget.initOverflow();
+      fh += qx.ui.core.Widget.SCROLLBAR_SIZE;
+      break;
+
+    case "auto":
+      // This seems to be really hard to implement
+      // this.debug("Check Auto Scroll-Y: " + this.getPreferredBoxWidth() + " :: " + this.getBoxWidth());
+      break;
+  }
+
+  return fh;
+}
+
+qx.Proto._invalidateFrameDimensions = function()
+{
+  this._invalidateFrameWidth();
+  this._invalidateFrameHeight();
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PREFERRED DIMENSIONS: INNER
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addCachedProperty({ name : "preferredInnerWidth", defaultValue : null, addToQueueRuntime : true });
+qx.OO.addCachedProperty({ name : "preferredInnerHeight", defaultValue : null, addToQueueRuntime : true });
+
+qx.Proto._invalidatePreferredInnerDimensions = function()
+{
+  this._invalidatePreferredInnerWidth();
+  this._invalidatePreferredInnerHeight();
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PREFERRED DIMENSIONS: BOX
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addCachedProperty({ name : "preferredBoxWidth", defaultValue : null });
+qx.OO.addCachedProperty({ name : "preferredBoxHeight", defaultValue : null });
+
+qx.Proto._computePreferredBoxWidth = function()
+{
+  try {
+    return Math.max(0, this.getPreferredInnerWidth() + this.getFrameWidth());
+  } catch(ex) {
+    this.error("_computePreferredBoxWidth failed", ex);
+  }
+}
+
+qx.Proto._computePreferredBoxHeight = function()
+{
+  try {
+    return Math.max(0, this.getPreferredInnerHeight() + this.getFrameHeight());
+  } catch(ex) {
+    this.error("_computePreferredBoxHeight failed", ex);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LAYOUT QUEUE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._initialLayoutDone = false;
+
+qx.Proto.addToLayoutChanges = function(p)
+{
+  if (this._isDisplayable) {
+    this.getParent()._addChildToChildrenQueue(this);
+  }
+
+  return this._layoutChanges[p] = true;
+}
+
+qx.Proto.addToQueue = function(p) {
+  this._initialLayoutDone ? this.addToJobQueue(p) : this.addToLayoutChanges(p);
+}
+
+qx.Proto.addToQueueRuntime = function(p) {
+  return !this._initialLayoutDone || this.addToJobQueue(p);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  BORDER/MARGIN/PADDING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._applyBorderX = function(vChild, vChanges, vStyle)
+{
+  var vBorder = vChild.getBorder();
+  vBorder ? vBorder._applyWidgetX(vChild) : qx.renderer.border.Border._resetBorderX(vChild);
+}
+
+qx.Proto._applyBorderY = function(vChild, vChanges, vStyle)
+{
+  var vBorder = vChild.getBorder();
+  vBorder ? vBorder._applyWidgetY(vChild) : qx.renderer.border.Border._resetBorderY(vChild);
+}
+
+qx.Proto._applyPaddingX = qx.util.Return.returnTrue;
+qx.Proto._applyPaddingY = qx.util.Return.returnTrue;
+
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LAYOUT AUTO/PERCENT CACHE
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addCachedProperty({ name : "hasPercentX", defaultValue : false });
+qx.OO.addCachedProperty({ name : "hasPercentY", defaultValue : false });
+qx.OO.addCachedProperty({ name : "hasAutoX", defaultValue : false });
+qx.OO.addCachedProperty({ name : "hasAutoY", defaultValue : false });
+qx.OO.addCachedProperty({ name : "hasFlexX", defaultValue : false });
+qx.OO.addCachedProperty({ name : "hasFlexY", defaultValue : false });
+
+qx.Proto._computeHasPercentX = function() {
+  return (this._computedLeftTypePercent ||
+          this._computedWidthTypePercent ||
+          this._computedMinWidthTypePercent ||
+          this._computedMaxWidthTypePercent ||
+          this._computedRightTypePercent);
+}
+
+qx.Proto._computeHasPercentY = function() {
+  return (this._computedTopTypePercent ||
+          this._computedHeightTypePercent ||
+          this._computedMinHeightTypePercent ||
+          this._computedMaxHeightTypePercent ||
+          this._computedBottomTypePercent);
+}
+
+qx.Proto._computeHasAutoX = function() {
+  return (this._computedWidthTypeAuto ||
+          this._computedMinWidthTypeAuto ||
+          this._computedMaxWidthTypeAuto);
+}
+
+qx.Proto._computeHasAutoY = function() {
+  return (this._computedHeightTypeAuto ||
+          this._computedMinHeightTypeAuto ||
+          this._computedMaxHeightTypeAuto);
+}
+
+qx.Proto._computeHasFlexX = function() {
+  return this._computedWidthTypeFlex;
+}
+
+qx.Proto._computeHasFlexY = function() {
+  return this._computedHeightTypeFlex;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LAYOUT TYPE INDENTIFY HELPER METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.ui.core.Widget.TYPE_NULL = 0;
+qx.ui.core.Widget.TYPE_PIXEL = 1;
+qx.ui.core.Widget.TYPE_PERCENT = 2;
+qx.ui.core.Widget.TYPE_AUTO = 3;
+qx.ui.core.Widget.TYPE_FLEX = 4;
+
+qx.Proto._evalUnitsPixelPercentAutoFlex = function(propValue)
+{
+  switch(propValue)
+  {
+    case "auto":
+      return qx.ui.core.Widget.TYPE_AUTO;
+
+    case Infinity:
+    case -Infinity:
+      return qx.ui.core.Widget.TYPE_NULL;
+  }
+
+  switch(typeof propValue)
+  {
+    case "number":
+      return isNaN(propValue) ? qx.ui.core.Widget.TYPE_NULL : qx.ui.core.Widget.TYPE_PIXEL;
+
+    case "string":
+      return propValue.indexOf("%") != -1 ? qx.ui.core.Widget.TYPE_PERCENT : propValue.indexOf("*") != -1 ? qx.ui.core.Widget.TYPE_FLEX : qx.ui.core.Widget.TYPE_NULL;
+  }
+
+  return qx.ui.core.Widget.TYPE_NULL;
+}
+
+qx.Proto._evalUnitsPixelPercentAuto = function(propValue)
+{
+  switch(propValue)
+  {
+    case "auto":
+      return qx.ui.core.Widget.TYPE_AUTO;
+
+    case Infinity:
+    case -Infinity:
+      return qx.ui.core.Widget.TYPE_NULL;
+  }
+
+  switch(typeof propValue)
+  {
+    case "number":
+      return isNaN(propValue) ? qx.ui.core.Widget.TYPE_NULL : qx.ui.core.Widget.TYPE_PIXEL;
+
+    case "string":
+      return propValue.indexOf("%") != -1 ? qx.ui.core.Widget.TYPE_PERCENT : qx.ui.core.Widget.TYPE_NULL;
+  }
+
+  return qx.ui.core.Widget.TYPE_NULL;
+}
+
+qx.Proto._evalUnitsPixelPercent = function(propValue)
+{
+  switch(propValue)
+  {
+    case Infinity:
+    case -Infinity:
+      return qx.ui.core.Widget.TYPE_NULL;
+  }
+
+  switch(typeof propValue)
+  {
+    case "number":
+      return isNaN(propValue) ? qx.ui.core.Widget.TYPE_NULL : qx.ui.core.Widget.TYPE_PIXEL;
+
+    case "string":
+      return propValue.indexOf("%") != -1 ? qx.ui.core.Widget.TYPE_PERCENT : qx.ui.core.Widget.TYPE_NULL;
+  }
+
+  return qx.ui.core.Widget.TYPE_NULL;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LAYOUT TYPE AND VALUE KEY PRE-CACHE
+---------------------------------------------------------------------------
+*/
+
+qx.ui.core.Widget.layoutPropertyTypes = {};
+
+qx.ui.core.Widget.initLayoutProperties = function()
+{
+  var a = [ "width", "height",
+            "minWidth", "maxWidth",
+            "minHeight", "maxHeight",
+            "left", "right", "top", "bottom" ];
+
+  for (var i=0, l=a.length, p, b, t; i<l; i++)
+  {
+    p = a[i];
+    b = "_computed" + qx.lang.String.toFirstUp(p);
+    t = b + "Type";
+
+    qx.ui.core.Widget.layoutPropertyTypes[p] =
+    {
+      dataType : t,
+      dataParsed : b + "Parsed",
+      dataValue : b + "Value",
+
+      typePixel : t + "Pixel",
+      typePercent : t + "Percent",
+      typeAuto : t + "Auto",
+      typeFlex : t + "Flex",
+      typeNull : t + "Null"
+    }
+  }
+}
+
+qx.ui.core.Widget.initLayoutProperties();
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LAYOUT TYPE AND VALUE STORAGE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._unitDetectionPixelPercentAutoFlex = function(propData, propValue)
+{
+  var r = qx.ui.core.Widget.layoutPropertyTypes[propData.name];
+
+  var s = r.dataType;
+  var p = r.dataParsed;
+  var v = r.dataValue;
+
+  var s1 = r.typePixel;
+  var s2 = r.typePercent;
+  var s3 = r.typeAuto;
+  var s4 = r.typeFlex;
+  var s5 = r.typeNull;
+
+  var wasPercent = this[s2];
+  var wasAuto = this[s3];
+  var wasFlex = this[s4];
+
+  switch(this[s] = this._evalUnitsPixelPercentAutoFlex(propValue))
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      this[s1] = true;
+      this[s2] = this[s3] = this[s4] = this[s5] = false;
+      this[p] = this[v] = Math.round(propValue);
+      break;
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+      this[s2] = true;
+      this[s1] = this[s3] = this[s4] = this[s5] = false;
+      this[p] = parseFloat(propValue);
+      this[v] = null;
+      break;
+
+    case qx.ui.core.Widget.TYPE_AUTO:
+      this[s3] = true;
+      this[s1] = this[s2] = this[s4] = this[s5] = false;
+      this[p] = this[v] = null;
+      break;
+
+    case qx.ui.core.Widget.TYPE_FLEX:
+      this[s4] = true;
+      this[s1] = this[s2] = this[s3] = this[s5] = false;
+      this[p] = parseFloat(propValue);
+      this[v] = null;
+      break;
+
+    default:
+      this[s5] = true;
+      this[s1] = this[s2] = this[s3] = this[s4] = false;
+      this[p] = this[v] = null;
+      break;
+  }
+
+  if (wasPercent != this[s2])
+  {
+    switch(propData.name)
+    {
+      case "minWidth":
+      case "maxWidth":
+      case "width":
+      case "left":
+      case "right":
+        this._invalidateHasPercentX();
+        break;
+
+      case "maxHeight":
+      case "minHeight":
+      case "height":
+      case "top":
+      case "bottom":
+        this._invalidateHasPercentY();
+        break;
+    }
+  }
+
+  // No ELSE because you can also switch from percent to auto
+  if (wasAuto != this[s3])
+  {
+    switch(propData.name)
+    {
+      case "minWidth":
+      case "maxWidth":
+      case "width":
+        this._invalidateHasAutoX();
+        break;
+
+      case "minHeight":
+      case "maxHeight":
+      case "height":
+        this._invalidateHasAutoY();
+        break;
+    }
+  }
+
+  // No ELSE because you can also switch from percent to auto
+  if (wasFlex != this[s4])
+  {
+    switch(propData.name)
+    {
+      case "width":
+        this._invalidateHasFlexX();
+        break;
+
+      case "height":
+        this._invalidateHasFlexY();
+        break;
+    }
+  }
+}
+
+qx.Proto._unitDetectionPixelPercentAuto = function(propData, propValue)
+{
+  var r = qx.ui.core.Widget.layoutPropertyTypes[propData.name];
+
+  var s = r.dataType;
+  var p = r.dataParsed;
+  var v = r.dataValue;
+
+  var s1 = r.typePixel;
+  var s2 = r.typePercent;
+  var s3 = r.typeAuto;
+  var s4 = r.typeNull;
+
+  var wasPercent = this[s2];
+  var wasAuto = this[s3];
+
+  switch(this[s] = this._evalUnitsPixelPercentAuto(propValue))
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      this[s1] = true;
+      this[s2] = this[s3] = this[s4] = false;
+      this[p] = this[v] = Math.round(propValue);
+      break;
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+      this[s2] = true;
+      this[s1] = this[s3] = this[s4] = false;
+      this[p] = parseFloat(propValue);
+      this[v] = null;
+      break;
+
+    case qx.ui.core.Widget.TYPE_AUTO:
+      this[s3] = true;
+      this[s1] = this[s2] = this[s4] = false;
+      this[p] = this[v] = null;
+      break;
+
+    default:
+      this[s4] = true;
+      this[s1] = this[s2] = this[s3] = false;
+      this[p] = this[v] = null;
+      break;
+  }
+
+  if (wasPercent != this[s2])
+  {
+    switch(propData.name)
+    {
+      case "minWidth":
+      case "maxWidth":
+      case "width":
+      case "left":
+      case "right":
+        this._invalidateHasPercentX();
+        break;
+
+      case "minHeight":
+      case "maxHeight":
+      case "height":
+      case "top":
+      case "bottom":
+        this._invalidateHasPercentY();
+        break;
+    }
+  }
+
+  // No ELSE because you can also switch from percent to auto
+  if (wasAuto != this[s3])
+  {
+    switch(propData.name)
+    {
+      case "minWidth":
+      case "maxWidth":
+      case "width":
+        this._invalidateHasAutoX();
+        break;
+
+      case "minHeight":
+      case "maxHeight":
+      case "height":
+        this._invalidateHasAutoY();
+        break;
+    }
+  }
+}
+
+qx.Proto._unitDetectionPixelPercent = function(propData, propValue)
+{
+  var r = qx.ui.core.Widget.layoutPropertyTypes[propData.name];
+
+  var s = r.dataType;
+  var p = r.dataParsed;
+  var v = r.dataValue;
+
+  var s1 = r.typePixel;
+  var s2 = r.typePercent;
+  var s3 = r.typeNull;
+
+  var wasPercent = this[s2];
+
+  switch(this[s] = this._evalUnitsPixelPercent(propValue))
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      this[s1] = true;
+      this[s2] = this[s3] = false;
+      this[p] = this[v] = Math.round(propValue);
+      break;
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+      this[s2] = true;
+      this[s1] = this[s3] = false;
+      this[p] = parseFloat(propValue);
+      this[v] = null;
+      break;
+
+    default:
+      this[s3] = true;
+      this[s1] = this[s2] = false;
+      this[p] = this[v] = null;
+      break;
+  }
+
+  if (wasPercent != this[s2])
+  {
+    switch(propData.name)
+    {
+      case "minWidth":
+      case "maxWidth":
+      case "width":
+      case "left":
+      case "right":
+        this._invalidateHasPercentX();
+        break;
+
+      case "minHeight":
+      case "maxHeight":
+      case "height":
+      case "top":
+      case "bottom":
+        this._invalidateHasPercentY();
+        break;
+    }
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INLINE EVENTS
+---------------------------------------------------------------------------
+*/
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.ui.core.Widget.inlineEventMap =
+  {
+    input : "onpropertychange",
+    select : "onselect",
+    scroll : "onscroll",
+    focus : "onfocus",
+    blur : "onblur"
+  }
+
+  qx.Proto.enableInlineEvent = function(vEventName)
+  {
+    var vEventType = qx.ui.core.Widget.inlineEventMap[vEventName];
+
+    if (!this._inlineEvents)
+    {
+      this._inlineEvents = [vEventType];
+    }
+    else
+    {
+      this._inlineEvents.push(vEventType);
+    }
+
+    if (this._isCreated) {
+      this.getElement()[vEventType] = qx.ui.core.Widget.__oninlineevent;
+    }
+  }
+
+  qx.Proto.disableInlineEvent = function(vEventName)
+  {
+    var vEventType = qx.ui.core.Widget.inlineEventMap[vEventName];
+
+    if (this._inlineEvents) {
+      qx.lang.Array.remove(this._inlineEvents, vEventType);
+    }
+
+    if (this._isCreated) {
+      this.getElement()[vEventType] = null;
+    }
+  }
+
+  qx.Proto._addInlineEvents = function(vElement)
+  {
+    if (this._inlineEvents)
+    {
+      for (var i=0, a=this._inlineEvents, l=a.length; i<l; i++) {
+        vElement[a[i]] = qx.ui.core.Widget.__oninlineevent;
+      }
+    }
+  }
+
+  qx.Proto._removeInlineEvents = function(vElement)
+  {
+    if (this._inlineEvents)
+    {
+      for (var i=0, a=this._inlineEvents, l=a.length; i<l; i++) {
+        vElement[a[i]] = null;
+      }
+    }
+  }
+}
+else
+{
+  qx.Proto.enableInlineEvent = function(vEventName)
+  {
+    if (!this._inlineEvents)
+    {
+      this._inlineEvents = [vEventName];
+    }
+    else
+    {
+      this._inlineEvents.push(vEventName);
+    }
+
+    if (this._isCreated) {
+      this.getElement().addEventListener(vEventName, qx.ui.core.Widget.__oninlineevent, false);
+    }
+  }
+
+  qx.Proto.disableInlineEvent = function(vEventName)
+  {
+    if (this._inlineEvents) {
+      qx.lang.Array.remove(this._inlineEvents, vEventName);
+    }
+
+    if (this._isCreated) {
+      this.getElement().removeEventListener(vEventName, qx.ui.core.Widget.__oninlineevent, false);
+    }
+  }
+
+  qx.Proto._addInlineEvents = function(vElement)
+  {
+    if (this._inlineEvents)
+    {
+      for (var i=0, a=this._inlineEvents, l=a.length; i<l; i++) {
+        vElement.addEventListener(a[i], qx.ui.core.Widget.__oninlineevent, false);
+      }
+    }
+  }
+
+  qx.Proto._removeInlineEvents = function(vElement)
+  {
+    if (this._inlineEvents)
+    {
+      for (var i=0, a=this._inlineEvents, l=a.length; i<l; i++) {
+        vElement.removeEventListener(a[i], qx.ui.core.Widget.__oninlineevent, false);
+      }
+    }
+  }
+}
+
+qx.ui.core.Widget.__oninlineevent = function(e)
+{
+  if (!e) {
+    e = window.event;
+  }
+
+  if (this.qx_Widget) {
+    return this.qx_Widget._oninlineevent(e);
+  }
+}
+
+qx.Proto._oninlineevent = function(e)
+{
+  if (qx.ui.core.Widget._inFlushGlobalQueues) {
+    return;
+  }
+
+  // this.debug("Inlineevent: " + e.type);
+
+  switch(e.type)
+  {
+    case "propertychange":
+      this._oninlineproperty(e);
+      break;
+
+    case "input":
+      this._oninlineinput(e);
+      break;
+
+    default:
+      this.createDispatchEvent(e.type);
+  }
+}
+
+qx.Proto._oninlineinput = function(e)
+{
+  this.createDispatchDataEvent("input", this.getComputedValue());
+
+  // Block parents from this event
+  if (e.stopPropagation) {
+    e.stopPropagation();
+  }
+
+  e.returnValue = -1;
+}
+
+qx.Proto._oninlineproperty = function(e)
+{
+  switch(e.propertyName)
+  {
+    case "value":
+      if (!this._inValueProperty) {
+        this._oninlineinput(e);
+      }
+
+      break;
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHILDREN MANAGMENT
+---------------------------------------------------------------------------
+*/
+
+/*!
+  The widget which is at the top level,
+  which contains all others (normally a
+  instance of qx.ui.core.ClientDocument).
+*/
+qx.Proto.getTopLevelWidget = function() {
+  return this._hasParent ? this.getParent().getTopLevelWidget() : null;
+}
+
+/*!
+  Move myself to immediately before another child of the same parent.
+*/
+qx.Proto.moveSelfBefore = function(vBefore) {
+  this.getParent().addBefore(this, vBefore);
+}
+
+/*!
+  Move myself to immediately after another child of the same parent.
+*/
+qx.Proto.moveSelfAfter = function(vAfter) {
+  this.getParent().addAfter(this, vAfter);
+}
+
+/*!
+  Move myself to the head of the list: make me the first child.
+*/
+qx.Proto.moveSelfToBegin = function() {
+  this.getParent().addAtBegin(this);
+}
+
+/*!
+  Move myself to the end of the list: make me the last child.
+*/
+qx.Proto.moveSelfToEnd = function() {
+  this.getParent().addAtEnd(this);
+}
+
+/*!
+  Returns the previous sibling.
+*/
+qx.Proto.getPreviousSibling = function()
+{
+  var p = this.getParent();
+
+  if(p == null) {
+    return null;
+  }
+
+  var cs = p.getChildren();
+  return cs[cs.indexOf(this) - 1];
+}
+
+/*!
+  Returns the next sibling.
+*/
+qx.Proto.getNextSibling = function()
+{
+  var p = this.getParent();
+
+  if(p == null) {
+    return null;
+  }
+
+  var cs = p.getChildren();
+  return cs[cs.indexOf(this) + 1];
+}
+
+/*!
+  Returns the previous visible sibling.
+*/
+qx.Proto.getPreviousVisibleSibling = function()
+{
+  if(!this._hasParent) {
+    return null;
+  }
+
+  var vChildren = this.getParent().getVisibleChildren();
+  return vChildren[vChildren.indexOf(this) - 1];
+}
+
+/*!
+  Returns the next visible sibling.
+*/
+qx.Proto.getNextVisibleSibling = function()
+{
+  if(!this._hasParent) {
+    return null;
+  }
+
+  var vChildren = this.getParent().getVisibleChildren();
+  return vChildren[vChildren.indexOf(this) + 1];
+}
+
+qx.Proto.getPreviousActiveSibling = function(vIgnoreClasses)
+{
+  var vPrev = qx.ui.core.Widget.getActiveSiblingHelper(this, this.getParent(), -1, vIgnoreClasses, null);
+  return vPrev ? vPrev : this.getParent().getLastActiveChild();
+}
+
+qx.Proto.getNextActiveSibling = function(vIgnoreClasses)
+{
+  var vNext = qx.ui.core.Widget.getActiveSiblingHelper(this, this.getParent(), 1, vIgnoreClasses, null);
+  return vNext ? vNext : this.getParent().getFirstActiveChild();
+}
+
+qx.Proto.isFirstChild = function() {
+  return this._hasParent && this.getParent().getFirstChild() == this;
+}
+
+qx.Proto.isLastChild = function() {
+  return this._hasParent && this.getParent().getLastChild() == this;
+}
+
+qx.Proto.isFirstVisibleChild = function() {
+  return this._hasParent && this.getParent().getFirstVisibleChild() == this;
+}
+
+qx.Proto.isLastVisibleChild = function() {
+  return this._hasParent && this.getParent().getLastVisibleChild() == this;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ENABLED MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
+{
+  if (propValue)
+  {
+    this.removeState("disabled");
+  }
+  else
+  {
+    this.addState("disabled");
+
+    // Also reset some states to be sure a pressed/hovered button gets reset
+    this.removeState("over");
+
+    if (qx.OO.isAvailable("qx.ui.form.Button"))
+    {
+      this.removeState("abandoned");
+      this.removeState("pressed");
+    }
+  }
+
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STATE HANDLING
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Returns whether a state is set.
+ *
+ * @param vState {string} the state to check.
+ * @return {boolean} whether the state is set.
+ */
+qx.Proto.hasState = function(vState) {
+  return this._states[vState] ? true : false;
+}
+
+/**
+ * Sets a state.
+ *
+ * @param state {string} the state to set.
+ */
+qx.Proto.addState = function(vState)
+{
+  if (! this._states[vState]) {
+    this._states[vState] = true;
+
+    if (this._hasParent) {
+      qx.ui.core.Widget.addToGlobalStateQueue(this);
+    }
+  }
+}
+
+/**
+ * Clears a state.
+ *
+ * @param vState {string} the state to clear.
+ */
+qx.Proto.removeState = function(vState)
+{
+  if (this._states[vState]) {
+    delete this._states[vState];
+
+    if (this._hasParent) {
+      qx.ui.core.Widget.addToGlobalStateQueue(this);
+    }
+  }
+}
+
+/**
+ * Sets or clears a state.
+ *
+ * @param state {string} the state to set or clear.
+ * @param enabled {boolean} whether the state should be set.
+ *        If false it will be cleared.
+ */
+qx.Proto.setState = function(state, enabled) {
+  if (enabled) {
+    this.addState(state);
+  } else {
+    this.removeState(state);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPEARANCE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._applyInitialAppearance = function()
+{
+  var vAppearance = this.getAppearance();
+
+  if (vAppearance)
+  {
+    try
+    {
+      var r = qx.manager.object.AppearanceManager.getInstance().getAppearanceTheme().initialFrom(vAppearance);
+      if (r) {
+        this.set(r);
+      }
+    }
+    catch(ex)
+    {
+      this.error("Could not apply initial appearance", ex);
+    }
+  }
+}
+
+qx.Proto._applyStateAppearance = function()
+{
+  // HACK: Is there a cleaner way to implement this?
+  // Maybe not use the appearance for this, but a simple property and event handler combination?
+  this._applyStateStyleFocus(this._states);
+
+  var vAppearance = this.getAppearance();
+
+  if (vAppearance)
+  {
+    try
+    {
+      var r = qx.manager.object.AppearanceManager.getInstance().getAppearanceTheme().stateFrom(vAppearance, this._states);
+      if (r) {
+        this.set(r);
+      }
+    }
+    catch(ex)
+    {
+      this.error("Could not apply state appearance", ex);
+    }
+  }
+}
+
+qx.Proto._resetAppearanceThemeWrapper = function(vNewAppearanceTheme, vOldAppearanceTheme)
+{
+  var vAppearance = this.getAppearance();
+
+  if (vAppearance)
+  {
+    var vOldAppearanceThemeObject = qx.manager.object.AppearanceManager.getInstance().getThemeById(vOldAppearanceTheme);
+    var vNewAppearanceThemeObject = qx.manager.object.AppearanceManager.getInstance().getThemeById(vNewAppearanceTheme);
+
+    var vOldAppearanceProperties = qx.lang.Object.mergeWith(vOldAppearanceThemeObject.initialFrom(vAppearance), vOldAppearanceThemeObject.stateFrom(vAppearance, this._states));
+    var vNewAppearanceProperties = qx.lang.Object.mergeWith(vNewAppearanceThemeObject.initialFrom(vAppearance), vNewAppearanceThemeObject.stateFrom(vAppearance, this._states));
+
+    for (var vProp in vOldAppearanceProperties)
+    {
+      if (!(vProp in vNewAppearanceProperties)) {
+        this[qx.OO.resetter[vProp]]();
+      }
+    }
+
+    this.set(vNewAppearanceProperties);
+  }
+}
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  /*
+    Mshtml does not support outlines by css
+  */
+  qx.Proto._applyStateStyleFocus = function(vStates) {}
+}
+else if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.Proto._applyStateStyleFocus = function(vStates)
+  {
+    if (vStates.focused)
+    {
+      if (!qx.event.handler.FocusHandler.mouseFocus && !this.getHideFocus())
+      {
+        this.setStyleProperty("MozOutline", "1px dotted invert");
+      }
+    }
+    else
+    {
+      this.removeStyleProperty("MozOutline");
+    }
+  }
+}
+else
+{
+  qx.Proto._applyStateStyleFocus = function(vStates)
+  {
+    if (vStates.focused)
+    {
+      if (!qx.event.handler.FocusHandler.mouseFocus && !this.getHideFocus())
+      {
+        this.setStyleProperty("outline", "1px dotted invert");
+      }
+    }
+    else
+    {
+      this.setStyleProperty("outline", "0px none");
+    }
+  }
+}
+
+qx.Proto.addToStateQueue = function() {
+  qx.ui.core.Widget.addToGlobalStateQueue(this);
+}
+
+qx.Proto.recursiveAddToStateQueue = function() {
+  this.addToStateQueue();
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPEARANCE MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyAppearance = function(propValue, propOldValue, propData)
+{
+  var vAppearanceThemeObject = qx.manager.object.AppearanceManager.getInstance().getAppearanceTheme();
+
+  var vNewAppearanceProperties = vAppearanceThemeObject.initialFrom(propValue);
+
+  if (this.isCreated()) {
+    qx.lang.Object.mergeWith(vNewAppearanceProperties, vAppearanceThemeObject.stateFrom(propValue, this._states));
+  }
+
+  if (propOldValue)
+  {
+    var vOldAppearanceProperties = vAppearanceThemeObject.initialFrom(propOldValue);
+
+    if (this.isCreated()) {
+      qx.lang.Object.mergeWith(vOldAppearanceProperties, vAppearanceThemeObject.stateFrom(propOldValue, this._states));
+    }
+
+    for (var vProp in vOldAppearanceProperties)
+    {
+      if (!(vProp in vNewAppearanceProperties)) {
+        this[qx.OO.resetter[vProp]]();
+      }
+    }
+  }
+
+  this.set(vNewAppearanceProperties);
+
+  return true;
+}
+
+qx.Proto._recursiveAppearanceThemeUpdate = function(vNewAppearanceTheme, vOldAppearanceTheme)
+{
+  try
+  {
+    this._resetAppearanceThemeWrapper(vNewAppearanceTheme, vOldAppearanceTheme);
+  }
+  catch(ex)
+  {
+    this.error("Failed to update appearance theme", ex);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ELEMENT DATA
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Placeholder method to add attributes and other content to element node
+*/
+qx.Proto._applyElementData = function(el) {}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HTML PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.setHtmlProperty = function(propName, propValue)
+{
+  if (!this._htmlProperties) {
+    this._htmlProperties = {};
+  }
+
+  this._htmlProperties[propName] = propValue;
+
+  if (this._isCreated && this.getElement()[propName] != propValue) {
+    this.getElement()[propName] = propValue;
+  }
+
+  return true;
+}
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto.removeHtmlProperty = function(propName)
+  {
+    if (!this._htmlProperties) {
+      return;
+    }
+
+    delete this._htmlProperties[propName];
+
+    if (this._isCreated) {
+      this.getElement().removeAttribute(propName);
+    }
+
+    return true;
+  }
+}
+else
+{
+  qx.Proto.removeHtmlProperty = function(propName)
+  {
+    if (!this._htmlProperties) {
+      return;
+    }
+
+    delete this._htmlProperties[propName];
+
+    if (this._isCreated)
+    {
+      this.getElement().removeAttribute(propName);
+      delete this.getElement()[propName];
+    }
+
+    return true;
+  }
+}
+
+qx.Proto.getHtmlProperty = function(propName)
+{
+  if (!this._htmlProperties) {
+    return "";
+  }
+
+  return this._htmlProperties[propName] || "";
+}
+
+qx.Proto._applyHtmlProperties = function(vElement)
+{
+  var vProperties = this._htmlProperties;
+
+  if (vProperties)
+  {
+    // this.debug("HTML-Properties: " + qx.lang.Object.getLength(vProperties));
+
+    var propName;
+
+    for (propName in vProperties) {
+      vElement[propName] = vProperties[propName];
+    }
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HTML ATTRIBUTES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.setHtmlAttribute = function(propName, propValue)
+{
+  if (!this._htmlAttributes) {
+    this._htmlAttributes = {};
+  }
+
+  this._htmlAttributes[propName] = propValue;
+
+  if (this._isCreated) {
+    this.getElement().setAttribute(propName, propValue);
+  }
+
+  return true;
+}
+
+qx.Proto.removeHtmlAttribute = function(propName)
+{
+  if (!this._htmlAttributes) {
+    return;
+  }
+
+  delete this._htmlAttributes[propName];
+
+  if (this._isCreated) {
+    this.getElement().removeAttribute(propName);
+  }
+
+  return true;
+}
+
+qx.Proto.getHtmlAttribute = function(propName)
+{
+  if (!this._htmlAttributes) {
+    return "";
+  }
+
+  return this._htmlAttributes[propName] || "";
+}
+
+qx.Proto._applyHtmlAttributes = function(vElement)
+{
+  var vAttributes = this._htmlAttributes;
+
+  if (vAttributes)
+  {
+    // this.debug("HTML-Attributes: " + qx.lang.Object.getLength(vAttributes));
+
+    var propName;
+
+    for (propName in vAttributes) {
+      vElement.setAttribute(propName, vAttributes[propName]);
+    }
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STYLE PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getStyleProperty = function(propName) {
+  return this._styleProperties[propName] || "";
+}
+
+qx.Proto.setStyleProperty = function(propName, propValue)
+{
+  this._styleProperties[propName] = propValue;
+
+  if (this._isCreated)
+  {
+    /*
+      The zIndex and filter properties should always be
+      applied on the "real" element node.
+    */
+    switch(propName)
+    {
+      case "zIndex":
+      case "filter":
+      case "display":
+      case "visibility":
+        var vElement = this.getElement();
+        break;
+
+      default:
+        var vElement = this._getTargetNode();
+    }
+
+    if (vElement) {
+      vElement.style[propName] = propValue;
+    }
+  }
+
+  return true;
+}
+
+qx.Proto.removeStyleProperty = function(propName)
+{
+  delete this._styleProperties[propName];
+
+  if (this._isCreated)
+  {
+    /*
+      The zIndex and filter properties should always be
+      applied on the "real" element node.
+    */
+    switch(propName)
+    {
+      case "zIndex":
+      case "filter":
+      case "display":
+      case "visibility":
+        var vElement = this.getElement();
+        break;
+
+      default:
+        var vElement = this._getTargetNode();
+    }
+
+    if (vElement) {
+      vElement.style[propName] = "";
+    }
+  }
+
+  return true;
+}
+
+qx.Proto._applyStyleProperties = function(vElement)
+{
+  var vProperties = this._styleProperties;
+  var propName;
+
+  var vBaseElement = vElement;
+  var vTargetElement = this._getTargetNode();
+
+  for (propName in vProperties)
+  {
+    /*
+      The zIndex and filter properties should always be
+      applied on the "real" element node.
+    */
+    switch(propName)
+    {
+      case "zIndex":
+      case "filter":
+        vElement = vBaseElement;
+        break;
+
+      default:
+        vElement = vTargetElement;
+    }
+
+    vElement.style[propName] = vProperties[propName];
+  }
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  FOCUS HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.isFocusable = function() {
+  return this.isEnabled() && this.isSeeable() && this.getTabIndex() >= 0;
+}
+
+qx.Proto.isFocusRoot = function() {
+  return false;
+}
+
+qx.Proto.getFocusRoot = function()
+{
+  if(this._hasParent) {
+    return this.getParent().getFocusRoot();
+  }
+
+  return null;
+}
+
+qx.Proto.getActiveChild = function()
+{
+  var vRoot = this.getFocusRoot();
+  if (vRoot) {
+    return vRoot.getActiveChild();
+  }
+
+  return null;
+}
+
+qx.Proto._ontabfocus = qx.util.Return.returnTrue;
+
+qx.Proto._modifyFocused = function(propValue, propOldValue, propData)
+{
+  if (!this.isCreated()) {
+    return true;
+  }
+
+  var vFocusRoot = this.getFocusRoot();
+
+  // this.debug("Focused: " + propValue);
+
+  if (vFocusRoot)
+  {
+    // may be undefined if this widget has been removed
+    if (propValue)
+    {
+      vFocusRoot.setFocusedChild(this);
+      this._visualizeFocus();
+    }
+    else
+    {
+      if (vFocusRoot.getFocusedChild() == this) {
+        vFocusRoot.setFocusedChild(null);
+      }
+
+      this._visualizeBlur();
+    }
+  }
+
+  return true;
+}
+
+qx.Proto._visualizeBlur = function()
+{
+  // Force blur, even if mouseFocus is not active because we
+  // need to be sure that the previous focus rect gets removed.
+  // But this only needs to be done, if there is no new focused element.
+  if (this.getEnableElementFocus() && (!this.getFocusRoot().getFocusedChild() || (this.getFocusRoot().getFocusedChild() && this.getFocusRoot().getFocusedChild().getEnableElementFocus())))
+  {
+    try {
+      this.getElement().blur();
+    } catch(ex) {};
+  }
+
+  this.removeState("focused");
+  return true;
+}
+
+qx.Proto._visualizeFocus = function()
+{
+  //this.info("_visualizeFocus: " + qx.event.handler.FocusHandler.mouseFocus);
+  if (!qx.event.handler.FocusHandler.mouseFocus && this.getEnableElementFocus())
+  {
+    try {
+      this.getElement().focus();
+    } catch(ex) {};
+  }
+
+  this.addState("focused");
+  return true;
+}
+
+qx.Proto.focus = function()
+{
+  delete qx.event.handler.FocusHandler.mouseFocus;
+  this.setFocused(true);
+}
+
+qx.Proto.blur = function()
+{
+  delete qx.event.handler.FocusHandler.mouseFocus;
+  this.setFocused(false);
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CAPTURE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyCapture = function(propValue, propOldValue, propData)
+{
+  var vMgr = qx.event.handler.EventHandler.getInstance();
+
+  if (propOldValue)
+  {
+    vMgr.setCaptureWidget(null);
+  }
+  else if (propValue)
+  {
+    vMgr.setCaptureWidget(this);
+  }
+
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ZINDEX
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyZIndex = function(propValue, propOldValue, propData) {
+  return this.setStyleProperty(propData.name, propValue);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  TAB INDEX
+---------------------------------------------------------------------------
+*/
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto._modifyTabIndex = function(propValue, propOldValue, propData)
+  {
+    if (propValue < 0 || !this.getEnabled()) {
+      this.setHtmlProperty("unselectable",
+                           "on");
+    } else {
+      this.removeHtmlProperty("unselectable");
+    }
+
+    this.setHtmlProperty("tabIndex",
+                         propValue < 0 ? -1 : 1);
+
+    return true;
+  }
+}
+else if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.Proto._modifyTabIndex = function(propValue, propOldValue, propData)
+  {
+    this.setStyleProperty("MozUserFocus",
+                          (propValue < 0
+                           ? "ignore"
+                           : "normal"));
+
+    // be forward compatible (CSS 3 Draft)
+    this.setStyleProperty("userFocus",
+                          (propValue < 0
+                           ? "ignore"
+                           : "normal"));
+
+    return true;
+  }
+}
+else
+{
+  qx.Proto._modifyTabIndex = function(propValue, propOldValue, propData)
+  {
+    // CSS 3 Draft
+    this.setStyleProperty("userFocus",
+                          (propValue < 0
+                           ? "ignore"
+                           : "normal"));
+
+    // IE Backward Compatible
+    if (propValue < 0 || !this.getEnabled()) {
+      this.setHtmlProperty("unselectable",
+                           "on");
+    } else {
+      this.removeHtmlProperty("unselectable");
+    }
+
+    this.setHtmlProperty("tabIndex",
+                         propValue < 0 ? -1 : 1);
+
+    return true;
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CSS CLASS NAME
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.setCssClassName = function(propValue) {
+  this.setHtmlProperty("className", propValue);
+}
+
+qx.Proto.getCssClassName = function() {
+  return this.getHtmlProperty("className");
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  WIDGET FROM POINT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getWidgetFromPoint = function(x, y)
+{
+  var ret = this.getWidgetFromPointHelper(x, y);
+  return ret && ret != this ? ret : null;
+}
+
+qx.Proto.getWidgetFromPointHelper = function(x, y) {
+  return this;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CAN SELECT
+---------------------------------------------------------------------------
+*/
+
+if(qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto._modifySelectable = function(propValue, propOldValue, propData)
+  {
+    if (propValue)
+    {
+      return this.removeHtmlProperty("unselectable");
+    }
+    else
+    {
+      return this.setHtmlProperty("unselectable", "on");
+    }
+  }
+}
+else if(qx.sys.Client.getInstance().isGecko())
+{
+  qx.Proto._modifySelectable = function(propValue, propOldValue, propData)
+  {
+    if (propValue)
+    {
+      this.removeStyleProperty("MozUserSelect");
+    }
+    else
+    {
+      this.setStyleProperty("MozUserSelect", "none");
+    }
+
+    return true;
+  };
+}
+else if (qx.sys.Client.getInstance().isOpera())
+{
+  // No known method available for this client
+  qx.Proto._modifySelectable = function(propValue, propOldValue, propData) {
+    return true;
+  }
+}
+else if (qx.sys.Client.getInstance().isKhtml() || qx.sys.Client.getInstance().isWebkit())
+{
+  qx.Proto._modifySelectable = function(propValue, propOldValue, propData)
+  {
+    // Be forward compatible and use both userSelect and KhtmlUserSelect
+    if (propValue)
+    {
+      this.removeStyleProperty("KhtmlUserSelect");
+    }
+    else
+    {
+      this.setStyleProperty("KhtmlUserSelect", "none");
+    }
+
+    return true;
+  };
+}
+else
+{
+  qx.Proto._modifySelectable = function(propValue, propOldValue, propData)
+  {
+    if (propValue)
+    {
+      return this.removeStyleProperty("userSelect");
+    }
+    else
+    {
+      this.setStyleProperty("userSelect", "none");
+    }
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  OPACITY
+---------------------------------------------------------------------------
+*/
+
+/*!
+Sets the opacity for the widget. Any child widget inside the widget will also
+become (semi-)transparent. The value should be a number between 0 and 1
+inclusive, where 1 means totally opaque and 0 invisible.
+*/
+if(qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto._modifyOpacity = function(propValue, propOldValue, propData)
+  {
+    if(propValue == null || propValue >= 1 || propValue < 0)
+    {
+      this.removeStyleProperty("filter");
+    }
+    else if (qx.util.Validation.isValidNumber(propValue))
+    {
+      this.setStyleProperty("filter",
+                            ("Alpha(Opacity=" +
+                             Math.round(propValue * 100) +
+                             ")"));
+    }
+    else
+    {
+      throw new Error("Unsupported opacity value: " + propValue);
+    }
+
+    return true;
+  }
+}
+else
+{
+  qx.Proto._modifyOpacity = function(propValue, propOldValue, propData)
+  {
+    if(propValue == null || propValue > 1)
+    {
+      if (qx.sys.Client.getInstance().isGecko())
+      {
+        this.removeStyleProperty("MozOpacity");
+      }
+      else if (qx.sys.Client.getInstance().isKhtml())
+      {
+        this.removeStyleProperty("KhtmlOpacity");
+      }
+
+      this.removeStyleProperty("opacity");
+    }
+    else if (qx.util.Validation.isValidNumber(propValue))
+    {
+      propValue = qx.lang.Number.limit(propValue, 0, 1);
+
+      // should we omit gecko's flickering here
+      // and limit the max value to 0.99?
+
+      if (qx.sys.Client.getInstance().isGecko())
+      {
+        this.setStyleProperty("MozOpacity", propValue);
+      }
+      else if (qx.sys.Client.getInstance().isKhtml())
+      {
+        this.setStyleProperty("KhtmlOpacity", propValue);
+      }
+
+      this.setStyleProperty("opacity", propValue);
+    }
+
+    return true;
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CURSOR
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyCursor = function(propValue, propOldValue, propData)
+{
+  if (propValue)
+  {
+    if (propValue == "pointer" &&
+        qx.sys.Client.getInstance().isMshtml()) {
+    this.setStyleProperty("cursor",
+                          "hand");
+    } else {
+    this.setStyleProperty("cursor",
+                          propValue);
+    }
+  }
+  else
+  {
+    this.removeStyleProperty("cursor");
+  }
+
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  BACKGROUND IMAGE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyBackgroundImage = function(propValue, propOldValue, propData)
+{
+  return qx.util.Validation.isValidString(propValue) ?
+    this.setStyleProperty("backgroundImage",
+      "url(" +
+      qx.manager.object.AliasManager.getInstance().resolvePath(propValue) +
+      ")") :
+    this.removeStyleProperty("backgroundImage");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CLIPPING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyClip = function(propValue, propOldValue, propData) {
+  return this._compileClipString();
+}
+
+qx.Proto._compileClipString = function()
+{
+  var vLeft = this.getClipLeft();
+  var vTop = this.getClipTop();
+  var vWidth = this.getClipWidth();
+  var vHeight = this.getClipHeight();
+
+  var vRight, vBottom;
+
+  if(vLeft == null)
+  {
+    vRight = (vWidth == null
+              ? "auto"
+              : vWidth + "px");
+    vLeft = "auto";
+  }
+  else
+  {
+    vRight = (vWidth == null
+              ? "auto"
+              : vLeft + vWidth + "px");
+    vLeft = vLeft + "px";
+  }
+
+  if(vTop == null)
+  {
+    vBottom = (vHeight == null
+               ? "auto"
+               : vHeight + "px");
+    vTop = "auto";
+  }
+  else
+  {
+    vBottom = (vHeight == null
+               ? "auto"
+               : vTop + vHeight + "px");
+    vTop = vTop + "px";
+  }
+
+  return this.setStyleProperty("clip",
+                               ("rect(" +
+                                vTop +
+                                "," +
+                                vRight +
+                                "," +
+                                vBottom +
+                                "," +
+                                vLeft +
+                                ")"));
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  OVERFLOW
+---------------------------------------------------------------------------
+*/
+
+/*
+  This will measure the typical native scrollbar size in the environment
+*/
+qx.ui.core.Widget.initOverflow = function()
+{
+  if (qx.ui.core.Widget.initOverflowDone) {
+    return;
+  }
+
+  var t = document.createElement("div");
+  var s = t.style;
+
+  s.height = s.width = "100px";
+  s.overflow = "scroll";
+
+  document.body.appendChild(t);
+
+  var c = qx.dom.Dimension.getScrollBarSizeRight(t);
+  if (c) {
+    qx.ui.core.Widget.SCROLLBAR_SIZE = c;
+  }
+
+  document.body.removeChild(t);
+
+  qx.ui.core.Widget.initOverflowDone = true;
+}
+
+if (qx.sys.Client.getInstance().isGecko())
+{
+  qx.Proto._modifyOverflow = function(propValue, propOldValue, propData)
+  {
+    var pv = propValue;
+    var pn = propData.name;
+
+    switch(pv)
+    {
+      case "hidden":
+        pv = "-moz-scrollbars-none";
+        break;
+
+      case "scrollX":
+        pv = "-moz-scrollbars-horizontal";
+        break;
+
+      case "scrollY":
+        pv = "-moz-scrollbars-vertical";
+        break;
+    }
+
+    return this._applyOverflow(pn, pv, propValue, propOldValue);
+  }
+}
+
+// Mshtml conforms here to CSS3 Spec. Eventually there will be multiple
+// browsers which support these new overflowX overflowY properties.
+else if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto._modifyOverflow = function(propValue, propOldValue, propData)
+  {
+    var pv = propValue;
+    var pn = propData.name;
+
+    switch(pv)
+    {
+      case "scrollX":
+        pn = "overflowX";
+        pv = "scroll";
+        break;
+
+      case "scrollY":
+        pn = "overflowY";
+        pv = "scroll";
+        break;
+    }
+
+    // Clear up concurrenting rules
+    var a = [ "overflow",
+              "overflowX",
+              "overflowY" ];
+    for (var i=0; i<a.length; i++)
+    {
+      if (a[i]!=pn) {
+        this.removeStyleProperty(a[i]);
+      }
+    }
+
+    return this._applyOverflow(pn, pv, propValue, propOldValue);
+  }
+}
+
+// Opera/Khtml Mode...
+// hopefully somewhat of this is supported in the near future.
+
+// overflow-x and overflow-y are also not supported by Opera 9.0 Beta1
+// and also not if we switch to IE emulation mode
+else
+{
+  qx.Proto._modifyOverflow = function(propValue, propOldValue, propData)
+  {
+    var pv = propValue;
+    var pn = propData.name;
+
+    switch(pv)
+    {
+      case "scrollX":
+      case "scrollY":
+        pv = "scroll";
+        break;
+    }
+
+    return this._applyOverflow(pn, pv, propValue, propOldValue);
+  }
+}
+
+qx.Proto._applyOverflow = function(pn, pv, propValue, propOldValue)
+{
+  // Apply Style
+  this.setStyleProperty(pn, pv);
+
+  // Invalidate Frame
+  this._invalidateFrameWidth();
+  this._invalidateFrameHeight();
+
+  return true;
+}
+
+qx.Proto.getOverflowX = function()
+{
+  var vOverflow = this.getOverflow();
+  return vOverflow == "scrollY" ? "hidden" : vOverflow;
+}
+
+qx.Proto.getOverflowY = function()
+{
+  var vOverflow = this.getOverflow();
+  return vOverflow == "scrollX" ? "hidden" : vOverflow;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HIDE FOCUS
+---------------------------------------------------------------------------
+*/
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto._modifyHideFocus = function(propValue, propOldValue, propData)
+  {
+    this.setHtmlProperty(propData.name, propValue);
+    return true;
+  }
+}
+
+// Need no implementation for others then mshtml, because
+// all these browsers support css outlines and do not
+// have an attribute "hideFocus" as IE.
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  COLORS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyBackgroundColor = function(propValue, propOldValue, propData)
+{
+  if (propOldValue) {
+    propOldValue.remove(this);
+  }
+
+  if (propValue)
+  {
+    this._applyBackgroundColor(propValue.getStyle());
+    propValue.add(this);
+  }
+  else
+  {
+    this._resetBackgroundColor();
+  }
+
+  return true;
+}
+
+qx.Proto._modifyColor = function(propValue, propOldValue, propData)
+{
+  if (propOldValue) {
+    propOldValue.remove(this);
+  }
+
+  if (propValue)
+  {
+    this._applyColor(propValue.getStyle());
+    propValue.add(this);
+  }
+  else
+  {
+    this._resetColor();
+  }
+
+  return true;
+}
+
+qx.Proto._updateColors = function(vColor, vNewValue)
+{
+  if (this.getColor() == vColor) {
+    this._applyColor(vNewValue);
+  }
+
+  if (this.getBackgroundColor() == vColor) {
+    this._applyBackgroundColor(vNewValue);
+  }
+}
+
+qx.Proto._applyColor = function(vNewValue) {
+  this.setStyleProperty("color", vNewValue);
+}
+
+qx.Proto._applyBackgroundColor = function(vNewValue) {
+  this.setStyleProperty("backgroundColor", vNewValue);
+}
+
+qx.Proto._resetColor = function(vNewValue) {
+  this.removeStyleProperty("color");
+}
+
+qx.Proto._resetBackgroundColor = function() {
+  this.removeStyleProperty("backgroundColor");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  BORDER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._cachedBorderTop = 0;
+qx.Proto._cachedBorderRight = 0;
+qx.Proto._cachedBorderBottom = 0;
+qx.Proto._cachedBorderLeft = 0;
+
+qx.Proto._modifyBorder = function(propValue, propOldValue, propData)
+{
+  var vOldTop = this._cachedBorderTop;
+  var vOldRight = this._cachedBorderRight;
+  var vOldBottom = this._cachedBorderBottom;
+  var vOldLeft = this._cachedBorderLeft;
+
+  if (propOldValue) {
+    propOldValue.removeListenerWidget(this);
+  }
+
+  if (propValue)
+  {
+    propValue.addListenerWidget(this);
+
+    this._cachedBorderTop = propValue.getTopWidth();
+    this._cachedBorderRight = propValue.getRightWidth();
+    this._cachedBorderBottom = propValue.getBottomWidth();
+    this._cachedBorderLeft = propValue.getLeftWidth();
+  }
+  else
+  {
+    this._cachedBorderTop = this._cachedBorderRight = this._cachedBorderBottom = this._cachedBorderLeft = 0;
+  }
+
+
+
+  // ----------------
+  // X-AXIS
+  // ----------------
+  if ((vOldLeft + vOldRight) != (this._cachedBorderLeft + this._cachedBorderRight)) {
+    this._invalidateFrameWidth();
+  }
+
+  this.addToQueue("borderX");
+
+
+
+  // ----------------
+  // Y-AXIS
+  // ----------------
+  if ((vOldTop + vOldBottom) != (this._cachedBorderTop + this._cachedBorderBottom)) {
+    this._invalidateFrameHeight();
+  }
+
+  this.addToQueue("borderY");
+
+
+
+
+
+  return true;
+}
+
+qx.Proto.getCachedBorderTop = function() {
+  return this._cachedBorderTop;
+}
+
+qx.Proto.getCachedBorderRight = function() {
+  return this._cachedBorderRight;
+}
+
+qx.Proto.getCachedBorderBottom = function() {
+  return this._cachedBorderBottom;
+}
+
+qx.Proto.getCachedBorderLeft = function() {
+  return this._cachedBorderLeft;
+}
+
+qx.Proto._updateBorder = function(vEdge)
+{
+  // Small hack, remove later: TODO
+  // ?? Anybody have an idea about this TODO?
+  var vBorder = this.getBorder();
+  var vEdgeUp = qx.lang.String.toFirstUp(vEdge);
+
+  var vNewValue = vBorder["get" + vEdgeUp + "Width"]();
+  var vCacheName = "_cachedBorder" + vEdgeUp;
+  var vWidthChanged = this[vCacheName] != vNewValue;
+
+  this[vCacheName] = vNewValue;
+
+  switch(vEdge)
+  {
+    case "left":
+    case "right":
+      if (vWidthChanged) {
+        this.addToJobQueue("borderWidthX");
+      }
+
+      this.addToJobQueue("borderX");
+      break;
+
+    case "top":
+    case "bottom":
+      if (vWidthChanged) {
+        this.addToJobQueue("borderWidthY");
+      }
+
+      this.addToJobQueue("borderY");
+      break;
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PADDING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyPaddingX = function(propValue, propOldValue, propData)
+{
+  this._invalidateFrameWidth();
+  return true;
+}
+
+qx.Proto._modifyPaddingY = function(propValue, propOldValue, propData)
+{
+  this._invalidateFrameHeight();
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CLONE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._clonePropertyIgnoreList = "parent,element,visible";
+
+
+/*!
+Returns a cloned copy of the current instance of qx.ui.core.Widget.
+
+#param cloneRecursive[Boolean]: Should the widget cloned recursive (including all childs)?
+#param customPropertyList[Array]: Optional (reduced) list of properties to copy through
+*/
+
+// TODO: Needs modification to work with new codebase
+qx.Proto.clone = function(cloneRecursive, customPropertyList)
+{
+  var cloneInstance = new this.constructor;
+
+  var propertyName;
+  var propertyList = [];
+  var propertyIngoreList = this._clonePropertyIgnoreList.split(",");
+
+  // Build new filtered property list
+  var sourcePropertyList = qx.util.Validation.isValid(customPropertyList) ? customPropertyList : this._properties.split(",");
+  var sourcePropertyListLength = sourcePropertyList.length-1;
+  do {
+    propertyName = sourcePropertyList[sourcePropertyListLength];
+    if (!qx.lang.Array.contains(propertyIngoreList, propertyName)) {
+      propertyList.push(propertyName);
+    }
+  }
+  while(sourcePropertyListLength--);
+
+  // Apply properties to new clone instance
+  propertyListLength = propertyList.length-1;
+  do {
+    propertyName = qx.lang.String.toFirstUp(propertyList[propertyListLength]);
+    cloneInstance["set" + propertyName](this["get" + propertyName]());
+  }
+  while(propertyListLength--);
+
+  // post apply parent info
+  if (qx.lang.Array.contains(sourcePropertyList, "parent"))
+  {
+    var myParent = this.getParent();
+    if (myParent) {
+      cloneInstance.setParent(myParent);
+    }
+  }
+
+  // clone recursion
+  if (cloneRecursive) {
+    this._cloneRecursive(cloneInstance);
+  }
+
+  return cloneInstance;
+}
+
+qx.Proto._cloneRecursive = function(cloneInstance) {}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  COMMAND INTERFACE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.execute = function()
+{
+  var vCommand = this.getCommand();
+  if (vCommand) {
+    vCommand.execute(this);
+  }
+
+  this.createDispatchEvent("execute");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  NODE ALIASES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._visualPropertyCheck = function()
+{
+  if (!this.isCreated()) {
+    throw new Error("Element must be created previously!");
+  }
+}
+
+qx.Proto.setScrollLeft = function(nScrollLeft)
+{
+  this._visualPropertyCheck();
+  this._getTargetNode().scrollLeft = nScrollLeft;
+}
+
+qx.Proto.setScrollTop = function(nScrollTop)
+{
+  this._visualPropertyCheck();
+  this._getTargetNode().scrollTop = nScrollTop;
+}
+
+qx.Proto.getOffsetLeft = function()
+{
+  this._visualPropertyCheck();
+  return qx.dom.Offset.getLeft(this.getElement());
+}
+
+qx.Proto.getOffsetTop = function()
+{
+  this._visualPropertyCheck();
+  return qx.dom.Offset.getTop(this.getElement());
+}
+
+qx.Proto.getScrollLeft = function()
+{
+  this._visualPropertyCheck();
+  return this._getTargetNode().scrollLeft;
+}
+
+qx.Proto.getScrollTop = function()
+{
+  this._visualPropertyCheck();
+  return this._getTargetNode().scrollTop;
+}
+
+qx.Proto.getClientWidth = function()
+{
+  this._visualPropertyCheck();
+  return this._getTargetNode().clientWidth;
+}
+
+qx.Proto.getClientHeight = function()
+{
+  this._visualPropertyCheck();
+  return this._getTargetNode().clientHeight;
+}
+
+qx.Proto.getOffsetWidth = function()
+{
+  this._visualPropertyCheck();
+  return this.getElement().offsetWidth;
+}
+
+qx.Proto.getOffsetHeight = function()
+{
+  this._visualPropertyCheck();
+  return this.getElement().offsetHeight;
+}
+
+qx.Proto.getScrollWidth = function()
+{
+  this._visualPropertyCheck();
+  return this.getElement().scrollWidth;
+}
+
+qx.Proto.getScrollHeight = function()
+{
+  this._visualPropertyCheck();
+  return this.getElement().scrollHeight;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SCROLL INTO VIEW
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.scrollIntoView = function(vAlignTopLeft)
+{
+  this.scrollIntoViewX(vAlignTopLeft);
+  this.scrollIntoViewY(vAlignTopLeft);
+}
+
+qx.Proto.scrollIntoViewX = function(vAlignLeft)
+{
+  if (!this._isCreated || !this._isDisplayable) {
+    return false;
+  }
+
+  return qx.dom.ScrollIntoView.scrollX(this.getElement(), vAlignLeft);
+}
+
+qx.Proto.scrollIntoViewY = function(vAlignTop)
+{
+  if (!this._isCreated || !this._isDisplayable) {
+    return false;
+  }
+
+  return qx.dom.ScrollIntoView.scrollY(this.getElement(), vAlignTop);
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DRAG AND DROP SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.supportsDrop = function(vDragCache) {
+  return true;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  FADING PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  The amount of steps for the fade.
+ */
+qx.OO.addProperty({ name : 'fadeSteps', type : "number", allowNull : false, defaultValue : 10});
+/*!
+  The duration for the fade.
+ */
+qx.OO.addProperty({ name : 'fadeTime', type : "number", allowNull : false, defaultValue : 400});
+/*!
+  The time between the fade steps.
+ */
+qx.OO.addProperty({ name : 'fadeInterval', type : "number", allowNull : false, defaultValue : 40});
+/*!
+  The current state of a fade in progress.
+ */
+qx.OO.addProperty({ name : 'fadeCounter', type : "number", allowNull : false, defaultValue : 0});
+/*!
+  The amount of oppacity changed on each fade step.
+ */
+qx.OO.addProperty({ name : 'fadeUnit', type : "number", allowNull : false, defaultValue : 10});
+/*!
+  The maximum opacity for a fadeIn.
+ */
+qx.OO.addProperty({ name : 'fadeMax', type : "number", allowNull : false, defaultValue : 100});
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  FADING SUPPORT
+---------------------------------------------------------------------------
+*/
+qx.ui.core.Widget.FADE_IN = 'FADE_IN';
+qx.ui.core.Widget.FADE_OUT = 'FADE_OUT';
+qx.ui.core.Widget.FADE_FINISHED = 'FADE_FINISHED';
+
+
+qx.Proto.fadeIn = function(vSteps, vTime) {
+  if(vSteps) this.setFadeSteps(vSteps);
+  if(vTime) this.setFadeTime(vTime);
+  this._fadeMode = qx.ui.core.Widget.FADE_IN;
+  var timer = this.getFadeTimer();
+  timer.addEventListener("interval", this._onInterval, this);
+  timer.start();
+}
+
+qx.Proto.fadeOut = function(vSteps, vTime) {
+  if(vSteps) this.setFadeSteps(vSteps);
+  if(vTime) this.setFadeTime(vTime);
+  this._fadeMode = qx.ui.core.Widget.FADE_OUT;
+  var timer = this.getFadeTimer();
+  timer.addEventListener("interval", this._onInterval, this);
+  timer.start();
+};
+
+qx.Proto.getFadeTimer = function() {
+  if(this._fadeTimer){
+    this._fadeTimer.setInterval(this.getFadeInterval());
+  } else {
+    this._fadeTimer = new qx.client.Timer(this.getFadeInterval());
+  };
+  return this._fadeTimer;
+};
+
+qx.Proto.resetFader = function() {
+  this.setFadeCounter(0);
+  if(this.getFadeTimer()) {
+    this._fadeTimer.stop();
+    this._fadeTimer.dispose();
+  };
+  this._fadeTimer.dispose();
+  this._fadeTimer = null;
+};
+
+qx.Proto._onInterval = function(e) {
+  this.getFadeTimer().stop();
+  var counter = this.getFadeCounter();
+  switch (this._fadeMode){
+    case qx.ui.core.Widget.FADE_IN:
+      this.setFadeCounter(++counter);
+      if(counter <= this.getFadeSteps()){
+        this.setOpacity(this._computeFadeOpacity());
+        this.getFadeTimer().restart();
+      } else if(this.hasEventListeners(qx.ui.core.Widget.FADE_FINISHED)) {
+        this.createDispatchDataEvent(qx.ui.core.Widget.FADE_FINISHED, qx.ui.core.Widget.FADE_IN);
+      };
+    break;
+
+    case qx.ui.core.Widget.FADE_OUT:
+      this.setFadeCounter(--counter);
+      if(counter >= 0){
+        this.setOpacity(this._computeFadeOpacity());
+        this.getFadeTimer().restart();
+      } else if(this.hasEventListeners(qx.ui.core.Widget.FADE_FINISHED)) {
+        this.createDispatchDataEvent(qx.ui.core.Widget.FADE_FINISHED, qx.ui.core.Widget.FADE_OUT);
+      };
+      break;
+    };
+    qx.ui.core.Widget.flushGlobalQueues();
+};
+
+qx.Proto._modifyFadeSteps = function(propValue, propOldValue, propData) {
+  if(propValue < 1) return;
+  this.setFadeInterval(parseInt(this.getFadeTime() / propValue));
+  this.setFadeUnit(Math.round(this.getFadeMax()/propValue));
+  return true;
+};
+
+qx.Proto._modifyFadeTime = function(propValue, propOldValue, propData) {
+  if(propValue < 1) return;
+  this.setFadeInterval(parseInt(propValue / this.getFadeSteps()));
+  return true;
+};
+
+qx.Proto._modifyFadeUnit = function(propValue, propOldValue, propData) {
+  this.setFadeSteps(Math.round(this.getFadeMax()/propValue));
+  return true;
+};
+
+qx.Proto._modifyFadeMax = function(propValue, propOldValue, propData) {
+  this.setFadeUnit(Math.round(propValue / this.getFadeSteps()));
+  return true;
+};
+
+qx.Proto._computeFadeOpacity = function() {
+  var op = this.getFadeUnit() * this.getFadeCounter() / 100;
+  return(op);
+};
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+qx.Proto.dispose = function()
+{
+  if(this.getDisposed()) {
+    return;
+  }
+
+  var vElement = this.getElement();
+
+  if (vElement)
+  {
+    this._removeInlineEvents(vElement);
+
+    delete this._isCreated;
+
+    vElement.qx_Widget = null;
+
+    this._element = null;
+    this._style = null;
+  }
+
+  this._inlineEvents = null;
+  this._element = null;
+  this._style = null;
+  this._borderElement = null;
+  this._borderStyle = null;
+  this._oldParent = null;
+
+  // should be enough to remove the hashTables
+  delete this._styleProperties;
+  delete this._htmlProperties;
+  delete this._htmlAttributes;
+  delete this._states;
+
+  // remove queue content
+  for (var i in this._jobQueue) {
+    delete this._jobQueue[i];
+  }
+  delete this._jobQueue;
+
+  for (var i in this._layoutChanges) {
+    delete this._layoutChanges[i];
+  }
+  delete this._layoutChanges;
+
+  // dispose the fader
+  if(this._fadeTimer){
+    this._fadeTimer.dispose();
+    this._fadeTimer = null;
+  }
+
+  return qx.core.Target.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/Flash.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/Flash.js
new file mode 100644 (file)
index 0000000..30f3231
--- /dev/null
@@ -0,0 +1,468 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+/*!
+  Original non qooxdoo Version by Geoff Stearns
+    Flash detection and embed - http://blog.deconcept.com/flashobject/
+    FlashObject is (c) 2005 Geoff Stearns and is released under the MIT License
+    http://www.opensource.org/licenses/mit-license.php
+
+  Modified for qooxdoo by Sebastian Werner
+    Based on version 1.2.3
+    Relicensed under LGPL in assent of Geoff Stearns
+*/
+
+qx.OO.defineClass("qx.ui.embed.Flash", qx.ui.basic.Terminator,
+function(vSource, vVersion)
+{
+  qx.ui.basic.Terminator.call(this);
+
+  // Use background handling of qx.ui.core.Widget instead
+  this._params = {};
+  this._variables = {};
+
+  if(qx.util.Validation.isValidString(vSource)) {
+    this.setSource(vSource);
+  }
+
+  this.setVersion(qx.util.Validation.isValidString(vVersion) ? vVersion : qx.ui.embed.Flash.MINREQUIRED);
+});
+
+qx.OO.addProperty({ name : "source", type : "string" });
+qx.OO.addProperty({ name : "version" });
+
+qx.OO.addProperty({ name : "enableExpressInstall", type : "boolean", defaultValue : false });
+qx.OO.addProperty({ name : "enableDetection", type : "boolean", defaultValue : true });
+qx.OO.addProperty({ name : "redirectUrl", type : "string" });
+
+qx.OO.addProperty({ name : "quality", type : "string", impl : "param", defaultValue : "high", possibleValues : [ "low", "autolow", "autohigh", "medium", "high", "best" ] });
+qx.OO.addProperty({ name : "scale", type : "string", impl : "param", defaultValue : "showall", possibleValues : [ "showall", "noborder", "excactfit", "noscale" ] });
+qx.OO.addProperty({ name : "wmode", type : "string", impl : "param", defaultValue : "", possibleValues : [ "window", "opaque", "transparent" ] });
+qx.OO.addProperty({ name : "play", type : "boolean", impl : "param", defaultValue : true });
+qx.OO.addProperty({ name : "loop", type : "boolean", impl : "param", defaultValue : true });
+qx.OO.addProperty({ name : "menu", type : "boolean", impl : "param", defaultValue : true });
+
+qx.ui.embed.Flash.EXPRESSINSTALL = [6,0,65];
+qx.ui.embed.Flash.MINREQUIRED = "1";
+qx.ui.embed.Flash.PLAYERVERSION = null;
+qx.ui.embed.Flash.PLUGINKEY = "Shockwave Flash";
+qx.ui.embed.Flash.ACTIVEXKEY = "ShockwaveFlash.ShockwaveFlash";
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PLAYER VERSION CACHE
+---------------------------------------------------------------------------
+*/
+
+qx.ui.embed.Flash.getPlayerVersion = function()
+{
+  if (qx.ui.embed.Flash.PLAYERVERSION != null) {
+    return qx.ui.embed.Flash.PLAYERVERSION;
+  }
+
+  var vPlayerVersion = new qx.type.Version(0,0,0);
+
+  if(navigator.plugins && navigator.mimeTypes.length)
+  {
+    var x = navigator.plugins[qx.ui.embed.Flash.PLUGINKEY];
+
+    if(x && x.description) {
+      vPlayerVersion = new qx.type.Version(x.description.replace(/([a-z]|[A-Z]|\s)+/, '').replace(/(\s+r|\s+b[0-9]+)/, '.'));
+    }
+  }
+  else if (window.ActiveXObject)
+  {
+    try {
+      var axo = new ActiveXObject(qx.ui.embed.Flash.ACTIVEXKEY);
+       vPlayerVersion = new qx.type.Version(axo.GetVariable("$version").split(" ")[1].split(","));
+    }
+    catch (e) {}
+  }
+
+  return qx.ui.embed.Flash.PLAYERVERSION = vPlayerVersion;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  BASICS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._version = null;
+qx.Proto._source = "";
+
+qx.Proto._applyElementData = function(el)
+{
+  qx.ui.basic.Terminator.prototype._applyElementData.call(this, el);
+
+  // Check for ExpressInstall
+  this._expressInstall = false;
+
+  if (this.getEnableExpressInstall())
+  {
+    // check to see if we need to do an express install
+    var expressInstallReqVer = new qx.type.Version(qx.ui.embed.Flash.EXPRESSINSTALL);
+    var installedVer = qx.ui.embed.Flash.getPlayerVersion();
+
+    if (installedVer.versionIsValid(expressInstallReqVer) && !installedVer.versionIsValid(this._version)) {
+      this._expressInstall = true;
+    }
+  }
+
+  // this.debug("ExpressInstall Enabled: " + this._expressInstall);
+
+  // Apply HTML
+  if(!this.getEnableDetection() || this._expressInstall || qx.ui.embed.Flash.getPlayerVersion().versionIsValid(this._version))
+  {
+    el.innerHTML = this.generateHTML();
+  }
+  else
+  {
+    var redir = this.getRedirectUrl();
+
+    if(redir != "") {
+      document.location.replace(redir);
+    }
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifySource = function(propValue, propOldValue, propName)
+{
+  this._source = qx.util.Validation.isValidString(propValue) ? qx.manager.object.AliasManager.getInstance().resolvePath(propValue) : "";
+  return true;
+}
+
+qx.Proto._modifyVersion = function(propValue, propOldValue, propData)
+{
+  if (this._version)
+  {
+    this._version.dispose();
+    this._version = null;
+  }
+
+  if (qx.util.Validation.isValidString(propValue)) {
+    this._version = new qx.type.Version(propValue);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyParam = function(propValue, propOldValue, propData)
+{
+  this.setParam(propData.name, propValue.toString());
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  OVERWRITE BACKGROUND COLOR HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyBackgroundColor = function(propValue, propOldValue, propData)
+{
+  if (propOldValue) {
+    propOldValue.remove(this);
+  }
+
+  if (propValue)
+  {
+    this._applyBackgroundColor(propValue.getHex());
+    propValue.add(this);
+  }
+  else
+  {
+    this._resetBackgroundColor();
+  }
+
+  return true;
+}
+
+qx.Proto._applyBackgroundColor = function(vNewValue) {
+  this.setParam("bgcolor", vNewValue);
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PARAMS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.setParam = function(name, value){
+  this._params[name] = value;
+}
+
+qx.Proto.getParam = function(name){
+  return this._params[name];
+}
+
+qx.Proto.getParams = function() {
+  return this._params;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  VARIABLES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.setVariable = function(name, value){
+  this._variables[name] = value;
+}
+
+qx.Proto.getVariable = function(name){
+  return this._variables[name];
+}
+
+qx.Proto.getVariables = function(){
+  return this._variables;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HTML UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.generateParamTags = function()
+{
+  var vParams = this.getParams();
+  var vParamTags = [];
+
+  for (var vKey in vParams)
+  {
+    vParamTags.push("<param name='");
+    vParamTags.push(vKey);
+    vParamTags.push("' value='");
+    vParamTags.push(vParams[vKey]);
+    vParamTags.push("'/>");
+  }
+
+  return vParamTags.join("");
+}
+
+qx.Proto.getVariablePairs = function()
+{
+  var variables = this.getVariables();
+  var variablePairs = [];
+
+  for (var key in variables) {
+    variablePairs.push(key + "=" + variables[key]);
+  }
+
+  return variablePairs.join("&");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HTML GENERATOR
+---------------------------------------------------------------------------
+*/
+
+// Netscape Plugin Architecture
+if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length)
+{
+  qx.Proto.generateHTML = function()
+  {
+    var html = [];
+
+    // Express Install Handling
+    if (this._expressInstall)
+    {
+      document.title = document.title.slice(0, 47) + ' - Flash Player Installation';
+
+      this.addVariable('MMredirectURL', escape(window.location));
+      this.addVariable('MMdoctitle', document.title);
+      this.addVariable('MMplayerType', 'PlugIn');
+    }
+
+    html.push("<embed type='application/x-shockwave-flash' width='100%' height='100%' src='");
+    html.push(this._source);
+    html.push("'");
+
+    var params = this.getParams();
+
+    for (var key in params)
+    {
+      html.push(" ");
+      html.push(key);
+      html.push("=");
+      html.push("'");
+      html.push(params[key]);
+      html.push("'");
+    }
+
+    var pairs = this.getVariablePairs();
+
+    if (pairs.length > 0)
+    {
+      html.push(" ");
+      html.push("flashvars");
+      html.push("=");
+      html.push("'");
+      html.push(pairs);
+      html.push("'");
+    }
+
+    html.push("></embed>");
+
+    return html.join("");
+  }
+}
+
+// Internet Explorer ActiveX Architecture
+else
+{
+  qx.Proto.generateHTML = function()
+  {
+    var html = [];
+
+    // Express Install Handling
+    if (this._expressInstall)
+    {
+      document.title = document.title.slice(0, 47) + ' - Flash Player Installation';
+
+      this.addVariable("MMredirectURL", escape(window.location));
+      this.addVariable("MMdoctitle", document.title);
+      this.addVariable("MMplayerType", "ActiveX");
+    }
+
+    html.push("<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width='100%' height='100%'>");
+    html.push("<param name='movie' value='");
+    html.push(this._source);
+    html.push("'/>");
+
+    var tags = this.generateParamTags();
+
+    if(tags.length > 0) {
+      html.push(tags);
+    }
+
+    var pairs = this.getVariablePairs();
+
+    if(pairs.length > 0)
+    {
+      html.push("<param name='flashvars' value='");
+      html.push(pairs);
+      html.push("'/>");
+    }
+
+    html.push("</object>");
+
+    return html.join("");
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  METHODS TO GIVE THE LAYOUTERS INFORMATIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._isWidthEssential = qx.util.Return.returnTrue;
+qx.Proto._isHeightEssential = qx.util.Return.returnTrue;
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PREFERRED DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._computePreferredInnerWidth = qx.util.Return.returnZero;
+qx.Proto._computePreferredInnerHeight = qx.util.Return.returnZero;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  delete this._source;
+  delete this._params;
+  delete this._variables;
+
+  if (this._version)
+  {
+    this._version.dispose();
+    this._version = null;
+  }
+
+  qx.ui.basic.Terminator.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/Gallery.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/Gallery.js
new file mode 100644 (file)
index 0000000..11a40e9
--- /dev/null
@@ -0,0 +1,556 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+/**
+ * @event beforeToolTipAppear {qx.event.type.Event}
+ * @event loadComplete {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.ui.embed.Gallery", qx.ui.basic.Terminator,
+function(vGalleryList)
+{
+  qx.ui.basic.Terminator.call(this);
+
+  this._blank = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
+  this._list = vGalleryList;
+  this._listSize = vGalleryList.length;
+  this._processedImages = 0;
+
+  this.setOverflow("auto");
+
+  this.setHtmlProperty("className", "qx_ui_embed_Gallery");
+
+  this._manager = new qx.manager.selection.DomSelectionManager(this);
+
+  this._manager.setMultiColumnSupport(true);
+
+  this.addEventListener("mousedown", this._onmousedown);
+  this.addEventListener("mouseup", this._onmouseup);
+  this.addEventListener("mousemove", this._onmousemove);
+
+  this.addEventListener("click", this._onclick);
+  this.addEventListener("dblclick", this._ondblclick);
+
+  this.addEventListener("keypress", this._onkeypress);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "thumbMaxWidth", type : "number", defaultValue : 100 });
+qx.OO.addProperty({ name : "thumbMaxHeight", type : "number", defaultValue : 100 });
+qx.OO.addProperty({ name : "decorHeight", type : "number", defaultValue : 40 });
+qx.OO.addProperty({ name : "showTitle", type : "boolean", defaultValue : true });
+qx.OO.addProperty({ name : "showComment", type : "boolean", defaultValue : true });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ELEMENT HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._applyElementData = function() {
+  this.getElement().appendChild(this.createView());
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getManager = function() {
+  return this._manager;
+}
+
+qx.Proto.getList = function() {
+  return this._list;
+}
+
+qx.Proto.update = function(vGalleryList)
+{
+  this._manager.deselectAll();
+
+  this._list = vGalleryList;
+
+  var el = this.getElement();
+  el.replaceChild(this.createView(), el.firstChild);
+}
+
+qx.Proto.removeAll = function()
+{
+  this._manager.deselectAll();
+  this.getElement().innerHTML = "";
+}
+
+qx.Proto.updateImageById = function(vId, vSrc, vWidth, vHeight) {
+  this.updateImageSrcById(vId, vSrc);
+  this.updateImageDimensionsById(vId, vWidth, vHeight);
+}
+
+qx.Proto.updateImageDimensionsById = function(vId, vWidth, vHeight) {
+  this.updateImageDimensionsByPosition(this.getPositionById(vId), vWidth, vHeight);
+}
+
+qx.Proto.updateImageDimensionsByPosition = function(vPos, vWidth, vHeight) {
+  // TBD: compare dimensions with max. thumb size and scale proportionally if necessary
+  if (vPos == -1) {
+    throw new Error("No valid Position: " + vPos);
+  }
+
+  var cnode = this.getNodeByPosition(vPos).getElementsByTagName("img")[0];
+
+  cnode.width = vWidth;
+  cnode.height = vHeight;
+
+  cnode.style.marginLeft = cnode.style.marginRight = Math.floor((this.getThumbMaxWidth()-vWidth)/2) + "px";
+  cnode.style.marginTop = cnode.style.marginBottom = Math.floor((this.getThumbMaxHeight()-vHeight)/2) + "px";
+
+  this._list[vPos].thumbWidth = vWidth;
+  this._list[vPos].thumbHeight = vHeight;
+}
+
+qx.Proto.updateImageSrcById = function(vId, vSrc) {
+  this.updateImageSrcByPosition(this.getPositionById(vId), vSrc);
+}
+
+qx.Proto.updateImageSrcByPosition = function(vPos, vSrc)
+{
+  if (vPos == -1) {
+    throw new Error("No valid Position: " + vPos);
+  }
+
+  var vNode = this.getNodeByPosition(vPos);
+
+  vNode.getElementsByTagName("img")[0].src = vSrc;
+  this._list[vPos].src = vSrc;
+}
+
+qx.Proto.deleteById = function(vId) {
+  this.deleteByPosition(this.getPositionById(vId));
+}
+
+qx.Proto.deleteByPosition = function(vPos)
+{
+  this._manager.deselectAll();
+
+  if (vPos == -1) {
+    throw new Error("No valid Position: " + vPos);
+  }
+
+  var vNode = this.getNodeByPosition(vPos);
+
+  if (vNode) {
+    vNode.parentNode.removeChild(vNode);
+  }
+
+  this._list.splice(vPos, 1);
+}
+
+qx.Proto.getPositionById = function(vId)
+{
+  for (var i=0, a=this._list, l=a.length; i<l; i++) {
+    if (a[i].id == vId) {
+      return i;
+    }
+  }
+
+  return -1;
+}
+
+qx.Proto.getEntryById = function(vId) {
+  return this.getEntryByPosition(this.getPositionById(vId));
+}
+
+qx.Proto.getNodeById = function(vId) {
+  return this.getNodeByPosition(this.getPositionById(vId));
+}
+
+qx.Proto.getEntryByPosition = function(vPosition) {
+  return vPosition == -1 ? null : this._list[vPosition];
+}
+
+qx.Proto.getNodeByPosition = function(vPosition) {
+  return vPosition == -1 ? null : this._frame.childNodes[vPosition];
+}
+
+qx.Proto.getEntryByNode = function(vNode) {
+  return this.getEntryById(vNode.id);
+}
+
+qx.Proto.addFromPartialList = function(vPartialList)
+{
+  this.concat(vPartialList);
+
+  for (var i=0, a=vPartialList, l=a.length; i<l; i++) {
+    this._frame.appendChild(this.createCell(a[i], i));
+  }
+}
+
+qx.Proto.addFromUpdatedList = function(vNewList)
+{
+  for (var a=vNewList, l=a.length, i=this._list.length; i<l; i++) {
+    this._frame.appendChild(this.createCell(a[i], i));
+  }
+
+  this._list = vNewList;
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmousedown = function(e)
+{
+  var vItem = this.getListItemTarget(e.getDomTarget());
+
+  if (vItem) {
+    this._manager.handleMouseDown(vItem, e);
+  }
+}
+
+qx.Proto._onmouseup = function(e)
+{
+  var vItem = this.getListItemTarget(e.getDomTarget());
+
+  if (vItem) {
+    this._manager.handleMouseUp(vItem, e);
+  }
+}
+
+qx.Proto._onmousemove = function(e)
+{
+  if (qx.OO.isAvailable("qx.manager.object.ToolTipManager")) {
+    return;
+  }
+
+  var vItem = this.getListItemTarget(e.getDomTarget());
+
+  if (vItem == this._lastItem) {
+    return;
+  }
+
+  if (this._lastItem)
+  {
+    var vEventObject = new qx.event.type.MouseEvent("mouseout", e, false, this._lastItem);
+    qx.manager.object.ToolTipManager.getInstance().handleMouseOut(vEventObject);
+    vEventObject.dispose();
+  }
+
+  if (vItem)
+  {
+    if (this.hasEventListeners("beforeToolTipAppear")) {
+      this.dispatchEvent(new qx.event.type.DataEvent("beforeToolTipAppear", vItem), true);
+    }
+
+    if (!this.getToolTip()) {
+      return;
+    }
+
+    var vEventObject = new qx.event.type.MouseEvent("mouseout", e, false, vItem);
+    qx.manager.object.ToolTipManager.getInstance().handleMouseOver(vEventObject);
+    vEventObject.dispose();
+
+    this.setToolTip(null);
+  }
+
+  this._lastItem = vItem;
+}
+
+qx.Proto._onclick = function(e)
+{
+  var vItem = this.getListItemTarget(e.getDomTarget());
+
+  if (vItem) {
+    this._manager.handleClick(vItem, e);
+  }
+}
+
+qx.Proto._ondblclick = function(e)
+{
+  var vItem = this.getListItemTarget(e.getDomTarget());
+
+  if (vItem) {
+    this._manager.handleDblClick(vItem, e);
+  }
+}
+
+qx.Proto._onkeypress = function(e) {
+  this._manager.handleKeyPress(e);
+}
+
+qx.Proto.getListItemTarget = function(dt)
+{
+  while(dt.className.indexOf("galleryCell") == -1 && dt.tagName.toLowerCase() != "body") {
+    dt = dt.parentNode;
+  }
+
+  if (dt.tagName.toLowerCase() == "body") {
+    return null;
+  }
+
+  return dt;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SCROLL INTO VIEW
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.scrollItemIntoView = function(vItem)
+{
+  this.scrollItemIntoViewX(vItem);
+  this.scrollItemIntoViewY(vItem);
+}
+
+qx.Proto.scrollItemIntoViewX = function(vItem) {
+  qx.dom.ScrollIntoView.scrollX(vItem);
+}
+
+qx.Proto.scrollItemIntoViewY = function(vItem) {
+  qx.dom.ScrollIntoView.scrollY(vItem);
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MANAGER REQUIREMENTS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getItems = function() {
+  return this._frame.childNodes;
+}
+
+qx.Proto.getFirstChild = function() {
+  return this._frame.childNodes[0];
+}
+
+qx.Proto.getLastChild = function() {
+  return this._frame.childNodes[this._frame.childNodes.length-1];
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INTERNALS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.createView = function()
+{
+  var s = (new Date).valueOf();
+
+  if (!this._protoCell) {
+    this.createProtoCell();
+  }
+
+  this._frame = document.createElement("div");
+  this._frame.className = "galleryFrame clearfix";
+
+  for (var i=0, a=this._list, l=a.length; i<l; i++) {
+    this._frame.appendChild(this.createCell(a[i], i));
+  }
+
+  return this._frame;
+}
+
+qx.Proto.createCell = function(d, i)
+{
+  var cframe = this._protoCell.cloneNode(true);
+
+  cframe.id = d.id;
+  cframe.pos = i;
+
+  if (this.getShowTitle())
+  {
+    cnode = cframe.childNodes[0];
+    cnode.firstChild.nodeValue = d.title;
+  }
+
+  var cnode = cframe.childNodes[this.getShowTitle() ? 1 : 0];
+  this.createImageCell(cnode, d);
+
+  if (this.getShowComment())
+  {
+    cnode = cframe.childNodes[this.getShowTitle() ? 2 : 1];
+    cnode.firstChild.nodeValue = d.comment;
+  }
+
+  return cframe;
+}
+
+qx.Proto._mshtml = qx.sys.Client.getInstance().isMshtml();
+
+qx.Proto.createImageCell = function(inode, d)
+{
+  if (this.hasEventListeners("loadComplete"))
+  {
+    inode.onload = qx.ui.embed.Gallery.imageOnLoad;
+    inode.onerror = qx.ui.embed.Gallery.imageOnError;
+    inode.gallery = this;
+  }
+
+  if (this._mshtml) {
+    inode.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + d.src + "',sizingMethod='scale')";
+  } else {
+    inode.src = d.src;
+  }
+
+  inode.width = d.thumbWidth + 2;
+  inode.height = d.thumbHeight + 2;
+  inode.style.marginLeft = inode.style.marginRight = Math.floor((this.getThumbMaxWidth()-d.thumbWidth)/2) + "px";
+  inode.style.marginTop = inode.style.marginBottom = Math.floor((this.getThumbMaxHeight()-d.thumbHeight)/2) + "px";
+}
+
+qx.Proto.imageOnComplete = function()
+{
+  this._processedImages++;
+
+  if(this._processedImages == this._listSize) {
+    this.dispatchEvent(new qx.event.type.Event("loadComplete"), true);
+  }
+}
+
+qx.ui.embed.Gallery.imageOnLoad = function()
+{
+  this.gallery.imageOnComplete();
+  this.gallery = null;
+  this.onload = null;
+  this.onerror = null;
+}
+
+qx.ui.embed.Gallery.imageOnError = function()
+{
+  this.gallery.imageOnComplete();
+  this.gallery = null;
+  this.onload = null;
+  this.onerror = null;
+}
+
+qx.Proto.createProtoCell = function()
+{
+  var frame = this._protoCell = document.createElement("div");
+  frame.className = "galleryCell";
+  frame.unselectable = "on";
+  frame.style.width = (this.getThumbMaxWidth() + 2) + "px";
+  frame.style.height = (this.getThumbMaxHeight() + this.getDecorHeight() + 2) + "px";
+
+  if (this.getShowTitle())
+  {
+    var title = document.createElement("div");
+    title.className = "galleryTitle";
+    title.unselectable = "on";
+    var ttext = document.createTextNode("-");
+    title.appendChild(ttext);
+
+    frame.appendChild(title);
+  }
+
+  var image = new Image();
+  image.src = this._blank;
+  frame.appendChild(image);
+
+  if (this.getShowComment())
+  {
+    var comment = document.createElement("div");
+    comment.className = "galleryComment";
+    comment.unselectable = "on";
+    var ctext = document.createTextNode("-");
+    comment.appendChild(ctext);
+
+    frame.appendChild(comment);
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  this._list = null;
+  this._protoCell = null;
+  this._frame = null;
+
+  if (this._manager)
+  {
+    this._manager.dispose();
+    this._manager = null;
+  }
+
+  this.removeEventListener("mousedown", this._onmousedown);
+  this.removeEventListener("mouseup", this._onmouseup);
+  this.removeEventListener("mousemove", this._onmousemove);
+
+  this.removeEventListener("click", this._onclick);
+  this.removeEventListener("dblclick", this._ondblclick);
+
+  this.removeEventListener("keypress", this._onkeypress);
+
+  return qx.ui.basic.Terminator.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/GalleryList.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/GalleryList.js
new file mode 100644 (file)
index 0000000..c95b014
--- /dev/null
@@ -0,0 +1,400 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+/**
+ * @event loadComplete {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.ui.embed.GalleryList", qx.ui.basic.Terminator,
+function(galleryList)
+{
+  qx.ui.basic.Terminator.call(this);
+
+  this._blank = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
+  this._list = galleryList;
+  this._listSize = galleryList.length;
+  this._processedImages = 0;
+
+  this.setOverflow("auto");
+
+  this.setHtmlProperty("className", "qx_ui_embed_GalleryList");
+
+  this._manager = new qx.manager.selection.DomSelectionManager(this);
+
+  this.addEventListener("mousedown", this._onmousedown);
+  this.addEventListener("mouseup", this._onmouseup);
+  this.addEventListener("click", this._onclick);
+  this.addEventListener("dblclick", this._ondblclick);
+  this.addEventListener("keypress", this._onkeypress);
+});
+
+qx.OO.addProperty({ name : "thumbMaxWidth", type : "number", defaultValue : 60 });
+qx.OO.addProperty({ name : "thumbMaxHeight", type : "number", defaultValue : 60 });
+qx.OO.addProperty({ name : "decorHeight", type : "number", defaultValue : 40 });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ELEMENT HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._applyElementData = function() {
+  this.getElement().appendChild(this.createView());
+}
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getManager = function() {
+  return this._manager;
+}
+
+
+qx.Proto.update = function(vGalleryList)
+{
+  this._manager.deselectAll();
+
+  this._list = vGalleryList;
+
+  var el = this.getElement();
+  el.replaceChild(this.createView(), el.firstChild);
+}
+
+
+qx.Proto.removeAll = function()
+{
+  this._manager.deselectAll();
+  this.getElement().innerHTML = "";
+}
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmousedown = function(e)
+{
+  var vItem = this.getListItemTarget(e.getDomTarget());
+
+  if (vItem) {
+    this._manager.handleMouseDown(vItem, e);
+  }
+}
+
+qx.Proto._onmouseup = function(e)
+{
+  var vItem = this.getListItemTarget(e.getDomTarget());
+
+  if (vItem) {
+    this._manager.handleMouseUp(vItem, e);
+  }
+}
+
+qx.Proto._onclick = function(e)
+{
+  var vItem = this.getListItemTarget(e.getDomTarget());
+
+  if (vItem) {
+    this._manager.handleClick(vItem, e);
+  }
+}
+
+qx.Proto._ondblclick = function(e)
+{
+  var vItem = this.getListItemTarget(e.getDomTarget());
+
+  if (vItem) {
+    this._manager.handleDblClick(vItem, e);
+  }
+}
+
+qx.Proto._onkeypress = function(e) {
+  this._manager.handleKeyPress(e);
+}
+
+qx.Proto.getListItemTarget = function(dt)
+{
+  while(dt.className.indexOf("galleryCell") == -1 && dt.tagName.toLowerCase() != "body") {
+    dt = dt.parentNode;
+  }
+
+  if (dt.tagName.toLowerCase() == "body") {
+    return null;
+  }
+
+  return dt;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SCROLL INTO VIEW
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.scrollItemIntoView = function(vItem)
+{
+  this.scrollItemIntoViewX(vItem);
+  this.scrollItemIntoViewY(vItem);
+}
+
+qx.Proto.scrollItemIntoViewX = function(vItem) {
+  qx.dom.ScrollIntoView.scrollX(vItem);
+}
+
+qx.Proto.scrollItemIntoViewY = function(vItem) {
+  qx.dom.ScrollIntoView.scrollY(vItem);
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SELECTION MANAGER API
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getItems = function() {
+  return this._frame.childNodes;
+}
+
+qx.Proto.getFirstChild = function() {
+  return this._frame.childNodes[0];
+}
+
+qx.Proto.getLastChild = function() {
+  return this._frame.childNodes[this._frame.childNodes.length-1];
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CREATE VIEW
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.createView = function()
+{
+  var s = (new Date).valueOf();
+
+  var protoCell = this.createProtoCell(this.getThumbMaxHeight());
+  var frame = this._frame = document.createElement("div");
+
+  this._frame.className = "galleryFrame clearfix";
+
+  var cframe, cnode;
+
+  for (var i=0, a=this._list, l=a.length, d; i<l; i++)
+  {
+    d = a[i];
+
+    cframe = protoCell.cloneNode(true);
+
+    cframe.id = d.id;
+    cframe.pos = i;
+
+    cnode = cframe.childNodes[0];
+    cnode.firstChild.nodeValue = d.number;
+
+    cnode = cframe.childNodes[1].firstChild;
+    this.createImageCell(cnode, d);
+
+    cnode = cframe.childNodes[2].firstChild;
+    cnode.firstChild.nodeValue = d.title;
+
+    cnode = cframe.childNodes[2].lastChild;
+    cnode.firstChild.nodeValue = d.comment;
+
+    frame.appendChild(cframe);
+  }
+
+  return frame;
+}
+
+qx.Proto._mshtml = qx.sys.Client.getInstance().isMshtml();
+
+qx.Proto.createImageCell = function(inode, d)
+{
+  if (this.hasEventListeners("loadComplete")) {
+    inode.onload = qx.ui.embed.GalleryList.imageOnLoad;
+    inode.onerror = qx.ui.embed.GalleryList.imageOnError;
+    inode.gallery = this;
+  }
+
+  inode.width = d.thumbWidth;
+  inode.height = d.thumbHeight;
+
+  if (this._mshtml) {
+    inode.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + d.src + "',sizingMethod='scale')";
+  } else {
+    inode.src = d.src;
+  }
+
+  inode.style.marginLeft = inode.style.marginRight = Math.floor((this.getThumbMaxWidth()-d.thumbWidth)/2) + "px";
+  inode.style.marginTop = inode.style.marginBottom = Math.floor((this.getThumbMaxHeight()-d.thumbHeight)/2) + "px";
+}
+
+qx.Proto.createProtoCell = function(tHeight)
+{
+  var frame = document.createElement("div");
+  frame.className = "galleryCell";
+  frame.unselectable = "on";
+  frame.style.height = (tHeight + 2) + "px";
+
+  var number = document.createElement("div");
+  number.className = "galleryNumber";
+  number.unselectable = "on";
+  var ntext = document.createTextNode("-");
+  number.appendChild(ntext);
+
+  var imageContainer = document.createElement("div");
+  imageContainer.className = "galleryImageContainer";
+  imageContainer.unselectable = "on";
+
+  var image = new Image();
+  image.src = this._blank;
+
+  imageContainer.appendChild(image);
+
+  var text = document.createElement("div");
+  text.className = "galleryText";
+  text.unselectable = "on";
+  text.style.width = (this.getWidth()-100-this.getThumbMaxWidth()) + "px";
+
+  var title = document.createElement("h3");
+  var ttext = document.createTextNode("-");
+  title.appendChild(ttext);
+  title.unselectable = "on";
+  text.appendChild(title);
+
+  var comment = document.createElement("p");
+  var ctext = document.createTextNode("-");
+  comment.appendChild(ctext);
+  comment.unselectable = "on";
+  text.appendChild(comment);
+
+
+  frame.appendChild(number);
+  frame.appendChild(imageContainer);
+  frame.appendChild(text);
+
+  return frame;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PRELOADING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.imageOnComplete = function()
+{
+  this._processedImages++;
+
+  if(this._processedImages == this._listSize) {
+    this.dispatchEvent(new qx.event.type.Event("loadComplete"), true);
+  }
+}
+
+qx.ui.embed.GalleryList.imageOnLoad = function()
+{
+  this.gallery.imageOnComplete();
+  this.gallery = null;
+  this.onload = null;
+  this.onerror = null;
+}
+
+qx.ui.embed.GalleryList.imageOnError = function()
+{
+  this.gallery.imageOnComplete();
+  this.gallery = null;
+  this.onload = null;
+  this.onerror = null;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  this._list = null;
+  this._frame = null;
+
+  if (this._manager)
+  {
+    this._manager.dispose();
+    this._manager = null;
+  }
+
+  this.removeEventListener("mousedown", this._onmousedown);
+  this.removeEventListener("mouseup", this._onmouseup);
+  this.removeEventListener("click", this._onclick);
+  this.removeEventListener("dblclick", this._ondblclick);
+  this.removeEventListener("keydown", this._onkeydown);
+
+  return qx.ui.basic.Terminator.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/HtmlEmbed.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/HtmlEmbed.js
new file mode 100644 (file)
index 0000000..0649c69
--- /dev/null
@@ -0,0 +1,112 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+#require(qx.renderer.font.FontCache)
+#after(qx.renderer.font.FontObject)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.embed.HtmlEmbed", qx.ui.basic.Terminator,
+function(vHtml)
+{
+  qx.ui.basic.Terminator.call(this);
+
+  if (qx.util.Validation.isValidString(vHtml)) {
+    this.setHtml(vHtml);
+  }
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Any text string which can contain HTML, too
+*/
+qx.OO.addProperty({ name : "html", type : "string" });
+
+/*!
+  The font property describes how to paint the font on the widget.
+*/
+qx.OO.addProperty({ name : "font", type : "object", instance : "qx.renderer.font.Font", convert : qx.renderer.font.FontCache, allowMultipleArguments : true });
+
+/*!
+  Wrap the text?
+*/
+qx.OO.addProperty({ name : "wrap", type : "boolean", defaultValue : true });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyHtml = function()
+{
+  if (this._isCreated) {
+    this._syncHtml();
+  }
+
+  return true;
+}
+
+qx.Proto._modifyFont = function(propValue, propOldValue, propData)
+{
+  if (propValue) {
+    propValue._applyWidget(this);
+  } else if (propOldValue) {
+    propOldValue._resetWidget(this);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyWrap = function(propValue, propOldValue, propData)
+{
+  this.setStyleProperty("whiteSpace", propValue ? "normal" : "nowrap");
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ELEMENT HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._applyElementData = function() {
+  this._syncHtml();
+}
+
+qx.Proto._syncHtml = function() {
+  this.getElement().innerHTML = this.getHtml();
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/IconHtmlEmbed.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/IconHtmlEmbed.js
new file mode 100644 (file)
index 0000000..08e9aa9
--- /dev/null
@@ -0,0 +1,134 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.embed.IconHtmlEmbed", qx.ui.embed.HtmlEmbed,
+function(vHtml, vIcon, vIconWidth, vIconHeight)
+{
+  qx.ui.embed.HtmlEmbed.call(this, vHtml);
+
+  if (typeof vIcon != "undefined")
+  {
+    this.setIcon(vIcon);
+
+    if (typeof vIconWidth != "undefined") {
+      this.setIconWidth(vIconWidth);
+    }
+
+    if (typeof vIconHeight != "undefined") {
+      this.setIconHeight(vIconWidth);
+    }
+  }
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Any URI String supported by qx.ui.basic.Image to display a icon
+*/
+qx.OO.addProperty({ name : "icon", type : "string", impl : "html" });
+
+/*!
+  The width of the icon.
+  If configured, this makes qx.ui.embed.IconHtmlEmbed a little bit faster as it does not need to wait until the image loading is finished.
+*/
+qx.OO.addProperty({ name : "iconWidth", type : "number", impl : "html" });
+
+/*!
+  The height of the icon
+  If configured, this makes qx.ui.embed.IconHtmlEmbed a little bit faster as it does not need to wait until the image loading is finished.
+*/
+qx.OO.addProperty({ name : "iconHeight", type : "number", impl : "html" });
+
+/*!
+  Space in pixels between the icon and the HTML.
+*/
+qx.OO.addProperty({ name : "spacing", type : "number", defaultValue : 4, impl : "html" });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._mshtml = qx.sys.Client.getInstance().isMshtml();
+
+qx.Proto._syncHtml = function()
+{
+  var vHtml = [];
+
+  if (qx.util.Validation.isValidString(this.getIcon()))
+  {
+    vHtml.push("<img src=\"");
+    vHtml.push(qx.manager.object.AliasManager.getInstance().resolvePath(this._mshtml ? "static/image/blank.gif" : this.getIcon()));
+    vHtml.push("\" style=\"vertical-align:middle;");
+
+    if (qx.util.Validation.isValidNumber(this.getSpacing()))
+    {
+      vHtml.push("margin-right:");
+      vHtml.push(this.getSpacing());
+      vHtml.push("px;");
+    }
+
+    if (qx.util.Validation.isValidNumber(this.getIconWidth()))
+    {
+      vHtml.push("width:");
+      vHtml.push(this.getIconWidth());
+      vHtml.push("px;");
+    }
+
+    if (qx.util.Validation.isValidNumber(this.getIconHeight()))
+    {
+      vHtml.push("height:");
+      vHtml.push(this.getIconHeight());
+      vHtml.push("px;");
+    }
+
+    if (this._mshtml)
+    {
+      vHtml.push("filter:");
+      vHtml.push("progid:DXImageTransform.Microsoft.AlphaImageLoader(src='");
+      vHtml.push(qx.manager.object.AliasManager.getInstance().resolvePath(this.getIcon()));
+      vHtml.push("',sizingMethod='scale')");
+      vHtml.push(";");
+    }
+
+    vHtml.push("\"/>");
+  }
+
+  if (qx.util.Validation.isValidString(this.getHtml())) {
+    vHtml.push(this.getHtml());
+  }
+
+  this.getElement().innerHTML = vHtml.join("");
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/Iframe.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/Iframe.js
new file mode 100644 (file)
index 0000000..ef10aa2
--- /dev/null
@@ -0,0 +1,430 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+/**
+ * @event load {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.ui.embed.Iframe", qx.ui.basic.Terminator,
+function(vSource)
+{
+  // **********************************************************************
+  //   INIT
+  // **********************************************************************
+  qx.ui.basic.Terminator.call(this);
+
+  this.setSelectable(false);
+  this.setTabIndex(0);
+
+  var o = this;
+  this.__onreadystatechange = function(e) { return o._onreadystatechange(e); }
+  this.__onload = function(e) { return o._onload(e); }
+
+  if (qx.util.Validation.isValid(vSource)) {
+    this.setSource(vSource);
+  }
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "iframe" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "source", type : "string" });
+
+qx.OO.addProperty({ name : "frameName", type : "string" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INTERNAL PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+
+// iframe DOM node
+
+qx.Proto._iframeNode = null;
+
+qx.Proto.getIframeNode = function() {
+  return this._iframeNode;
+}
+
+qx.Proto.setIframeNode = function(vIframeNode) {
+  return this._iframeNode = vIframeNode;
+}
+
+
+// blocker div DOM node
+
+qx.Proto._blockerNode = null;
+
+qx.Proto.getBlockerNode = function() {
+  return this._blockerNode;
+}
+
+qx.Proto.setBlockerNode = function(vBlockerNode) {
+  return this._blockerNode = vBlockerNode;
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.reload = function() {
+  this._applySource();
+}
+
+
+qx.Proto.block = function()
+{
+  if (this._blockerNode) {
+    this._blockerNode.style.display = "";
+  }
+};
+
+qx.Proto.release = function()
+{
+  if (this._blockerNode) {
+    this._blockerNode.style.display = "none";
+  }
+};
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyElement = function(propValue, propOldValue, propData)
+{
+
+  var iframeNode = this.getIframeNode();
+
+  if (!iframeNode)
+  {
+
+    qx.ui.embed.Iframe.initIframe(this.getFrameName());
+
+    // clone proto element and assign iframe
+    iframeNode = this.setIframeNode(qx.ui.embed.Iframe._element.cloneNode(true));
+
+    qx.ui.embed.Iframe.initBlocker();
+
+    // clone proto blocker
+    blockerNode = this.setBlockerNode(qx.ui.embed.Iframe._blocker.cloneNode(true));
+
+    if (qx.sys.Client.getInstance().isMshtml()) {
+      iframeNode.onreadystatechange = this.__onreadystatechange;
+    } else {
+      iframeNode.onload = this.__onload;
+    }
+  }
+
+  this._applySource();
+
+  propValue.appendChild(iframeNode);
+  propValue.appendChild(blockerNode);
+
+  // create basic widget
+  qx.ui.basic.Terminator.prototype._modifyElement.call(this, propValue, propOldValue, propData);
+
+  return true;
+}
+
+
+qx.Proto._beforeAppear = function() {
+  qx.ui.basic.Terminator.prototype._beforeAppear.call(this);
+
+  // register to iframe manager as active widget
+  qx.manager.object.IframeManager.getInstance().add(this);
+};
+
+
+qx.Proto._beforeDisappear = function() {
+  qx.ui.basic.Terminator.prototype._beforeDisappear.call(this);
+
+  // deregister from iframe manager
+  qx.manager.object.IframeManager.getInstance().remove(this);
+};
+
+
+qx.Proto._modifySource = function(propValue, propOldValue, propData)
+{
+  if(this.isCreated()) {
+    this._applySource();
+  }
+
+  return true;
+}
+
+qx.Proto._applySource = function()
+{
+  var currentSource = this.getSource();
+
+  if (qx.util.Validation.isInvalidString(currentSource)) {
+    currentSource = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
+  }
+
+  this._isLoaded = false;
+  this.getIframeNode().src = currentSource;
+}
+
+qx.Proto._modifyFrameName = function (propValue, propOldValue, propName, uniqModIds)
+{
+  if( this.isCreated()) {
+    throw new Error("Not allowed to set frame name after it has been created");
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onreadystatechange = function()
+{
+  if (this.getIframeNode().readyState == "complete") {
+    this.dispatchEvent(new qx.event.type.Event("load"), true);
+  }
+}
+
+qx.Proto._onload = function()
+{
+  this._isLoaded = true;
+  this.dispatchEvent(new qx.event.type.Event("load"), true);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  WINDOW & DOCUMENT ACCESS
+---------------------------------------------------------------------------
+*/
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto.getContentWindow = function()
+  {
+    if (this.isCreated()) {
+      try { return this.getIframeNode().contentWindow; }
+      catch (ex) {}
+    }
+
+    return null;
+  }
+
+  qx.Proto.getContentDocument = function()
+  {
+    var win = this.getContentWindow();
+    if (win) {
+      try { return win.document; }
+      catch (ex) {}
+    }
+
+    return null;
+  }
+}
+else
+{
+  qx.Proto.getContentWindow = function()
+  {
+    var doc = this.getContentDocument();
+    return doc ? doc.defaultView : null;
+  }
+
+  qx.Proto.getContentDocument = function()
+  {
+    if (this.isCreated()) {
+      try { return this.getIframeNode().contentDocument; }
+      catch (ex) {}
+    }
+
+    return null;
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LOAD STATUS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._isLoaded = false;
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto.isLoaded = function()
+  {
+    var doc = this.getContentDocument();
+    return doc ? doc.readyState == "complete" : false;
+  }
+}
+else
+{
+  qx.Proto.isLoaded = function()
+  {
+    return this._isLoaded;
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this.__onreadystatechange = this.__onload = null;
+
+  if (this._iframeNode)
+  {
+    this._iframeNode.onreadystatechange = null;
+    this._iframeNode.onload = null;
+
+    this._iframeNode = null;
+  }
+
+  qx.ui.basic.Terminator.prototype.dispose.call(this);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INIT
+---------------------------------------------------------------------------
+*/
+qx.ui.embed.Iframe.initIframe = function(vFrameName)
+{
+  if (qx.ui.embed.Iframe._element && !vFrameName) {
+    return;
+  }
+
+  if (vFrameName && qx.sys.Client.getInstance().isMshtml()) {
+    var f = qx.ui.embed.Iframe._element = document.createElement('<iframe name="' + vFrameName + '"></iframe>');
+  } else {
+    var f = qx.ui.embed.Iframe._element = document.createElement("iframe");
+    if (vFrameName) {
+      f.name = vFrameName;
+    }
+   }
+
+  f.frameBorder = "0";
+  f.frameSpacing = "0";
+
+  f.marginWidth = "0";
+  f.marginHeight = "0";
+
+  f.width = "100%";
+  f.height = "100%";
+
+  f.hspace = "0";
+  f.vspace = "0";
+
+  f.border = "0";
+  f.scrolling = "auto";
+  f.unselectable = "on";
+  f.allowTransparency = "true";
+
+  f.style.position = "absolute";
+  f.style.top = 0;
+  f.style.left = 0;
+ };
+
+qx.ui.embed.Iframe.initBlocker = function()
+{
+
+  if (qx.ui.embed.Iframe._blocker) {
+    return;
+  }
+
+  var b = qx.ui.embed.Iframe._blocker = document.createElement("div");
+
+  if (qx.sys.Client.getInstance().isMshtml()) {
+    b.style.backgroundImage = "url(" + qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif") + ")";
+  }
+
+  b.style.position = "absolute";
+  b.style.top = 0;
+  b.style.left = 0;
+  b.style.width = "100%";
+  b.style.height = "100%";
+  b.style.zIndex = 1;
+  b.style.display = "none";
+};
+
+
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/LinkEmbed.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/LinkEmbed.js
new file mode 100644 (file)
index 0000000..97bf2a0
--- /dev/null
@@ -0,0 +1,88 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.embed.LinkEmbed", qx.ui.embed.HtmlEmbed,
+function(vHtml, vUri, vTarget)
+{
+  qx.ui.embed.HtmlEmbed.call(this, vHtml);
+
+  if (typeof vUri != "undefined") {
+    this.setUri(vUri);
+  }
+
+  if (typeof vTarget != "undefined") {
+    this.setTarget(vTarget);
+  }
+});
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Any valid html URI
+*/
+qx.OO.addProperty({ name : "uri", type : "string", defaultValue : "#", impl : "html" });
+
+/*!
+  Any valid html target
+*/
+qx.OO.addProperty({ name : "target", type : "string", defaultValue : "_blank", impl : "html" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.ui.embed.LinkEmbed.LINK_START = "<a target='";
+qx.ui.embed.LinkEmbed.HREF_START = "' href='";
+qx.ui.embed.LinkEmbed.HREF_STOP = "'>";
+qx.ui.embed.LinkEmbed.LINK_STOP = "</a>";
+
+qx.Proto._syncHtml = function()
+{
+  var vHtml = [];
+
+  vHtml.push(qx.ui.embed.LinkEmbed.LINK_START);
+  vHtml.push(this.getTarget());
+  vHtml.push(qx.ui.embed.LinkEmbed.HREF_START);
+  vHtml.push(this.getUri());
+  vHtml.push(qx.ui.embed.LinkEmbed.HREF_STOP);
+  vHtml.push(this.getHtml());
+  vHtml.push(qx.ui.embed.LinkEmbed.LINK_STOP);
+
+  this.getElement().innerHTML = vHtml.join("");
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/NodeEmbed.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/NodeEmbed.js
new file mode 100644 (file)
index 0000000..e5e9fd0
--- /dev/null
@@ -0,0 +1,48 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.embed.NodeEmbed", qx.ui.basic.Terminator,
+function(vId)
+{
+  qx.ui.basic.Terminator.call(this);
+
+  if (qx.util.Validation.isValidString(vId)) {
+    this.setSourceNodeId(vId);
+  }
+});
+
+qx.OO.addProperty({ name : "sourceNodeId", type : "string" });
+
+qx.Proto._createElementImpl = function()
+{
+  var vNode = document.getElementById(this.getSourceNodeId());
+
+  if (!vNode) {
+    throw new Error("Could not find source node with ID: " + this.getSourceNodeId());
+  }
+
+  vNode.style.display = "";
+
+  return this.setElement(vNode);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/TextEmbed.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/TextEmbed.js
new file mode 100644 (file)
index 0000000..d702eef
--- /dev/null
@@ -0,0 +1,121 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+#require(qx.renderer.font.FontCache)
+#after(qx.renderer.font.FontObject)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.embed.TextEmbed", qx.ui.basic.Terminator,
+function(vText)
+{
+  qx.ui.basic.Terminator.call(this);
+
+  if (qx.util.Validation.isValidString(vText)) {
+    this.setText(vText);
+  }
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Any text string which can contain TEXT, too
+*/
+qx.OO.addProperty({ name : "text", type : "string" });
+
+/*!
+  The font property describes how to paint the font on the widget.
+*/
+qx.OO.addProperty({ name : "font", type : "object", instance : "qx.renderer.font.Font", convert : qx.renderer.font.FontCache, allowMultipleArguments : true });
+
+/*!
+  Wrap the text?
+*/
+qx.OO.addProperty({ name : "wrap", type : "boolean", defaultValue : true });
+
+/** The horizontal alignment of the text. */
+qx.OO.addProperty({ name : "textAlign", type : "string", defaultValue : "left", possibleValues : [ "left", "center", "right", "justify" ], allowNull : false });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyText = function()
+{
+  if (this._isCreated) {
+    this._syncText();
+  }
+
+  return true;
+}
+
+qx.Proto._modifyFont = function(propValue, propOldValue, propData)
+{
+  if (propValue) {
+    propValue._applyWidget(this);
+  } else if (propOldValue) {
+    propOldValue._resetWidget(this);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyWrap = function(propValue, propOldValue, propData)
+{
+  this.setStyleProperty("whiteSpace", propValue ? "normal" : "nowrap");
+  return true;
+}
+
+// property modifier
+qx.Proto._modifyTextAlign = function(propValue, propOldValue, propData) {
+  this.setStyleProperty("textAlign", propValue);
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ELEMENT HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._applyElementData = function() {
+  this.getElement().appendChild(document.createTextNode(this.getText()));
+}
+
+qx.Proto._syncText = function() {
+  this.getElement().firstChild.nodeValue = this.getText();
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/Button.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/Button.js
new file mode 100644 (file)
index 0000000..29412a3
--- /dev/null
@@ -0,0 +1,200 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.form.Button", qx.ui.basic.Atom,
+function(vText, vIcon, vIconWidth, vIconHeight, vFlash)
+{
+  // ************************************************************************
+  //   INIT
+  // ************************************************************************
+  qx.ui.basic.Atom.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
+
+  // Make focusable
+  this.setTabIndex(1);
+
+
+  // ************************************************************************
+  //   MOUSE EVENTS
+  // ************************************************************************
+  this.addEventListener("mouseover", this._onmouseover);
+  this.addEventListener("mouseout", this._onmouseout);
+  this.addEventListener("mousedown", this._onmousedown);
+  this.addEventListener("mouseup", this._onmouseup);
+
+
+  // ************************************************************************
+  //   KEY EVENTS
+  // ************************************************************************
+  this.addEventListener("keydown", this._onkeydown);
+  this.addEventListener("keyup", this._onkeyup);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "button" });
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmouseover = function(e)
+{
+  if (e.getTarget() != this) {
+    return;
+  }
+
+  if (this.hasState("abandoned"))
+  {
+    this.removeState("abandoned");
+    this.addState("pressed");
+  }
+
+  this.addState("over");
+}
+
+qx.Proto._onmouseout = function(e)
+{
+  if (e.getTarget() != this) {
+    return;
+  }
+
+  this.removeState("over");
+
+  if (this.hasState("pressed"))
+  {
+    // Activate capturing if the button get a mouseout while
+    // the button is pressed.
+    this.setCapture(true);
+
+    this.removeState("pressed");
+    this.addState("abandoned");
+  }
+}
+
+qx.Proto._onmousedown = function(e)
+{
+  if (e.getTarget() != this || !e.isLeftButtonPressed()) {
+    return;
+  }
+
+  this.removeState("abandoned");
+  this.addState("pressed");
+}
+
+qx.Proto._onmouseup = function(e)
+{
+  this.setCapture(false);
+
+  // We must remove the states before executing the command
+  // because in cases were the window lost the focus while
+  // executing we get the capture phase back (mouseout).
+  var hasPressed = this.hasState("pressed");
+  var hasAbandoned = this.hasState("abandoned");
+
+  if (hasPressed) {
+    this.removeState("pressed");
+  }
+
+  if (hasAbandoned) {
+    this.removeState("abandoned");
+  }
+
+  if (!hasAbandoned)
+  {
+    this.addState("over");
+
+    if (hasPressed) {
+      this.execute();
+    }
+  }
+}
+
+qx.Proto._onkeydown = function(e)
+{
+  switch(e.getKeyIdentifier())
+  {
+    case "Enter":
+    case "Space":
+      this.removeState("abandoned");
+      this.addState("pressed");
+  }
+}
+
+qx.Proto._onkeyup = function(e)
+{
+  switch(e.getKeyIdentifier())
+  {
+    case "Enter":
+    case "Space":
+      if (this.hasState("pressed"))
+      {
+        this.removeState("abandoned");
+        this.removeState("pressed");
+        this.execute();
+      }
+  }
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  // ************************************************************************
+  //   MOUSE EVENTS
+  // ************************************************************************
+  this.removeEventListener("mouseover", this._onmouseover, this);
+  this.removeEventListener("mouseout", this._onmouseout, this);
+  this.removeEventListener("mousedown", this._onmousedown, this);
+  this.removeEventListener("mouseup", this._onmouseup, this);
+
+
+  // ************************************************************************
+  //   KEY EVENTS
+  // ************************************************************************
+  this.removeEventListener("keydown", this._onkeydown, this);
+  this.removeEventListener("keyup", this._onkeyup, this);
+
+
+  // ************************************************************************
+  //   SUPER CLASS
+  // ************************************************************************
+  return qx.ui.basic.Atom.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js
new file mode 100644 (file)
index 0000000..6e414bf
--- /dev/null
@@ -0,0 +1,210 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.form.CheckBox", qx.ui.basic.Atom,
+function(vText, vValue, vName, vChecked)
+{
+  qx.ui.basic.Atom.call(this, vText);
+
+  this.setTabIndex(1);
+  this.setPadding(2, 3);
+
+  this._createIcon();
+
+  if (qx.util.Validation.isValidString(vValue)) {
+    this.setValue(vValue);
+  }
+
+  if (qx.util.Validation.isValidString(vName)) {
+    this.setName(vName);
+  }
+
+  if (qx.util.Validation.isValidBoolean(vChecked)) {
+    this.setChecked(vChecked);
+  } else {
+    this.setChecked(false);
+  }
+
+  this.addEventListener("click", this._onclick);
+  this.addEventListener("keydown", this._onkeydown);
+  this.addEventListener("keyup", this._onkeyup);
+});
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.OO.removeProperty({ name : "icon" });
+qx.OO.removeProperty({ name : "disabledIcon" });
+
+/*!
+  The HTML name of the form element used by the widget
+*/
+qx.OO.addProperty({ name : "name", type : "string" });
+
+/*!
+  The HTML value of the form element used by the widget
+*/
+qx.OO.addProperty({ name : "value", type : "string" });
+
+/*!
+  If the widget is checked
+*/
+qx.OO.addProperty({ name : "checked", type : "boolean", getAlias : "isChecked" });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ICON HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.INPUT_TYPE = "checkbox";
+
+qx.Proto._createIcon = function()
+{
+  var i = this._iconObject = new qx.ui.form.InputCheckSymbol;
+
+  i.setType(this.INPUT_TYPE);
+  i.setChecked(this.isChecked());
+  i.setEnabled(this.isEnabled());
+  i.setAnonymous(true);
+
+  this.addAtBegin(i);
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyChecked = function(propValue, propOldValue, propData)
+{
+  if (this._iconObject) {
+    this._iconObject.setChecked(propValue);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
+{
+  if (this._iconObject) {
+    this._iconObject.setEnabled(propValue);
+  }
+
+  return qx.ui.basic.Atom.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._handleIcon = function()
+{
+  switch(this.getShow())
+  {
+    case qx.ui.basic.Atom.SHOW_ICON:
+    case qx.ui.basic.Atom.SHOW_BOTH:
+      this._iconIsVisible = true;
+      break;
+
+    default:
+      this._iconIsVisible = false;
+  }
+
+  if (this._iconIsVisible)
+  {
+    this._iconObject ? this._iconObject.setDisplay(true) : this._createIcon();
+  }
+  else if (this._iconObject)
+  {
+    this._iconObject.setDisplay(false);
+  }
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT-HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onclick = function(e) {
+  this.toggleChecked();
+};
+
+
+qx.Proto._onkeydown = function(e)
+{
+  if(e.getKeyIdentifier() == "Enter" && !e.getAltKey()) {
+    this.toggleChecked();
+  }
+};
+
+
+qx.Proto._onkeyup = function(e)
+{
+  if(e.getKeyIdentifier() == "Space") {
+    this.toggleChecked();
+  }
+};
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if(this.getDisposed()) {
+    return;
+  }
+
+  this.removeEventListener("click", this._onclick);
+  this.removeEventListener("keydown", this._onkeydown);
+  this.removeEventListener("keyup", this._onkeyup);
+
+  return qx.ui.basic.Atom.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/ComboBox.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/ComboBox.js
new file mode 100644 (file)
index 0000000..ad73ccb
--- /dev/null
@@ -0,0 +1,826 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+/**
+ * A combo-box for qooxdoo.
+ *
+ * The major additional feature compared to typical select fields is that it allows
+ * it to be editable. Also images are supported inside the popup list.
+ *
+ * Features:
+ * <ul>
+ * <li>Editable text field</li>
+ * <li>Complete key-navigation</li>
+ * <li>Images inside the list</li>
+ * <li>Images and text inside the list</li>
+ * </ul>
+ *
+ * @event beforeInitialOpen {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.ui.form.ComboBox", qx.ui.layout.HorizontalBoxLayout,
+function()
+{
+  qx.ui.layout.HorizontalBoxLayout.call(this);
+
+
+  // ************************************************************************
+  //   LIST
+  // ************************************************************************
+  var l = this._list = new qx.ui.form.List;
+
+  l.setAppearance("combo-box-list");
+
+
+  // ************************************************************************
+  //   MANAGER
+  // ************************************************************************
+  var m = this._manager = this._list.getManager();
+
+  m.setMultiSelection(false);
+  m.setDragSelection(false);
+
+
+  // ************************************************************************
+  //   POPUP
+  // ************************************************************************
+  var p = this._popup = new qx.ui.popup.Popup;
+
+  p.setAppearance("combo-box-popup");
+  p.setAutoHide(false);
+
+  p.add(l);
+
+
+  // ************************************************************************
+  //   TEXTFIELD
+  // ************************************************************************
+  var f = this._field = new qx.ui.form.TextField;
+
+  f.setAppearance("combo-box-text-field");
+  f.setTabIndex(-1);
+
+  this.add(f);
+
+
+  // ************************************************************************
+  //   BUTTON
+  // ************************************************************************
+
+  // Use qx.ui.basic.Atom instead of qx.ui.form.Button here to omit the registration
+  // of the unneeded and complex button events.
+  var b = this._button = new qx.ui.basic.Atom(null, "widget/arrows/down.gif");
+
+  b.setAppearance("combo-box-button");
+  b.setTabIndex(-1);
+
+  this.add(b);
+
+
+  // ************************************************************************
+  //   BEHAVIOR
+  // ************************************************************************
+  this.setTabIndex(1);
+  this.setEditable(false);
+
+
+  // ************************************************************************
+  //   WIDGET MOUSE EVENTS
+  // ************************************************************************
+  this.addEventListener("mousedown", this._onmousedown);
+  this.addEventListener("mouseup", this._onmouseup);
+  this.addEventListener("mouseover", this._onmouseover);
+  this.addEventListener("mousewheel", this._onmousewheel);
+
+
+  // ************************************************************************
+  //   WIDGET KEY EVENTS
+  // ************************************************************************
+  this.addEventListener("keydown", this._onkeydown);
+  this.addEventListener("keypress", this._onkeypress);
+  this.addEventListener("keyinput", this._onkeyinput);
+
+
+  // ************************************************************************
+  //   WIDGET STATE EVENTS
+  // ************************************************************************
+  this.addEventListener("beforeDisappear", this._onbeforedisappear);
+
+
+  // ************************************************************************
+  //   CHILDREN EVENTS
+  // ************************************************************************
+  this._popup.addEventListener("appear", this._onpopupappear, this);
+  this._field.addEventListener("input", this._oninput, this);
+
+
+  // ************************************************************************
+  //   DOCUMENT EVENTS
+  // ************************************************************************
+  var vDoc = qx.ui.core.ClientDocument.getInstance();
+  vDoc.addEventListener("windowblur", this._onwindowblur, this);
+
+
+  // ************************************************************************
+  //   REMAPPING
+  // ************************************************************************
+  this.remapChildrenHandlingTo(l);
+});
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "combo-box" });
+
+qx.OO.addProperty({ name: "editable", type: "boolean", getAlias: "isEditable" });
+qx.OO.addProperty({ name: "selected", type: "object", instance : "qx.ui.form.ListItem" });
+qx.OO.addProperty({ name: "value", type : "string" });
+qx.OO.addProperty({ name: "pagingInterval", type: "number", defaultValue: 10 });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getManager = function() {
+  return this._manager;
+}
+
+qx.Proto.getPopup = function() {
+  return this._popup;
+}
+
+qx.Proto.getList = function() {
+  return this._list;
+}
+
+qx.Proto.getField = function() {
+  return this._field;
+}
+
+qx.Proto.getButton = function() {
+  return this._button;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifySelected = function(propValue, propOldValue, propData)
+{
+  this._fromSelected = true;
+
+  // only do this if we called setSelected seperatly
+  // and not from the property "value".
+  if (!this._fromValue) {
+    this.setValue(propValue ? propValue.getLabel() : "");
+  }
+
+  // reset manager cache
+  this._manager.setLeadItem(propValue);
+  this._manager.setAnchorItem(propValue);
+
+  // sync to manager
+  if (propValue)
+  {
+    this._manager.setSelectedItem(propValue);
+  }
+  else
+  {
+    this._manager.deselectAll();
+  }
+
+  // reset hint
+  delete this._fromSelected;
+
+  return true;
+}
+
+qx.Proto._modifyValue = function(propValue, propOldValue, propData)
+{
+  this._fromValue = true;
+
+  // only do this if we called setValue seperatly
+  // and not from the event "input".
+  if (!this._fromInput)
+  {
+    if (this._field.getValue() == propValue) {
+      this._field.forceValue(null);
+    }
+
+    this._field.setValue(propValue);
+  }
+
+  // only do this if we called setValue seperatly
+  // and not from the property "selected".
+  if (!this._fromSelected)
+  {
+    // inform selected property
+    var vSelItem = this._list.findStringExact(propValue);
+
+    // ignore disabled items
+    if (vSelItem != null && !vSelItem.getEnabled()) {
+      vSelItem = null;
+    }
+
+    this.setSelected(vSelItem);
+  }
+
+  // reset hint
+  delete this._fromValue;
+
+  return true;
+}
+
+qx.Proto._modifyEditable = function(propValue, propOldValue, propData)
+{
+  var f = this._field;
+
+  f.setReadOnly(!propValue);
+  f.setCursor(propValue ? null : "default");
+  f.setSelectable(propValue);
+
+  return true;
+}
+
+qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
+{
+  if (this._button) {
+    this._button.setEnabled(propValue);
+  }
+
+  if (this._field) {
+    this._field.setEnabled(propValue);
+  }
+
+  return qx.ui.layout.HorizontalBoxLayout.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  POPUP HELPER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._oldSelected = null;
+
+qx.Proto._openPopup = function()
+{
+  var p = this._popup;
+  var el = this.getElement();
+
+  if (!p.isCreated()) {
+    this.createDispatchEvent("beforeInitialOpen");
+  }
+
+  if (this._list.getChildrenLength() == 0) {
+    return;
+  }
+
+  p.positionRelativeTo(el, 1, qx.dom.Dimension.getBoxHeight(el));
+  p.setWidth(this.getBoxWidth()-2);
+
+  p.setParent(this.getTopLevelWidget());
+  p.show();
+
+  this._oldSelected = this.getSelected();
+
+  this.setCapture(true);
+}
+
+qx.Proto._closePopup = function()
+{
+  this._popup.hide();
+  this.setCapture(false);
+}
+
+qx.Proto._testClosePopup = function()
+{
+  if (this._popup.isSeeable()) {
+    this._closePopup();
+  }
+}
+
+qx.Proto._togglePopup = function() {
+  this._popup.isSeeable() ? this._closePopup() : this._openPopup();
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  OTHER EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onpopupappear = function(e)
+{
+  var vSelItem = this.getSelected();
+  if (vSelItem) {
+    vSelItem.scrollIntoView();
+  }
+}
+
+qx.Proto._oninput = function(e)
+{
+  // Hint for modifier
+  this._fromInput = true;
+
+  this.setValue(this._field.getComputedValue());
+
+  // be sure that the found item is in view
+  if (this.getPopup().isSeeable() && this.getSelected()) {
+    this.getSelected().scrollIntoView();
+  }
+
+  delete this._fromInput;
+}
+
+qx.Proto._onbeforedisappear = function(e)
+{
+  this._testClosePopup();
+}
+
+
+
+/*
+---------------------------------------------------------------------------
+  MOUSE EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmousedown = function(e)
+{
+  var vTarget = e.getTarget();
+
+  switch(vTarget)
+  {
+    case this._field:
+      if (this.getEditable()) {
+        break;
+      }
+
+      // no break here
+
+    case this._button:
+      this._button.addState("pressed");
+      this._togglePopup();
+      break;
+
+    case this:
+    case this._list:
+      break;
+
+    default:
+      if (vTarget instanceof qx.ui.form.ListItem && vTarget.getParent() == this._list)
+      {
+        this._list._onmousedown(e);
+        this.setSelected(this._list.getSelectedItem());
+
+        this._closePopup();
+        this.setFocused(true);
+      }
+      else if (this._popup.isSeeable())
+      {
+        this._popup.hide();
+        this.setCapture(false);
+      }
+  }
+}
+
+qx.Proto._onmouseup = function(e)
+{
+  switch(e.getTarget())
+  {
+    case this._field:
+      if (this.getEditable()) {
+        break;
+      }
+
+      // no break here
+
+    default:
+      this._button.removeState("pressed");
+      break;
+  }
+}
+
+qx.Proto._onmouseover = function(e)
+{
+  var vTarget = e.getTarget();
+
+  if (vTarget instanceof qx.ui.form.ListItem)
+  {
+    var vManager = this._manager;
+
+    vManager.deselectAll();
+
+    vManager.setLeadItem(vTarget);
+    vManager.setAnchorItem(vTarget);
+
+    vManager.setSelectedItem(vTarget);
+  }
+}
+
+qx.Proto._onmousewheel = function(e)
+{
+  if (!this._popup.isSeeable())
+  {
+    var toSelect;
+
+    var isSelected = this.getSelected();
+
+    if (e.getWheelDelta() < 0)
+    {
+      toSelect = isSelected ? this._manager.getNext(isSelected) : this._manager.getFirst();
+    }
+    else
+    {
+      toSelect = isSelected ? this._manager.getPrevious(isSelected) : this._manager.getLast();
+    }
+
+    if (toSelect)
+    {
+      this.setSelected(toSelect);
+    }
+  }
+  /* close the popup if the event target is not the combobox or
+   * not one of the list items of the popup list
+   */
+  else {
+    var vTarget = e.getTarget();
+
+    if (vTarget!=this && vTarget.getParent()!=this._list) {
+      this._popup.hide();
+      this.setCapture(false);
+    }
+  }
+}
+
+
+
+/*
+---------------------------------------------------------------------------
+  KEY EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onkeydown = function(e)
+{
+  var vManager = this._manager;
+  var vVisible = this._popup.isSeeable();
+
+  switch(e.getKeyIdentifier())
+  {
+    // Handle <ENTER>
+    case "Enter":
+      if (vVisible)
+      {
+        this.setSelected(this._manager.getSelectedItem());
+        this._closePopup();
+        this.setFocused(true);
+      }
+      else
+      {
+        this._openPopup();
+      }
+
+      return;
+
+    // Handle <ESC>
+    case "Escape":
+      if (vVisible)
+      {
+        vManager.setLeadItem(this._oldSelected);
+        vManager.setAnchorItem(this._oldSelected);
+
+        vManager.setSelectedItem(this._oldSelected);
+
+        this._field.setValue(this._oldSelected ? this._oldSelected.getLabel() : "");
+
+        this._closePopup();
+        this.setFocused(true);
+      }
+
+      return;
+
+    // Handle Alt+Down
+    case "Down":
+      if (e.getAltKey())
+      {
+        this._togglePopup();
+        return;
+      }
+
+      break;
+  }
+};
+
+
+qx.Proto._onkeypress = function(e)
+{
+  var vVisible = this._popup.isSeeable();
+  var vManager = this._manager;
+
+  switch(e.getKeyIdentifier())
+  {
+    // Handle <PAGEUP>
+    case "PageUp":
+      if (!vVisible)
+      {
+        var vPrevious;
+        var vTemp = this.getSelected();
+
+        if (vTemp)
+        {
+          var vInterval = this.getPagingInterval();
+
+          do {
+            vPrevious = vTemp;
+          } while(--vInterval && (vTemp = vManager.getPrevious(vPrevious)));
+        }
+        else
+        {
+          vPrevious = vManager.getLast();
+        }
+
+        this.setSelected(vPrevious);
+
+        return;
+      }
+
+      break;
+
+    // Handle <PAGEDOWN>
+    case "PageDown":
+      if (!vVisible)
+      {
+        var vNext;
+        var vTemp = this.getSelected();
+
+        if (vTemp)
+        {
+          var vInterval = this.getPagingInterval();
+
+          do {
+            vNext = vTemp;
+          } while(--vInterval && (vTemp = vManager.getNext(vNext)));
+        }
+        else
+        {
+          vNext = vManager.getFirst();
+        }
+
+        this.setSelected(vNext);
+
+        return;
+      }
+
+      break;
+  }
+
+  // Default Handling
+  if (!this.isEditable() || vVisible)
+  {
+    this._list._onkeypress(e);
+
+    var vSelected = this._manager.getSelectedItem();
+
+    if (!vVisible)
+    {
+      this.setSelected(vSelected);
+    }
+    else if (vSelected)
+    {
+      this._field.setValue(vSelected.getLabel());
+    }
+  }
+};
+
+
+qx.Proto._onkeyinput = function(e)
+{
+  var vVisible = this._popup.isSeeable();
+  if (!this.isEditable() || vVisible)
+  {
+    this._list._onkeyinput(e);
+
+    var vSelected = this._manager.getSelectedItem();
+
+    if (!vVisible)
+    {
+      this.setSelected(vSelected);
+    }
+    else if (vSelected)
+    {
+      this._field.setValue(vSelected.getLabel());
+    }
+  }
+};
+
+
+
+/*
+---------------------------------------------------------------------------
+  GLOBAL BLUR/FOCUS HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onwindowblur = qx.Proto._testClosePopup;
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  FOCUS HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._visualizeBlur = function()
+{
+  // Force blur, even if mouseFocus is not active because we
+  // need to be sure that the previous focus rect gets removed.
+  // But this only needs to be done, if there is no new focused element.
+  if (qx.sys.Client.getInstance().isMshtml())
+  {
+    if (this.getEnableElementFocus() && !this.getFocusRoot().getFocusedChild())
+    {
+      try
+      {
+        if (this.getEditable())
+        {
+          this.getField().getElement().blur();
+        }
+        else
+        {
+          this.getElement().blur();
+        }
+      }
+      catch(ex) {};
+    }
+  }
+  else
+  {
+    if (this.getEnableElementFocus())
+    {
+      try
+      {
+        if (this.getEditable())
+        {
+          this.getField().getElement().blur();
+        }
+        else if (!this.getFocusRoot().getFocusedChild())
+        {
+          this.getElement().blur();
+        }
+      }
+      catch(ex) {};
+    }
+  }
+
+  this.removeState("focused");
+  return true;
+}
+
+qx.Proto._visualizeFocus = function()
+{
+  if (!qx.event.handler.FocusHandler.mouseFocus && this.getEnableElementFocus())
+  {
+    try
+    {
+      if (this.getEditable())
+      {
+        this.getField().getElement().focus();
+        this.getField()._ontabfocus();
+      }
+      else
+      {
+        this.getElement().focus();
+      }
+    }
+    catch(ex) {};
+  }
+
+  this.addState("focused");
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  // ************************************************************************
+  //   WIDGET MOUSE EVENTS
+  // ************************************************************************
+  this.removeEventListener("mousedown", this._onmousedown);
+  this.removeEventListener("mouseup", this._onmouseup);
+  this.removeEventListener("mouseover", this._onmouseover);
+  this.removeEventListener("mousewheel", this._onmousewheel);
+
+
+  // ************************************************************************
+  //   WIDGET KEY EVENTS
+  // ************************************************************************
+  this.removeEventListener("keydown", this._onkeydown);
+  this.removeEventListener("keypress", this._onkeypress);
+  this.removeEventListener("keyinput", this._onkeyinput);
+
+  // ************************************************************************
+  //   DOCUMENT EVENTS
+  // ************************************************************************
+  var vDoc = qx.ui.core.ClientDocument.getInstance();
+  vDoc.removeEventListener("windowblur", this._onwindowblur, this);
+
+  if (this._list)
+  {
+    this._list.dispose();
+    this._list = null;
+  }
+
+  if (this._manager)
+  {
+    this._manager.dispose();
+    this._manager = null;
+  }
+
+  if (this._popup)
+  {
+    this._popup.removeEventListener("appear", this._onpopupappear, this);
+    this._popup.dispose();
+    this._popup = null;
+  }
+
+  if (this._field)
+  {
+    this._field.removeEventListener("input", this._oninput, this);
+    this._field.dispose();
+    this._field = null;
+  }
+
+  if (this._button)
+  {
+    this._button.dispose();
+    this._button = null;
+  }
+
+  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js
new file mode 100644 (file)
index 0000000..935b2e7
--- /dev/null
@@ -0,0 +1,1044 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * David Perez Carmona (david-perez), based on qx.ui.form.ComboBox
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_comboboxex)
+#require(qx.ui.table.Table)
+
+************************************************************************ */
+
+/**
+ * An enhanced combo-box for qooxdoo.
+ *
+ * <p>Features:</p>
+ * <ul>
+ * <li>Editable text field</li>
+ * <li>Complete key-navigation</li>
+ * <li>Mouse wheel navigation</li>
+ * <li>Multicolumn display in list</li>
+ * <li>If more than one column, headers are automatically shown</li>
+ * <li>Can show the ID and/or description of each list item</li>
+ * <li>Automatically calculating needed width</li>
+ * <li>Popup list always shows full contents, and can be wider than text field</li>
+ * <li>Search values through popup dialog</li>
+ * <li>Internationalization support of messages (through custom settings)</li>
+ * </ul>
+ * <p>Pending features:</p>
+ * <ul>
+ * <li>Images inside the list</li>
+ * <li>Autocomplete on key input</li>
+ * </ul>
+ *
+ * @event beforeInitialOpen {qx.event.type.Event}
+ */
+qx.OO.defineClass('qx.ui.form.ComboBoxEx', qx.ui.layout.HorizontalBoxLayout, function() {
+  qx.ui.layout.HorizontalBoxLayout.call(this);
+
+  // ************************************************************************
+  //   POPUP
+  // ************************************************************************
+  var p = this._popup = new qx.ui.popup.Popup;
+  p.setAppearance('combo-box-ex-popup');
+
+  // ************************************************************************
+  //   LIST
+  // ************************************************************************
+  this._createList([ this._getComboSetting('idHeader'), this._getComboSetting('descriptionHeader') ]);
+
+  // ************************************************************************
+  //   FIELD
+  // ************************************************************************
+  var f = this._field = new qx.ui.form.TextField;
+  f.setAppearance('combo-box-ex-text-field');
+  f.addEventListener("input", this._oninput, this);
+  this.add(f);
+  this.setEditable(false);
+
+  // ************************************************************************
+  //   BUTTON
+  // ************************************************************************
+
+  // Use qx.ui.basic.Atom instead of qx.ui.form.Button here to omit the registration
+  // of the unneeded and complex button events.
+  var b = this._button = new qx.ui.basic.Atom(null, "widget/arrows/down.gif");
+  b.set({
+    appearance: "combo-box-button",
+    tabIndex: -1
+  });
+  this.add(b);
+
+  // ************************************************************************
+  //   BEHAVIOR
+  // ************************************************************************
+  this.setTabIndex(1);
+
+  // ************************************************************************
+  //   WIDGET MOUSE EVENTS
+  // ************************************************************************
+  this.addEventListener("mousedown", this._onmousedown);
+  this.addEventListener("mouseup", this._onmouseup);
+  this.addEventListener("mousewheel", this._onmousewheel);
+  this.addEventListener("dblclick", function() {
+    if (this.getAllowSearch()) {
+      this.openSearchDialog();
+    }
+  });
+
+  // ************************************************************************
+  //   WIDGET KEY EVENTS
+  // ************************************************************************
+  this.addEventListener("keydown", this._onkeydown);
+  this.addEventListener("keypress", this._onkeypress);
+
+  // ************************************************************************
+  //   WIDGET STATE EVENTS
+  // ************************************************************************
+  this.addEventListener("beforeDisappear", this._testClosePopup);
+
+  // ************************************************************************
+  //   CHILDREN EVENTS
+  // ************************************************************************
+  this._popup.addEventListener("appear", this._onpopupappear, this);
+});
+
+/*
+---------------------------------------------------------------------------
+  LOCALIZATION SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Settings.setDefault('titleSearch', 'Search items in list');
+qx.Settings.setDefault('toolTipSearchNext', 'Search next occurrence');
+qx.Settings.setDefault('idHeader', 'ID');
+qx.Settings.setDefault('descriptionHeader', 'Description');
+qx.Settings.setDefault('caseSensitiveCaption', 'Case sensitive');
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "combo-box-ex" });
+
+/*!Is the text field component editable or the user can only select from the list?*/
+qx.OO.addProperty({ name: "editable", type: "boolean", getAlias: "isEditable" });
+
+/*!0 based. -1 means no selected index.  It retrieves always the value column of the selection, not the description.*/
+qx.OO.addProperty({ name: "value", type : "string" });
+
+/*!How many items to transverse with PageUp and PageDn.*/
+qx.OO.addProperty({ name: "pagingInterval", type: "number", defaultValue: 10 });
+
+/*!Show the ID column (column 0) of the selection data?*/
+qx.OO.addProperty({ name: "idColumnVisible", type: "boolean", getAlias: "isIdColumnVisible", defaultValue: false });
+
+/*!Only used when editable is false.  It determines what to show in the text field of the combo box.*/
+qx.OO.addProperty({ name: "showOnTextField", type: "string", defaultValue: 'description', possibleValues : [ 'description', 'idAndDescription'  ] });
+
+/*!Only used when editable is false and showOnTextField=='idAndDescription'.*/
+qx.OO.addProperty({ name: "idDescriptionSeparator", type: "string", defaultValue: '- ' });
+
+/*!Ensures that always an item is selected (in case the selection isn't empty). Only used when editable is false.*/
+qx.OO.addProperty({ name: 'ensureSomethingSelected', type: "boolean", defaultValue: true });
+
+/*!Allow the search dialog when double clicking the combo, or pressing special keys?.*/
+qx.OO.addProperty({ name: 'allowSearch', type: "boolean", defaultValue: true });
+
+/*!Maximum number of visible rows in the popup list.*/
+qx.OO.addProperty({ name: 'maxVisibleRows', type: "number", defaultValue: 10 });
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getPopup = function() {
+  return this._popup;
+}
+
+qx.Proto.getList = function() {
+  return this._list;
+}
+
+qx.Proto.getField = function() {
+  return this._field;
+}
+
+qx.Proto.getButton = function() {
+  return this._button;
+}
+
+qx.Proto._getComboSetting = function(key) {
+  return qx.Settings.getValueOfClass('qx.ui.form.ComboBoxEx', key);
+}
+
+/**Gets the current selected row of the selection.
+ * @return null if nothing selected or an array*/
+qx.Proto.getSelectedRow = function() {
+  var ind = this.getSelectedIndex();
+  return ind < 0 ? null : this._model.getData()[ind];
+}
+
+/**Creates the list component.*/
+qx.Proto._createList = function(columns) {
+  this._model = new qx.ui.table.SimpleTableModel;
+  // Default column titles
+  this._model.setColumns(columns);
+  var l = this._list = new qx.ui.table.Table(this._model);
+  l.setFocusedCell = function() {}
+  l.setAppearance('combo-box-ex-list');
+  // We receive this: Modification of property "keepFirstVisibleRowComplete" failed with exception: TypeError - vCurrentChild has no properties or
+  // this: Modification of property "keepFirstVisibleRowComplete" failed with exception: TypeError - this.getParent() has no properties
+  l.forceKeepFirstVisibleRowComplete(false);
+  var selMan = l._getSelectionManager();
+  var oldHandle = selMan.handleMouseUp, me = this;
+  selMan.handleMouseUp = function(vItem, e) {
+    oldHandle.apply(selMan, arguments);
+    if (e.isLeftButtonPressed()) {
+    me._testClosePopup();
+    }
+  }
+  this._modifyIdColumnVisible(this.getIdColumnVisible());
+  this._manager = l.getSelectionModel();
+  this._manager.addEventListener('changeSelection', this._onChangeSelection, this);
+  // Avoid deselection from user
+  this._manager.removeSelectionInterval = function() {};
+  this._manager.setSelectionMode(qx.ui.table.SelectionModel.SINGLE_SELECTION);
+  this._popup.add(l);
+  // Invalidate calculation of column widths
+  delete this._calcDimensions;
+}
+
+
+/*
+---------------------------------------------------------------------------
+  PSEUDO-PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/**Sets the header for each column.
+ * @param columns {String[]}*/
+qx.Proto.setColumnHeaders = function(columns) {
+  if (!this._list || columns.length != this._model.getColumnCount()) {
+    if (this._list) {
+      var data = this._model.getData();
+      this._list.setParent(null);
+      this._list.dispose();
+      this._list = null;
+    }
+    this._createList(columns);
+    if (data && data.length) {
+      this._model.setData(data);
+    }
+  } else {
+    this._model.setColumns(columns);
+    this._list.getTableColumnModel().init(columns.length);
+    delete this._calcDimensions;
+  }
+  this._modifyIdColumnVisible(this.getIdColumnVisible());
+}
+
+/**Getter for {@link #setColumnHeaders}.
+ * @return {String[]}*/
+qx.Proto.getColumnHeaders = function(propVal) {
+  var cols = [];
+  cols.length = this._model.getColumnCount();
+  for (var col = 0; col < cols.length; col++) {
+    cols[col] = this._model.getColumnName(col);
+  }
+  return cols;
+}
+
+/**Sets the list of selectable items.
+ * @param data {var[][]} Array of values.  Its value is an array, with the following info:<ul>.
+ * <li>Column 0 represents the ID, i.e. the value that is stored internally and used by the app.</li>
+ * <li>Column 1 represents the description, the text that the end user normally sees.</li>
+ * <li>Columns > 1 will also be shown in the popup list, it you have set the appropiate column headers with {@link #setColumnHeaders}.</li>
+ * </ul>*/
+qx.Proto.setSelection = function(data) {
+  // Invalidate calculation of column widths
+  delete this._calcDimensions;
+  this._model.setData(data);
+  // Try to preserve currently selected value
+  if (!this.getEditable()) {
+    this._modifyValue(this.getValue());
+  }
+}
+
+/**Getter for {@link #setSelection}.
+ * @return {Array}*/
+qx.Proto.getSelection = function() {
+  return this._model.getData();
+}
+
+/**Sets the index of the currently selected item in the list.
+ * @param index {Number} -1 means no selected index*/
+qx.Proto.setSelectedIndex = function(index) {
+  var items = this.getSelection().length;
+  if (items >= 0) {
+    if (index < 0 && !this.getEditable() && this.getEnsureSomethingSelected()) {
+      index = 0;
+    }
+    if (index >= 0) {
+      index = qx.lang.Number.limit(index, 0, items-1);
+      this._manager.setSelectionInterval(index, index);
+      if (this._popup.isSeeable()) {
+        this._list.scrollCellVisible(0, index);
+      }
+    } else {
+      this._manager.clearSelection();
+    }
+  }
+  return true;
+}
+
+/**Getter for {@link #setSelectedIndex}.*/
+qx.Proto.getSelectedIndex = function() {
+  var index = this._manager.getAnchorSelectionIndex();
+  return this._manager.isSelectedIndex(index) ? index:-1;
+}
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyShowOnTextField = function(propVal) {
+  if (!this.getEditable()) {
+    this.setSelectedIndex(this.getSelectedIndex());
+    delete this._calcDimensions;  // Invalidate this._neededTextFieldWidth
+  }
+  return true;
+}
+
+qx.Proto._modifyMaxVisibleRows = function() {
+  delete this._calcDimensions;  // Invalidate this._list.height
+  return true;
+}
+
+qx.Proto._checkIdDescriptionSeparator = function(propVal) {
+  // For measuring widths, it is better to replace spaces with non-breakable spaces
+  return String(propVal).replace(/ /g, '\u00A0')
+}
+
+qx.Proto._modifyIdDescriptionSeparator = function(propVal) {
+  if (!this.getEditable() && this.getShowOnTextField() == 'idAndDescription') {
+    this.setSelectedIndex(this.getSelectedIndex());
+    delete this._calcDimensions;  // Invalidate this._neededTextFieldWidth
+  }
+  return true;
+}
+
+qx.Proto._modifyIdColumnVisible = function(propVal) {
+  this._list.getTableColumnModel().setColumnVisible(0, propVal);
+  delete this._calcDimensions;
+  return true;
+}
+
+qx.Proto._modifyEditable = function(propValue/*, propOldValue, propData*/) {
+  var f = this._field;
+  f.setReadOnly(!propValue);
+  f.setCursor(propValue ? null : "default");
+  f.setSelectable(propValue);
+  return true;
+}
+
+qx.Proto._modifyValue = function(propValue/*, propOldValue, propData*/) {
+  this._fromValue = true;
+
+  var values = this._model.getData();
+  var i = -1;
+  if (propValue != null) {
+    for (var i = 0; i < values.length; i++) {
+      if (propValue == values[i][0]) {
+        break;
+      }
+    }
+    if (i == values.length) {
+      i = -1;
+    }
+  }
+  if (this.getEditable()) {
+    this._field.setValue(propValue);
+  }
+  // only do this if we called setValue separately
+  // and not from the property "selected".
+  if (!this._fromSelected) {
+    this.setSelectedIndex(i);
+  }
+  // reset hint
+  delete this._fromValue;
+  return true;
+}
+
+qx.Proto._modifyEnabled = function(propValue/*, propOldValue, propData*/) {
+  if (this._button) {
+    this._button.setEnabled(propValue);
+  }
+  if (this._field) {
+    this._field.setEnabled(propValue);
+  }
+  return qx.ui.layout.HorizontalBoxLayout.prototype._modifyEnabled.apply(this, arguments);
+}
+
+
+/*
+---------------------------------------------------------------------------
+  POPUP HELPER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._oldSelected = null;
+
+qx.Proto._openPopup = function() {
+  if (this.isSearchInProgress()) {
+    return;
+  }
+  var p = this._popup;
+  p.setAutoHide(false);
+  var el = this.getElement();
+  if (!p.isCreated()) {
+    this.createDispatchEvent("beforeInitialOpen");
+  }
+  if (!this.getSelection().length) {
+    return;
+  }
+  p.positionRelativeTo(el, 1, qx.dom.Dimension.getBoxHeight(el));
+  this._calculateDimensions();
+  p.setParent(this.getTopLevelWidget());
+  p.auto();
+  p.show();
+  this._oldSelected = this.getSelectedIndex();
+  window.setInterval(function() {
+    p.setAutoHide(true);
+  }, 0);
+}
+
+/**Hide the popup list.*/
+qx.Proto._closePopup = function() {
+  this._popup.hide();
+}
+
+/**Hide the popup list only when needed.*/
+qx.Proto._testClosePopup = function() {
+  if (this._popup.isSeeable()) {
+    this._closePopup();
+  }
+}
+
+/**Toggle the visibility of the popup list.*/
+qx.Proto._togglePopup = function() {
+  this._popup.isSeeable() ? this._closePopup() : this._openPopup();
+}
+
+/*
+---------------------------------------------------------------------------
+  DIMENSIONING
+---------------------------------------------------------------------------
+*/
+
+/**Sizes the width of the text field component to the needed value to show any selection item.*/
+qx.Proto.sizeTextFieldToContent = function() {
+  this._calculateDimensions();
+  this._field.setWidth(this._neededTextFieldWidth);
+}
+
+/**Calculates the needed dimensions for the text field and list components*/
+qx.Proto._calculateDimensions = function() {
+  if (this._calcDimensions) {
+    // Already calculated
+    return;
+  }
+  var data = this.getSelection();
+  var cols = this.getColumnHeaders(), nCols = cols.length;
+  var columnWidths = [];
+  this._neededTextFieldWidth = 0;
+  columnWidths.length = cols.length;
+  for (var col = 0; col < cols.length; col++) {
+    columnWidths[col] = 0;
+  }
+  var withDescript = this.getShowOnTextField() == 'idAndDescription';
+  for (var row = 0, rows = Math.min(data.length, 50); row < rows; row++) {
+    var r = data[row], wi0, wi1;
+    for (col = 0; col < nCols; col++) {
+      var wi = this._getTextWidth(r[col]);
+      if (col == 0) {
+        wi0 = wi;
+      } else if (col == 1) {
+        wi1 = wi;
+      }
+      columnWidths[col] = Math.max(wi, columnWidths[col]);
+    }
+    this._neededTextFieldWidth = Math.max(this._neededTextFieldWidth,
+      wi1+(withDescript ? wi0:0));
+  }
+  if (this.getShowOnTextField() == 'idAndDescription') {
+    this._neededTextFieldWidth += this._getTextWidth(this.getIdDescriptionSeparator());
+  }
+  this._neededTextFieldWidth += 8;  /*Extra margins*/
+  var maxRows = this.getMaxVisibleRows(),
+    // Only assign room for the vertical scrollbar when needed
+    width = data.length > maxRows ? (new qx.ui.core.ScrollBar)._getScrollBarWidth():0,
+    colModel = this._list.getTableColumnModel(),
+    countVisible = 0;
+
+  // ##Only show headers if we have more than 1 column visible
+  for (col = 0; col < nCols; col++) {
+    if (colModel.isColumnVisible(col)) {
+      countVisible++;
+    }
+  }
+  var hasHeaders = countVisible > 1;
+  this._list.getPaneScroller(0).getHeader().setHeight(hasHeaders ? 'auto' : 1);
+
+  // ##Size each column
+  for (col = 0; col < nCols; col++) {
+    if (colModel.isColumnVisible(col)) {
+      var w = columnWidths[col];
+      if (hasHeaders) {
+        w = Math.max(w, this._getTextWidth(cols[col]));
+      }
+      w += 8;
+      this._list.setColumnWidth(col, w);
+      width += w;
+    }
+  }
+
+  // ##Final width and height
+  this._list.set({
+    width: width,
+    height: this._list.getRowHeight()*
+      Math.min(maxRows, (hasHeaders ? 1:0)+data.length)+2+(hasHeaders ? 2:0)
+  });
+  // This denotes dimensions are already calculated
+  this._calcDimensions = true;
+}
+
+/**Calculates the width of the given text.
+ * The default font is used.
+ * @return {integer}*/
+qx.Proto._getTextWidth = function(text) {
+  var lab = new qx.ui.basic.Label(text);
+  var res = lab.getPreferredBoxWidth();
+  lab.dispose();
+  return res;
+}
+
+
+/*
+---------------------------------------------------------------------------
+  SEARCHING
+---------------------------------------------------------------------------
+*/
+
+/**Does this combo have the searched dialog open?*/
+qx.Proto.isSearchInProgress = function() {
+  return !this._popup.contains(this._list);
+}
+
+/**Searches the given text.  Called from the search dialog.
+ * @param startIndex  {Number} Start index, 0 based
+ * @param txt      {String} Text to find
+ * @param caseSens    {Boolean} Case sensivity flag.*/
+qx.Proto._search = function(startIndex, txt, caseSens) {
+  if (txt == null || !txt.length) {
+    return;
+  }
+  var row = startIndex,
+    nCols = this._model.getColumnCount(),
+    nRows = this.getSelection().length,
+    data = this._model.getData();
+  if (!caseSens) {
+    txt = txt.toLowerCase();
+  }
+  var colModel = this._list.getTableColumnModel();
+  while (true) {
+    var dataRow = data[row];
+    if (dataRow) {
+    for (var col = 0; col < nCols; col++) {
+      if (colModel.isColumnVisible(col)) {
+        var txtCol = dataRow[col];
+        if (!caseSens) {
+          txtCol = txtCol.toLowerCase();
+        }
+        if (txtCol.indexOf(txt) >= 0) {
+          this._manager.setSelectionInterval(row, row);
+          this._list.scrollCellVisible(1, row);
+          return;
+        }
+      }
+    }
+    }
+    row = (row+1)% nRows;
+    if (row == startIndex) {
+      break;
+    }
+  }
+}
+
+/**Opens a popup search dialog, useful when the combo has a lot of items.
+ * This dialog is triggered by double clicking the combo, pressing F3 or Ctrl+F.*/
+qx.Proto.openSearchDialog = function() {
+  var sel = this.getSelection();
+  if (!sel || !sel.length || this.isSearchInProgress()) {
+    return;
+  }
+  this._testClosePopup();
+
+  var me = this,
+    oldSelectedIndex = this.getSelectedIndex(),
+    startIndex = oldSelectedIndex;
+
+  //###searchField
+  function search() {
+    me._search(startIndex, searchField.getComputedValue(), checkCase.isChecked());
+  }
+  var searchField = new qx.ui.form.TextField;
+  searchField.set({
+    minWidth: this._field.getWidth(),
+    width: '100%'
+  });
+  searchField.addEventListener("input", function() {
+    search();
+  });
+
+  //###checkCase
+  var checkCase = new qx.ui.form.CheckBox(this._getComboSetting('caseSensitiveCaption'));
+  checkCase.set({
+    horizontalAlign: 'center',
+    marginBottom: 4
+  });
+
+  //###vbox
+  var vbox = new qx.ui.layout.VerticalBoxLayout;
+  vbox.set({
+    spacing: 6,
+    horizontalChildrenAlign: 'center',
+    height: '100%'
+  });
+  vbox.auto();
+  vbox.add(searchField, checkCase);
+
+  //###list, we reuse the same list in the popup
+  this._calculateDimensions();
+  var border = qx.renderer.border.BorderPresets.getInstance().inset;
+  var newListSettings = {
+    /*minHeight: border.getTopWidth()+this._list.getHeight()+border.getBottomWidth(),
+    height: '1*',*/
+    height: border.getTopWidth()+this._list.getHeight()+border.getBottomWidth(),
+    width: border.getLeftWidth()+this._list.getWidth()+border.getRightWidth(),
+    border: border,
+    parent: vbox
+  };
+  // Save old list settings
+  var oldListSettings = {};
+  for (var prop in newListSettings) {
+    oldListSettings[prop] = this._list[qx.OO.getter[prop]]();
+  }
+  this._list.set(newListSettings);
+
+  //###buttons
+  var butNext = new qx.ui.form.Button('', 'icon/16/find.png');
+  butNext.set({
+    toolTip: new qx.ui.popup.ToolTip(this._getComboSetting('toolTipSearchNext'))
+  });
+  butNext.addEventListener("execute", function() {
+    startIndex = (this.getSelectedIndex()+1) % sel.length;
+    search();
+  }, this);
+
+  var butOk = new qx.ui.form.Button('', 'icon/16/button-ok.png');
+  butOk.addEventListener('execute', function() {
+    oldSelectedIndex = null;
+    win.close();
+  }, this);
+
+  var butCancel = new qx.ui.form.Button('', 'icon/16/button-cancel.png');
+  butCancel.addEventListener('execute', function() {
+    win.close();
+  }, this);
+
+  var butBox = new qx.ui.layout.VerticalBoxLayout;
+  butBox.auto();
+  butBox.set({
+    spacing: 10
+  });
+  butBox.add(butNext, butOk, butCancel);
+
+  //###hbox
+  var hbox = new qx.ui.layout.BoxLayout;
+  hbox.auto();
+  hbox.setPadding(10);
+  hbox.set({
+    spacing: 8,
+    minHeight: 'auto',
+    height: '100%'
+  });
+  hbox.add(vbox, butBox);
+
+  //###Window
+  var win = new qx.ui.window.Window(this._getComboSetting('titleSearch'), 'icon/16/find.png');
+  win.add(hbox);
+  win.positionRelativeTo(this);
+  win.set({
+    autoHide: true,
+    allowMaximize: false,
+    showMaximize: false,
+    allowMinimize: false,
+    showMinimize: false
+  });
+  win.addEventListener("appear", function() {
+    searchField.focus();
+  });
+  win.addEventListener("disappear", function() {
+    if (oldSelectedIndex != null) {
+      // Hit Cancel button
+      this.setSelectedIndex(oldSelectedIndex);
+    }
+    this._list.set(oldListSettings);
+    this.focus();
+  }, this);
+  win.addEventListener("keydown", function(e) {
+    switch (e.getKeyIdentifier()) {
+      case "Enter":
+        butOk.createDispatchEvent('execute');
+        break;
+      case "Escape":
+        butCancel.createDispatchEvent('execute');
+        break;
+      case "F3":
+        butNext.createDispatchEvent('execute');
+        break;
+      default:
+        return;
+    }
+    e.preventDefault();
+  }, this);
+  win.auto();
+  win.addToDocument();
+  win.open();
+}
+
+/*
+---------------------------------------------------------------------------
+  OTHER EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onChangeSelection = function(e) {
+  this._fromSelected = true;
+
+  // only do this if we called setValue separately
+  // and not from the event "input".
+  if (!this._fromInput) {
+    var index = this.getSelectedIndex();
+    if (index >= 0) {
+      var row = this._model.getData()[index];
+    }
+    if (row || !this.getEditable()) {
+      this.setValue(row && row[0]);
+    }
+    // In case of editable, this.setValue() already calls this._field.setValue()
+    if (!this.getEditable()) {
+      var val = "";
+      if (row) {
+        val = this.getShowOnTextField() == 'description' ?
+          row[1] :
+          (row[0] != null && row[0] != '' ? row[0] + this.getIdDescriptionSeparator() + row[1]:row[1]);
+      }
+      this._field.setValue(val);
+    }
+  }
+  // reset hint
+  delete this._fromSelected;
+}
+
+qx.Proto._onpopupappear = function(e) {
+  var index = this.getSelectedIndex();
+  if (index >= 0) {
+    this._list.scrollCellVisible(0, index);
+  }
+}
+
+qx.Proto._oninput = function(e) {
+  // Hint for modifier
+  this._fromInput = true;
+  this.setValue(this._field.getComputedValue());
+  delete this._fromInput;
+}
+
+
+/*
+---------------------------------------------------------------------------
+  MOUSE EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmousedown = function(e) {
+  switch(e.getTarget()) {
+    case this._field:
+      if (this.getEditable()) {
+        break;
+      }
+      // no break here
+    case this._button:
+      this._button.addState("pressed");
+      this._togglePopup();
+      // Assure we receive the mouse up event
+      this.setCapture(true);
+      break;
+  }
+}
+
+qx.Proto._onmouseup = function(e) {
+  switch(e.getTarget()) {
+    case this._field:
+      if (this.getEditable()) {
+        break;
+      }
+      // no break here
+    default:
+      this._button.removeState("pressed");
+      break;
+  }
+  this.setCapture(false);
+}
+
+qx.Proto._onmousewheel = function(e) {
+  if (!this._popup.isSeeable()) {
+    this.setSelectedIndex(Math.max(0, this.getSelectedIndex()+(e.getWheelDelta() < 0 ? -1:1)));
+  }
+}
+
+
+/*
+---------------------------------------------------------------------------
+  KEY EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onkeydown = function(e) {
+  var vVisible = this._popup.isSeeable();
+
+  switch (e.getKeyIdentifier()) {
+    case "Enter":
+      if (vVisible) {
+        this._closePopup();
+        this.setFocused(true);
+      } else {
+        this._openPopup();
+      }
+      break;
+
+    case "Escape":
+      if (vVisible) {
+        this.setSelectedIndex(this._oldSelected);
+        this._closePopup();
+        this.setFocused(true);
+      }
+      break;
+
+    case "Home":
+      this.setSelectedIndex(0);
+      break;
+
+    case "End":
+      var items = this.getSelection().length;
+      if (items) {
+        this.setSelectedIndex(items-1);
+      }
+      break;
+
+    case "Down":
+      if (e.getAltKey()) {
+        this._togglePopup();
+      }
+      break;
+
+    case "F3":
+      if (this.getAllowSearch()) {
+        this.openSearchDialog();
+      }
+      break;
+
+    case "F":
+      if (e.getCtrlKey()) {
+        if (this.getAllowSearch()) {
+          this.openSearchDialog();
+        }
+        break;
+      }
+      return;
+
+    default:
+      if (vVisible) {
+        this._list.dispatchEvent(e);
+      }
+      return;
+  }
+  e.preventDefault();
+}
+
+
+qx.Proto._onkeypress = function(e) {
+  var vVisible = this._popup.isSeeable();
+
+  switch (e.getKeyIdentifier()) {
+    case "Up":
+      this.setSelectedIndex(Math.max(0, this.getSelectedIndex()-1));
+      break;
+
+    case "Down":
+      this.setSelectedIndex(Math.max(0, this.getSelectedIndex()+1));
+      break;
+
+    case "PageUp":
+      this.setSelectedIndex(Math.max(0, this.getSelectedIndex()-this.getPagingInterval()));
+      break;
+
+    case "PageDown":
+      this.setSelectedIndex(this.getSelectedIndex()+this.getPagingInterval());
+      break;
+
+    default:
+      if (vVisible) {
+        this._list.dispatchEvent(e);
+      }
+      return;
+  }
+  e.preventDefault();
+
+  if (!this.isEditable() && this._list.isSeeable()) {
+    this._list.dispatchEvent(e);
+  }
+
+}
+
+
+/*
+---------------------------------------------------------------------------
+  FOCUS HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._visualizeBlur = function() {
+  // Force blur, even if mouseFocus is not active because we
+  // need to be sure that the previous focus rect gets removed.
+  // But this only needs to be done, if there is no new focused element.
+  if (qx.sys.Client.getInstance().isMshtml()) {
+    if (this.getEnableElementFocus() && !this.getFocusRoot().getFocusedChild()) {
+      try {
+        if (this.getEditable())  {
+          this.getField().getElement().blur();
+        } else {
+          this.getElement().blur();
+        }
+      }
+      catch(ex) {};
+    }
+  } else {
+    if (this.getEnableElementFocus()) {
+      try {
+        if (this.getEditable()) {
+          this.getField().getElement().blur();
+        } else if (!this.getFocusRoot().getFocusedChild()) {
+          this.getElement().blur();
+        }
+      }
+      catch(ex) {};
+    }
+  }
+  this.removeState("focused");
+  return true;
+}
+
+qx.Proto._visualizeFocus = function() {
+  if (!qx.event.handler.FocusHandler.mouseFocus && this.getEnableElementFocus()) {
+    try {
+      if (this.getEditable()) {
+        this.getField().getElement().focus();
+        this.getField()._ontabfocus();
+      } else {
+        this.getElement().focus();
+      }
+    } catch(ex) {
+    }
+  }
+  this.addState("focused");
+  return true;
+}
+
+/*
+---------------------------------------------------------------------------
+  DISPOSE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+    return;
+  }
+
+  // ************************************************************************
+  //   WIDGET MOUSE EVENTS
+  // ************************************************************************
+  this.removeEventListener("mousedown", this._onmousedown);
+  this.removeEventListener("mouseup", this._onmouseup);
+  this.removeEventListener("mousewheel", this._onmousewheel);
+
+
+  // ************************************************************************
+  //   WIDGET KEY EVENTS
+  // ************************************************************************
+  this.removeEventListener("keydown", this._onkeydown);
+  this.removeEventListener("keypress", this._onkeypress);
+
+
+  this._model = null;
+  if (this._manager) {
+    this._manager.removeEventListener('changeSelection', this._onChangeSelection);
+    this._manager = null;
+  }
+  if (this._list) {
+    this._list.dispose();
+    this._list = null;
+  }
+  if (this._popup) {
+    this._popup.removeEventListener("appear", this._onpopupappear, this);
+    this._popup.dispose();
+    this._popup = null;
+  }
+  if (this._field) {
+    if (this.getEditable()) {
+      this._field.removeEventListener("input", this._oninput, this);
+    }
+    this._field.dispose();
+    this._field = null;
+  }
+  if (this._button) {
+    this._button.dispose();
+    this._button = null;
+  }
+  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/InputCheckSymbol.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/InputCheckSymbol.js
new file mode 100644 (file)
index 0000000..a7acf6f
--- /dev/null
@@ -0,0 +1,93 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.form.InputCheckSymbol", qx.ui.basic.Terminator,
+function()
+{
+  qx.ui.basic.Terminator.call(this);
+
+  this.setTagName("input");
+  this.setSelectable(false);
+
+  if (qx.sys.Client.getInstance().isMshtml())
+  {
+    // Take control over size of element (mshtml)
+    this.setWidth(13);
+    this.setHeight(13);
+  }
+  else if (qx.sys.Client.getInstance().isGecko())
+  {
+    // Remove gecko default margin
+    this.setMargin(0);
+  }
+
+  // we need to be sure that the dom protection of this is added
+  this.forceTabIndex(1);
+  this.setTabIndex(-1);
+  this.setChecked(false);
+});
+
+qx.OO.addProperty({ name : "name", type : "string", impl : "apply" });
+qx.OO.addProperty({ name : "value", impl : "apply" });
+qx.OO.addProperty({ name : "type", impl : "apply" });
+qx.OO.addProperty({ name : "checked", type : "boolean", impl : "apply", getAlias : "isChecked" });
+
+qx.Proto._modifyApply = function(propValue, propOldValue, propData) {
+  return this.setHtmlProperty(propData.name, propValue);
+}
+
+qx.Proto.getPreferredBoxWidth = function() {
+  return 13;
+}
+
+qx.Proto.getPreferredBoxHeight = function() {
+  return 13;
+}
+
+qx.Proto.getBoxWidth = qx.Proto.getPreferredBoxWidth;
+qx.Proto.getBoxHeight = qx.Proto.getPreferredBoxHeight;
+
+qx.Proto.getInnerWidth = qx.Proto.getPreferredBoxWidth;
+qx.Proto.getInnerHeight = qx.Proto.getPreferredBoxHeight;
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto._afterAppear = function()
+  {
+    qx.ui.basic.Terminator.prototype._afterAppear.call(this);
+
+    var vElement = this.getElement();
+    vElement.checked = this.getChecked();
+
+    if (!this.getEnabled()) {
+      vElement.disabled = true;
+    }
+  }
+}
+
+qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
+{
+  propValue ? this.removeHtmlAttribute("disabled") : this.setHtmlAttribute("disabled", "disabled");
+  return qx.ui.basic.Terminator.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/List.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/List.js
new file mode 100644 (file)
index 0000000..da58b6a
--- /dev/null
@@ -0,0 +1,383 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.form.List", qx.ui.layout.VerticalBoxLayout,
+function()
+{
+  qx.ui.layout.VerticalBoxLayout.call(this);
+
+
+  // ************************************************************************
+  //   INITILISIZE MANAGER
+  // ************************************************************************
+  this._manager = new qx.manager.selection.SelectionManager(this);
+
+
+  // ************************************************************************
+  //   BEHAVIOR
+  // ************************************************************************
+  this.setSelectable(false);
+  this.setTabIndex(1);
+
+
+  // ************************************************************************
+  //   MOUSE EVENT LISTENER
+  // ************************************************************************
+  this.addEventListener("mouseover", this._onmouseover);
+  this.addEventListener("mousedown", this._onmousedown);
+  this.addEventListener("mouseup", this._onmouseup);
+  this.addEventListener("click", this._onclick);
+  this.addEventListener("dblclick", this._ondblclick);
+
+
+  // ************************************************************************
+  //   KEY EVENT LISTENER
+  // ************************************************************************
+  this.addEventListener("keydown", this._onkeydown);
+  this.addEventListener("keypress", this._onkeypress);
+  this.addEventListener("keyinput", this._onkeyinput);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list" });
+
+qx.OO.addProperty({ name : "enableInlineFind", type : "boolean", defaultValue : true });
+qx.OO.addProperty({ name : "markLeadingItem", type : "boolean", defaultValue : false });
+
+qx.Proto._pressedString = "";
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MANAGER BINDING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getManager = function() {
+  return this._manager;
+}
+
+qx.Proto.getListItemTarget = function(vItem)
+{
+  while (vItem != null && vItem.getParent() != this) {
+    vItem = vItem.getParent();
+  }
+
+  return vItem;
+}
+
+qx.Proto.getSelectedItem = function() {
+  return this.getSelectedItems()[0];
+}
+
+qx.Proto.getSelectedItems = function() {
+  return this._manager.getSelectedItems();
+}
+
+
+
+/*
+---------------------------------------------------------------------------
+  MOUSE EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmouseover = function(e)
+{
+  var vItem = this.getListItemTarget(e.getTarget());
+
+  if (vItem) {
+    this._manager.handleMouseOver(vItem, e);
+  }
+}
+
+qx.Proto._onmousedown = function(e)
+{
+  var vItem = this.getListItemTarget(e.getTarget());
+
+  if (vItem) {
+    this._manager.handleMouseDown(vItem, e);
+  }
+}
+
+qx.Proto._onmouseup = function(e)
+{
+  var vItem = this.getListItemTarget(e.getTarget());
+
+  if (vItem) {
+    this._manager.handleMouseUp(vItem, e);
+  }
+}
+
+qx.Proto._onclick = function(e)
+{
+  var vItem = this.getListItemTarget(e.getTarget());
+
+  if (vItem) {
+    this._manager.handleClick(vItem, e);
+  }
+}
+
+qx.Proto._ondblclick = function(e)
+{
+  var vItem = this.getListItemTarget(e.getTarget());
+
+  if (vItem) {
+    this._manager.handleDblClick(vItem, e);
+  }
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  KEY EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onkeydown = function(e)
+{
+  // Execute action on press <ENTER>
+  if (e.getKeyIdentifier() == "Enter" && !e.getAltKey())
+  {
+    var items = this.getSelectedItems();
+    var currentItem;
+
+    for (var i=0; i<items.length; i++) {
+      items[i].createDispatchEvent("action");
+    }
+  }
+};
+
+
+qx.Proto._onkeypress = function(e)
+{
+  // Give control to selectionManager
+  this._manager.handleKeyPress(e);
+};
+
+
+qx.Proto._lastKeyPress = 0;
+
+qx.Proto._onkeyinput = function(e)
+{
+  if (!this.getEnableInlineFind()) {
+    return;
+  }
+
+  // Reset string after a second of non pressed key
+  if (((new Date).valueOf() - this._lastKeyPress) > 1000) {
+    this._pressedString = "";
+  }
+
+  // Combine keys the user pressed to a string
+  this._pressedString += String.fromCharCode(e.getCharCode());
+
+  // Find matching item
+  var matchedItem = this.findString(this._pressedString, null);
+
+  if (matchedItem)
+  {
+    var oldVal = this._manager._getChangeValue();
+
+    // Temporary disable change event
+    var oldFireChange = this._manager.getFireChange();
+    this._manager.setFireChange(false);
+
+    // Reset current selection
+    this._manager._deselectAll();
+
+    // Update manager
+    this._manager.setItemSelected(matchedItem, true);
+    this._manager.setAnchorItem(matchedItem);
+    this._manager.setLeadItem(matchedItem);
+
+    // Scroll to matched item
+    matchedItem.scrollIntoView();
+
+    // Recover event status
+    this._manager.setFireChange(oldFireChange);
+
+    // Dispatch event if there were any changes
+    if (oldFireChange && this._manager._hasChanged(oldVal)) {
+      this._manager._dispatchChange();
+    }
+  }
+
+  // Store timestamp
+  this._lastKeyPress = (new Date).valueOf();
+  e.preventDefault();
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  FIND SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._findItem = function(vUserValue, vStartIndex, vType)
+{
+  var vAllItems = this.getChildren();
+
+  // If no startIndex given try to get it by current selection
+  if (vStartIndex == null)
+  {
+    vStartIndex = vAllItems.indexOf(this.getSelectedItem());
+
+    if (vStartIndex == -1) {
+      vStartIndex = 0;
+    }
+  }
+
+  var methodName = "matches" + vType;
+
+  // Mode #1: Find all items after the startIndex
+  for (var i=vStartIndex; i<vAllItems.length; i++) {
+    if (vAllItems[i][methodName](vUserValue)) {
+      return vAllItems[i];
+    }
+  }
+
+  // Mode #2: Find all items before the startIndex
+  for (var i=0; i<vStartIndex; i++) {
+    if (vAllItems[i][methodName](vUserValue)) {
+      return vAllItems[i];
+    }
+  }
+
+  return null;
+}
+
+qx.Proto.findString = function(vText, vStartIndex) {
+  return this._findItem(vText, vStartIndex || 0, "String");
+}
+
+qx.Proto.findStringExact = function(vText, vStartIndex) {
+  return this._findItem(vText, vStartIndex || 0, "StringExact");
+}
+
+qx.Proto.findValue = function(vText, vStartIndex) {
+  return this._findItem(vText, vStartIndex || 0, "Value");
+}
+
+qx.Proto.findValueExact = function(vText, vStartIndex) {
+  return this._findItem(vText, vStartIndex || 0, "ValueExact");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SORT SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._sortItemsCompare = function(a, b) {
+  return a.key < b.key ? -1 : a.key == b.key ? 0 : 1;
+}
+
+qx.Proto.sortItemsByString = function(vReverse)
+{
+  var sortitems = [];
+  var items = this.getChildren();
+
+  for(var i=0, l=items.length; i<l; i++) {
+    sortitems[i] = { key : items[i].getLabel(), item : items[i] }
+  }
+
+  sortitems.sort(this._sortItemsCompare);
+  if (vReverse) {
+    sortitems.reverse();
+  }
+
+  for(var i=0; i<l; i++) {
+    this.addAt(sortitems[i].item, i);
+  }
+}
+
+qx.Proto.sortItemsByValue = function(vReverse)
+{
+  var sortitems = [];
+  var items = this.getChildren();
+
+  for(var i=0, l=items.length; i<l; i++) {
+    sortitems[i] = { key : items[i].getValue(), item : items[i] }
+  }
+
+  sortitems.sort(this._sortItemsCompare);
+  if (vReverse) {
+    sortitems.reverse();
+  }
+
+  for(var i=0; i<l; i++) {
+    this.addAt(sortitems[i].item, i);
+  }
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if (this._manager)
+  {
+    this._manager.dispose();
+    this._manager = null;
+  }
+
+  this.removeEventListener("mouseover", this._onmouseover);
+  this.removeEventListener("mousedown", this._onmousedown);
+  this.removeEventListener("mouseup", this._onmouseup);
+  this.removeEventListener("click", this._onclick);
+  this.removeEventListener("dblclick", this._ondblclick);
+  this.removeEventListener("keydown", this._onkeydown);
+  this.removeEventListener("keypress", this._onkeypress);
+  this.removeEventListener("keyinput", this._onkeyinput);
+
+  return qx.ui.layout.VerticalBoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/ListItem.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/ListItem.js
new file mode 100644 (file)
index 0000000..2499bc5
--- /dev/null
@@ -0,0 +1,115 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+/**
+ * @event action {qx.event.type.Event} (Fired by {@link qx.ui.form.List})
+ */
+qx.OO.defineClass("qx.ui.form.ListItem", qx.ui.basic.Atom,
+function(vText, vIcon, vValue)
+{
+  qx.ui.basic.Atom.call(this, vText, vIcon);
+
+  if (qx.util.Validation.isValid(vValue)) {
+    this.setValue(vValue);
+  }
+
+
+  // ************************************************************************
+  //   EVENT LISTENER
+  // ************************************************************************
+  this.addEventListener("dblclick", this._ondblclick);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-item" });
+qx.OO.addProperty({ name : "value" });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STATE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.handleStateChange = function()
+{
+  if (this.hasState("lead"))
+  {
+    this.setStyleProperty("MozOutline", "1px dotted invert");
+    this.setStyleProperty("outline", "1px dotted invert");
+  }
+  else
+  {
+    this.removeStyleProperty("MozOutline");
+    this.setStyleProperty("outline", "0px none");
+  }
+}
+
+// Remove default outline focus border
+qx.Proto._applyStateStyleFocus = function(vStates) {};
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.matchesString = function(vText) {
+  return vText != "" && this.getLabel().toLowerCase().indexOf(vText.toLowerCase()) == 0;
+}
+
+qx.Proto.matchesStringExact = function(vText) {
+  return vText != "" && this.getLabel().toLowerCase() == String(vText).toLowerCase();
+}
+
+qx.Proto.matchesValue = function(vText) {
+  return vText != "" && this.getValue().toLowerCase().indexOf(vText.toLowerCase()) == 0;
+}
+
+qx.Proto.matchesValueExact = function(vText) {
+  return vText != "" && this.getValue().toLowerCase() == String(vText).toLowerCase();
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._ondblclick = function(e)
+{
+  var vCommand = this.getCommand();
+  if (vCommand) {
+    vCommand.execute();
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/PasswordField.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/PasswordField.js
new file mode 100644 (file)
index 0000000..17e0894
--- /dev/null
@@ -0,0 +1,31 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.form.PasswordField", qx.ui.form.TextField,
+function(vText)
+{
+  qx.ui.form.TextField.call(this, vText);
+
+  this.setHtmlProperty("type", "password");
+});
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/RadioButton.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/RadioButton.js
new file mode 100644 (file)
index 0000000..9748682
--- /dev/null
@@ -0,0 +1,185 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.form.RadioButton", qx.ui.form.CheckBox,
+function(vText, vValue, vName, vChecked) {
+  qx.ui.form.CheckBox.call(this, vText, vValue, vName, vChecked);
+
+  this.addEventListener("keypress", this._onkeypress);
+});
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  The assigned qx.manager.selection.RadioManager which handles the switching between registered buttons
+*/
+qx.OO.addProperty({ name : "manager", type : "object", instance : "qx.manager.selection.RadioManager", allowNull : true });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ICON HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.INPUT_TYPE = "radio";
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyChecked = function(propValue, propOldValue, propData)
+{
+  if (this._iconObject) {
+    this._iconObject.setChecked(propValue);
+  }
+
+  var vManager = this.getManager();
+  if (vManager) {
+    vManager.handleItemChecked(this, propValue);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyManager = function(propValue, propOldValue, propData)
+{
+  if (propOldValue) {
+    propOldValue.remove(this);
+  }
+
+  if (propValue) {
+    propValue.add(this);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyName = function(propValue, propOldValue, propData)
+{
+  if (this._iconObject) {
+    this._iconObject.setName(propValue);
+  }
+
+  if (this.getManager()) {
+    this.getManager().setName(propValue);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyValue = function(propValue, propOldValue, propData)
+{
+  if (this.isCreated() && this._iconObject) {
+    this._iconObject.setValue(propValue);
+  }
+
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT-HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onkeydown = function(e)
+{
+  if (e.getKeyIdentifier() == "Enter" && !e.getAltKey()) {
+    this.setChecked(true);
+  }
+};
+
+
+qx.Proto._onkeypress = function(e)
+{
+ switch(e.getKeyIdentifier())
+  {
+    case "Left":
+    case "Up":
+      qx.event.handler.FocusHandler.mouseFocus = false;
+      // we want to have a focus border when using arrows to select
+      qx.event.handler.FocusHandler.mouseFocus = false;
+
+      return this.getManager() ? this.getManager().selectPrevious(this) : true;
+
+    case "Right":
+    case "Down":
+      // we want to have a focus border when using arrows to select
+      qx.event.handler.FocusHandler.mouseFocus = false;
+
+      return this.getManager() ? this.getManager().selectNext(this) : true;
+  }
+};
+
+
+qx.Proto._onclick = function(e) {
+  this.setChecked(true);
+}
+
+qx.Proto._onkeyup = function(e)
+{
+  if(e.getKeyIdentifier() == "Space") {
+    this.setChecked(true);
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if(this.getDisposed()) {
+    return;
+  }
+
+  this.removeEventListener("keypress", this._onkeypress);
+  return qx.ui.form.CheckBox.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/RepeatButton.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/RepeatButton.js
new file mode 100755 (executable)
index 0000000..df04fdd
--- /dev/null
@@ -0,0 +1,127 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+/**
+ * @event execute {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.ui.form.RepeatButton", qx.ui.form.Button,
+function(vText, vIcon, vIconWidth, vIconHeight, vFlash)
+{
+  qx.ui.form.Button.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
+
+  this._timer = new qx.client.Timer;
+  this._timer.setInterval(this.getInterval());
+  this._timer.addEventListener("interval", this._oninterval, this);
+});
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "interval", type : "number", defaultValue : 100 });
+qx.OO.addProperty({ name : "firstInterval", type : "number", defaultValue : 500 });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmousedown = function(e)
+{
+  if (e.getTarget() != this || !e.isLeftButtonPressed()) {
+    return;
+  }
+
+  this._executed = false;
+
+  this._timer.setInterval(this.getFirstInterval());
+  this._timer.start();
+
+  this.removeState("abandoned");
+  this.addState("pressed");
+}
+
+qx.Proto._onmouseup = function(e)
+{
+  this.setCapture(false);
+
+  if (!this.hasState("abandoned"))
+  {
+    this.addState("over");
+
+    if (this.hasState("pressed") && !this._executed) {
+      this.execute();
+    }
+  }
+
+  this._timer.stop();
+
+  this.removeState("abandoned");
+  this.removeState("pressed");
+}
+
+qx.Proto._oninterval = function(e)
+{
+  this._timer.stop();
+  this._timer.setInterval(this.getInterval());
+  this._timer.start();
+
+  this._executed = true;
+  this.createDispatchEvent("execute");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if (this._timer)
+  {
+    this._timer.stop();
+    this._timer.dispose();
+    this._timer = null;
+  }
+
+  return qx.ui.form.Button.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/Spinner.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/Spinner.js
new file mode 100644 (file)
index 0000000..f2eeab0
--- /dev/null
@@ -0,0 +1,683 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+/**
+ * @event change {qx.event.type.Event}
+ */
+qx.OO.defineClass("qx.ui.form.Spinner", qx.ui.layout.HorizontalBoxLayout,
+function(vMin, vValue, vMax)
+{
+  qx.ui.layout.HorizontalBoxLayout.call(this);
+
+  // ************************************************************************
+  //   BEHAVIOR
+  // ************************************************************************
+  this.setTabIndex(-1);
+
+  if (qx.sys.Client.getInstance().isMshtml()) {
+    this.setStyleProperty("fontSize", "0px");
+  }
+
+
+  // ************************************************************************
+  //   MANAGER
+  // ************************************************************************
+  this._manager = new qx.type.Range();
+
+
+  // ************************************************************************
+  //   TEXTFIELD
+  // ************************************************************************
+  this._textfield = new qx.ui.form.TextField;
+  this._textfield.setAppearance("spinner-field");
+  this._textfield.setValue(String(this._manager.getValue()));
+
+  this.add(this._textfield);
+
+
+  // ************************************************************************
+  //   BUTTON LAYOUT
+  // ************************************************************************
+  this._buttonlayout = new qx.ui.layout.VerticalBoxLayout;
+  this._buttonlayout.setWidth("auto");
+  this.add(this._buttonlayout);
+
+
+  // ************************************************************************
+  //   UP-BUTTON
+  // ************************************************************************
+  this._upbutton = new qx.ui.basic.Image("widget/arrows/up_small.gif");
+  this._upbutton.setAppearance("spinner-button-up");
+  this._buttonlayout.add(this._upbutton);
+
+
+  // ************************************************************************
+  //   DOWN-BUTTON
+  // ************************************************************************
+  this._downbutton = new qx.ui.basic.Image("widget/arrows/down_small.gif");
+  this._downbutton.setAppearance("spinner-button-down");
+  this._buttonlayout.add(this._downbutton);
+
+
+  // ************************************************************************
+  //   TIMER
+  // ************************************************************************
+  this._timer = new qx.client.Timer(this.getInterval());
+
+
+  // ************************************************************************
+  //   EVENTS
+  // ************************************************************************
+  this.addEventListener("keypress", this._onkeypress, this);
+  this.addEventListener("keydown", this._onkeydown, this);
+  this.addEventListener("keyup", this._onkeyup, this);
+  this.addEventListener("mousewheel", this._onmousewheel, this);
+
+  this._textfield.addEventListener("input", this._oninput, this);
+  this._textfield.addEventListener("blur", this._onblur, this);
+  this._upbutton.addEventListener("mousedown", this._onmousedown, this);
+  this._downbutton.addEventListener("mousedown", this._onmousedown, this);
+  this._manager.addEventListener("change", this._onchange, this);
+  this._timer.addEventListener("interval", this._oninterval, this);
+
+
+  // ************************************************************************
+  //   INITIALIZATION
+  // ************************************************************************
+
+  if(qx.util.Validation.isValidNumber(vMin)) {
+    this.setMin(vMin);
+  }
+
+  if(qx.util.Validation.isValidNumber(vMax)) {
+    this.setMax(vMax);
+  }
+
+  if(qx.util.Validation.isValidNumber(vValue)) {
+    this.setValue(vValue);
+  }
+});
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "spinner" });
+
+/*!
+  The amount to increment on each event (keypress or mousedown).
+*/
+qx.OO.addProperty({ name : "incrementAmount", type : "number", defaultValue : 1 });
+
+/*!
+  The amount to increment on each event (keypress or mousedown).
+*/
+qx.OO.addProperty({ name : "wheelIncrementAmount", type : "number", defaultValue : 1 });
+
+/*!
+  The amount to increment on each pageup / pagedown keypress
+*/
+qx.OO.addProperty({ name : "pageIncrementAmount", type : "number", defaultValue : 10 });
+
+/*!
+  The current value of the interval (this should be used internally only).
+*/
+qx.OO.addProperty({ name : "interval", type : "number", defaultValue : 100 });
+
+/*!
+  The first interval on event based shrink/growth of the value.
+*/
+qx.OO.addProperty({ name : "firstInterval", type : "number", defaultValue : 500 });
+
+/*!
+  This configures the minimum value for the timer interval.
+*/
+qx.OO.addProperty({ name : "minTimer", type : "number", defaultValue : 20 });
+
+/*!
+  Decrease of the timer on each interval (for the next interval) until minTimer reached.
+*/
+qx.OO.addProperty({ name : "timerDecrease", type : "number", defaultValue : 2 });
+
+/*!
+  If minTimer was reached, how much the amount of each interval should growth (in relation to the previous interval).
+*/
+qx.OO.addProperty({ name : "amountGrowth", type : "number", defaultValue : 1.01 });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PREFERRED DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._computePreferredInnerWidth = function() {
+  return 50;
+}
+
+qx.Proto._computePreferredInnerHeight = function() {
+  return 14;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  KEY EVENT-HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onkeypress = function(e)
+{
+  var vIdentifier = e.getKeyIdentifier();
+
+  if (vIdentifier == "Enter" && !e.getAltKey())
+  {
+    this._checkValue(true, false, false);
+    this._textfield.selectAll();
+  }
+  else
+  {
+    switch (vIdentifier)
+    {
+      case "Up":
+      case "Down":
+
+      case "Left":
+      case "Right":
+
+      case "Shift":
+      case "Control":
+      case "Alt":
+
+      case "Escape":
+      case "Delete":
+      case "Backspace":
+
+      case "Insert":
+
+      case "Home":
+      case "End":
+
+      case "PageUp":
+      case "PageDown":
+
+      case "NumLock":
+      case "Tab":
+        break;
+
+      default:
+        if (vIdentifier >= "0" && vIdentifier <= "9") {
+          return;
+        }
+
+        e.preventDefault();
+    }
+  }
+}
+
+qx.Proto._onkeydown = function(e)
+{
+  var vIdentifier = e.getKeyIdentifier();
+
+  if (this._intervalIncrease == null)
+  {
+    switch(vIdentifier)
+    {
+      case "Up":
+      case "Down":
+        this._intervalIncrease = vIdentifier == "Up";
+        this._intervalMode = "single";
+
+        this._resetIncrements();
+        this._checkValue(true, false, false);
+
+        this._increment();
+        this._timer.startWith(this.getFirstInterval());
+
+        break;
+
+      case "PageUp":
+      case "PageDown":
+        this._intervalIncrease = vIdentifier == "PageUp";
+        this._intervalMode = "page";
+
+        this._resetIncrements();
+        this._checkValue(true, false, false);
+
+        this._pageIncrement();
+        this._timer.startWith(this.getFirstInterval());
+
+        break;
+    }
+  }
+}
+
+qx.Proto._onkeyup = function(e)
+{
+  if (this._intervalIncrease != null)
+  {
+    switch(e.getKeyIdentifier())
+    {
+      case "Up":
+      case "Down":
+      case "PageUp":
+      case "PageDown":
+        this._timer.stop();
+
+        this._intervalIncrease = null;
+        this._intervalMode = null;
+    }
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MOUSE EVENT-HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmousedown = function(e)
+{
+  if (!e.isLeftButtonPressed()) {
+    return;
+  }
+
+  this._checkValue(true);
+
+  var vButton = e.getCurrentTarget();
+
+  vButton.addState("pressed");
+
+  vButton.addEventListener("mouseup", this._onmouseup, this);
+  vButton.addEventListener("mouseout", this._onmouseup, this);
+
+  this._intervalIncrease = vButton == this._upbutton;
+  this._resetIncrements();
+  this._increment();
+
+  this._textfield.selectAll();
+
+  this._timer.setInterval(this.getFirstInterval());
+  this._timer.start();
+}
+
+qx.Proto._onmouseup = function(e)
+{
+  var vButton = e.getCurrentTarget();
+
+  vButton.removeState("pressed");
+
+  vButton.removeEventListener("mouseup", this._onmouseup, this);
+  vButton.removeEventListener("mouseout", this._onmouseup, this);
+
+  this._textfield.selectAll();
+  this._textfield.setFocused(true);
+
+  this._timer.stop();
+  this._intervalIncrease = null;
+}
+
+qx.Proto._onmousewheel = function(e)
+{
+  this._manager.setValue(this._manager.getValue() + this.getWheelIncrementAmount() * e.getWheelDelta());
+  this._textfield.selectAll();
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  OTHER EVENT-HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._oninput = function(e) {
+  this._checkValue(true, true);
+}
+
+qx.Proto._onchange = function(e)
+{
+  var vValue = this._manager.getValue();
+
+  this._textfield.setValue(String(vValue));
+
+  if (vValue == this.getMin())
+  {
+    this._downbutton.removeState("pressed");
+    this._downbutton.setEnabled(false);
+    this._timer.stop();
+  }
+  else
+  {
+    this._downbutton.setEnabled(true);
+  }
+
+  if (vValue == this.getMax())
+  {
+    this._upbutton.removeState("pressed");
+    this._upbutton.setEnabled(false);
+    this._timer.stop();
+  }
+  else
+  {
+    this._upbutton.setEnabled(true);
+  }
+
+  if (this.hasEventListeners("change")) {
+    this.dispatchEvent(new qx.event.type.Event("change"), true);
+  }
+}
+
+qx.Proto._onblur = function(e) {
+  this._checkValue(false);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MAPPING TO RANGE MANAGER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.setValue = function(nValue) {
+  this._manager.setValue(nValue);
+}
+
+qx.Proto.getValue = function() {
+  this._checkValue(true);
+  return this._manager.getValue();
+}
+
+qx.Proto.resetValue = function() {
+  return this._manager.resetValue();
+}
+
+qx.Proto.setMax = function(vMax) {
+  return this._manager.setMax(vMax);
+}
+
+qx.Proto.getMax = function() {
+  return this._manager.getMax();
+}
+
+qx.Proto.setMin = function(vMin) {
+  return this._manager.setMin(vMin);
+}
+
+qx.Proto.getMin = function() {
+  return this._manager.getMin();
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INTERVAL HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._intervalIncrease = null;
+
+qx.Proto._oninterval = function(e)
+{
+  this._timer.stop();
+  this.setInterval(Math.max(this.getMinTimer(), this.getInterval()-this.getTimerDecrease()));
+
+  if (this._intervalMode == "page")
+  {
+    this._pageIncrement();
+  }
+  else
+  {
+    if (this.getInterval() == this.getMinTimer()) {
+      this.setIncrementAmount(this.getAmountGrowth() * this.getIncrementAmount());
+    }
+
+    this._increment();
+  }
+
+  switch(this._intervalIncrease)
+  {
+    case true:
+      if (this.getValue() == this.getMax()) {
+        return;
+      }
+
+    case false:
+      if (this.getValue() == this.getMin()) {
+        return;
+      }
+  }
+
+  this._timer.restartWith(this.getInterval());
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITY
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._checkValue = function(acceptEmpty, acceptEdit)
+{
+  var el = this._textfield.getElement();
+
+  if (!el) {
+    return;
+  }
+
+  if (el.value == "")
+  {
+    if (!acceptEmpty)
+    {
+      el.value = this.resetValue();
+      this._textfield.selectAll();
+
+      return;
+    }
+  }
+  else
+  {
+    // cache working variable
+    var val = el.value;
+
+    // fix leading '0'
+    if (val.length > 1)
+    {
+      while(val.charAt(0) == "0") {
+        val = val.substr(1, val.length);
+      }
+
+      var f1 = parseInt(val) || 0;
+
+      if (f1 != el.value) {
+        el.value = f1;
+        return;
+      }
+    }
+
+    // fix for negative integer handling
+    if (val == "-" && acceptEmpty && this.getMin() < 0)
+    {
+      if (el.value != val) {
+        el.value = val;
+      }
+
+      return;
+    }
+
+    // parse the string
+    val = parseInt(val);
+
+    // main check routine
+    var doFix = true;
+    var fixedVal = this._manager._checkValue(val);
+
+    if (isNaN(fixedVal)) {
+      fixedVal = this._manager.getValue();
+    }
+
+    // handle empty string
+    if (acceptEmpty && val == "")
+    {
+      doFix = false;
+    }
+    else if (!isNaN(val))
+    {
+      // check for editmode in keypress events
+      if (acceptEdit)
+      {
+        // fix min/max values
+        if (val > fixedVal && !(val > 0 && fixedVal <= 0) && String(val).length < String(fixedVal).length)
+        {
+          doFix = false;
+        }
+        else if (val < fixedVal && !(val < 0 && fixedVal >= 0) && String(val).length < String(fixedVal).length)
+        {
+          doFix = false;
+        }
+      }
+    }
+
+    // apply value fix
+    if (doFix && el.value != fixedVal) {
+      el.value = fixedVal;
+    }
+
+    // inform manager
+    if (!acceptEdit) {
+      this._manager.setValue(fixedVal);
+    }
+  }
+}
+
+qx.Proto._increment = function() {
+  this._manager.setValue(this._manager.getValue() + ((this._intervalIncrease ? 1 : - 1) * this.getIncrementAmount()));
+}
+
+qx.Proto._pageIncrement = function() {
+  this._manager.setValue(this._manager.getValue() + ((this._intervalIncrease ? 1 : - 1) * this.getPageIncrementAmount()));
+}
+
+qx.Proto._resetIncrements = function()
+{
+  this.resetIncrementAmount();
+  this.resetInterval();
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this.removeEventListener("keypress", this._onkeypress, this);
+  this.removeEventListener("keydown", this._onkeydown, this);
+  this.removeEventListener("keyup", this._onkeyup, this);
+  this.removeEventListener("mousewheel", this._onmousewheel, this);
+
+  if (this._textfield)
+  {
+    this._textfield.removeEventListener("blur", this._onblur, this);
+    this._textfield.removeEventListener("input", this._oninput, this);
+    this._textfield.dispose();
+    this._textfield = null;
+  }
+
+  if (this._buttonlayout)
+  {
+    this._buttonlayout.dispose();
+    this._buttonlayout = null;
+  }
+
+  if (this._upbutton)
+  {
+    this._upbutton.removeEventListener("mousedown", this._onmousedown, this);
+    this._upbutton.dispose();
+    this._upbutton = null;
+  }
+
+  if (this._downbutton)
+  {
+    this._downbutton.removeEventListener("mousedown", this._onmousedown, this);
+    this._downbutton.dispose();
+    this._downbutton = null;
+  }
+
+  if (this._timer)
+  {
+    this._timer.removeEventListener("interval", this._oninterval, this);
+    this._timer.stop();
+    this._timer.dispose();
+    this._timer = null;
+  }
+
+  if (this._manager)
+  {
+    this._manager.removeEventListener("change", this._onchange, this);
+    this._manager.dispose();
+    this._manager = null;
+  }
+
+  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
+}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/TextArea.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/TextArea.js
new file mode 100644 (file)
index 0000000..5796713
--- /dev/null
@@ -0,0 +1,53 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.form.TextArea", qx.ui.form.TextField,
+function(vValue)
+{
+  qx.ui.form.TextField.call(this, vValue);
+
+  this.setTagName("textarea");
+  this.removeHtmlProperty("type");
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "text-area" });
+
+qx.OO.addProperty({ name : "wrap", type : "boolean" });
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto._modifyWrap = function(propValue, propOldValue, propData) {
+    return this.setStyleProperty("whiteSpace", propValue ? "normal" : "nowrap");
+  }
+}
+else
+{
+  qx.Proto._modifyWrap = function(propValue, propOldValue, propData) {
+    return this.setHtmlProperty("wrap", propValue ? "soft" : "off");
+  }
+}
+
+qx.Proto._computePreferredInnerHeight = function() {
+  return 60;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/TextField.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/TextField.js
new file mode 100644 (file)
index 0000000..8ab7005
--- /dev/null
@@ -0,0 +1,538 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+#require(qx.renderer.font.FontCache)
+#after(qx.renderer.font.FontObject)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.form.TextField", qx.ui.basic.Terminator,
+function(vValue)
+{
+  // ************************************************************************
+  //   INIT
+  // ************************************************************************
+  qx.ui.basic.Terminator.call(this);
+
+  if (typeof vValue === "string") {
+    this.setValue(vValue);
+  }
+
+
+  // ************************************************************************
+  //   BEHAVIOR
+  // ************************************************************************
+  this.setTagName("input");
+  this.setHtmlProperty("type", "text");
+  this.setHtmlAttribute("autocomplete", "OFF");
+  this.setTabIndex(1);
+  this.setSelectable(true);
+
+
+  // ************************************************************************
+  //   EVENTS
+  // ************************************************************************
+  this.enableInlineEvent("input");
+
+  this.addEventListener("blur", this._onblur);
+  this.addEventListener("focus", this._onfocus);
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "text-field" });
+
+qx.OO.addProperty({ name : "value", type : "string", defaultValue : "" });
+qx.OO.addProperty({ name : "maxLength", type : "number" });
+qx.OO.addProperty({ name : "readOnly", type : "boolean" });
+
+qx.OO.addProperty({ name : "selectionStart", type : "number" });
+qx.OO.addProperty({ name : "selectionLength", type : "number" });
+qx.OO.addProperty({ name : "selectionText", type : "string" });
+
+qx.OO.addProperty({ name : "validator", type : "function" });
+
+/*!
+  The font property describes how to paint the font on the widget.
+*/
+qx.OO.addProperty({ name : "font", type : "object", instance : "qx.renderer.font.Font", convert : qx.renderer.font.FontCache, allowMultipleArguments : true });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CLONING
+---------------------------------------------------------------------------
+*/
+
+// Extend ignore list with selection properties
+qx.Proto._clonePropertyIgnoreList += ",selectionStart,selectionLength,selectionText";
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
+{
+  propValue ? this.removeHtmlAttribute("disabled") : this.setHtmlAttribute("disabled", "disabled");
+  return qx.ui.basic.Terminator.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
+}
+
+qx.Proto._modifyValue = function(propValue, propOldValue, propData)
+{
+  this._inValueProperty = true;
+  this.setHtmlProperty(propData.name, propValue == null ? "" : propValue);
+  delete this._inValueProperty;
+
+  return true;
+}
+
+qx.Proto._modifyMaxLength = function(propValue, propOldValue, propData) {
+  return propValue ? this.setHtmlProperty(propData.name, propValue) : this.removeHtmlProperty(propData.name);
+}
+
+qx.Proto._modifyReadOnly = function(propValue, propOldValue, propData) {
+  return propValue ? this.setHtmlProperty(propData.name, propData.name) : this.removeHtmlProperty(propData.name);
+}
+
+qx.Proto._modifyFont = function(propValue, propOldValue, propData)
+{
+  this._invalidatePreferredInnerDimensions();
+
+  if (propValue) {
+    propValue._applyWidget(this);
+  } else if (propOldValue) {
+    propOldValue._resetWidget(this);
+  }
+
+  return true;
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getComputedValue = function(e)
+{
+  this._visualPropertyCheck();
+  return this.getElement().value;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  VALIDATION
+---------------------------------------------------------------------------
+*/
+
+qx.ui.form.TextField.createRegExpValidator = function(vRegExp)
+{
+  return function(s) {
+    return vRegExp.test(s);
+  }
+}
+
+qx.Proto.isValid = function()
+{
+  var vValidator = this.getValidator();
+  return !vValidator || vValidator(this.getValue());
+}
+
+qx.Proto.isComputedValid = function()
+{
+  var vValidator = this.getValidator();
+  return !vValidator || vValidator(this.getComputedValue());
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PREFERRED DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._computePreferredInnerWidth = function() {
+  return 120;
+}
+
+qx.Proto._computePreferredInnerHeight = function() {
+  return 15;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  BROWSER QUIRKS
+---------------------------------------------------------------------------
+*/
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  qx.Proto._firstInputFixApplied = false;
+
+  qx.Proto._afterAppear = function()
+  {
+    qx.ui.basic.Terminator.prototype._afterAppear.call(this);
+
+    if (!this._firstInputFixApplied) {
+      qx.client.Timer.once(this._ieFirstInputFix, this, 1);
+    }
+  }
+
+  /*!
+    Fix IE's input event for filled text fields
+  */
+  qx.Proto._ieFirstInputFix = function()
+  {
+    this._inValueProperty = true;
+    this.getElement().value = this.getValue() === null ? "" : this.getValue();
+    this._firstInputFixApplied = true;
+    delete this._inValueProperty;
+  }
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT-HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._textOnFocus = null;
+
+qx.Proto._ontabfocus = function(e) {
+  this.selectAll();
+}
+
+qx.Proto._onfocus = function(e) {
+  this._textOnFocus = this.getComputedValue();
+}
+
+qx.Proto._onblur = function(e)
+{
+  var vValue = this.getComputedValue().toString();
+
+  if (this._textOnFocus != vValue) {
+    this.setValue(vValue);
+  }
+
+  this.setSelectionLength(0);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CROSS-BROWSER SELECTION HANDLING
+---------------------------------------------------------------------------
+*/
+
+if (qx.sys.Client.getInstance().isMshtml())
+{
+  /*!
+    Microsoft Documentation:
+    http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/createrange.asp
+    http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/obj_textrange.asp
+  */
+
+  qx.Proto._getRange = function()
+  {
+    this._visualPropertyCheck();
+    return this.getElement().createTextRange();
+  }
+
+  qx.Proto._getSelectionRange = function()
+  {
+    this._visualPropertyCheck();
+    return this.getTopLevelWidget().getDocumentElement().selection.createRange();
+  }
+
+  qx.Proto.setSelectionStart = function(vStart)
+  {
+    this._visualPropertyCheck();
+
+    var vText = this.getElement().value;
+
+    // a bit hacky, special handling for line-breaks
+    var i = 0;
+    while (i<vStart)
+    {
+      // find next line break
+      i = vText.indexOf("\r\n", i);
+
+      if (i == -1) {
+        break;
+      }
+
+      vStart--;
+      i++;
+    }
+
+    var vRange = this._getRange();
+
+    vRange.collapse();
+    vRange.move("character", vStart);
+    vRange.select();
+  }
+
+  qx.Proto.getSelectionStart = function()
+  {
+    this._visualPropertyCheck();
+
+    var vSelectionRange = this._getSelectionRange();
+
+    if (!this.getElement().contains(vSelectionRange.parentElement())) {
+      return -1;
+    }
+
+    var vRange = this._getRange();
+
+    vRange.setEndPoint("EndToStart", vSelectionRange);
+    return vRange.text.length;
+  }
+
+  qx.Proto.setSelectionLength = function(vLength)
+  {
+    this._visualPropertyCheck();
+
+    var vSelectionRange = this._getSelectionRange();
+
+    if (!this.getElement().contains(vSelectionRange.parentElement())) {
+      return;
+    }
+
+    vSelectionRange.collapse();
+    vSelectionRange.moveEnd("character", vLength);
+    vSelectionRange.select();
+  }
+
+  qx.Proto.getSelectionLength = function()
+  {
+    this._visualPropertyCheck();
+
+    var vSelectionRange = this._getSelectionRange();
+
+    if (!this.getElement().contains(vSelectionRange.parentElement())) {
+      return 0;
+    }
+
+    return vSelectionRange.text.length;
+  }
+
+  qx.Proto.setSelectionText = function(vText)
+  {
+    this._visualPropertyCheck();
+
+    var vStart = this.getSelectionStart();
+    var vSelectionRange = this._getSelectionRange();
+
+    if (!this.getElement().contains(vSelectionRange.parentElement())) {
+      return;
+    }
+
+    vSelectionRange.text = vText;
+
+    // apply text to internal storage
+    this.setValue(this.getElement().value);
+
+    // recover selection (to behave the same gecko does)
+    this.setSelectionStart(vStart);
+    this.setSelectionLength(vText.length);
+
+    return true;
+  }
+
+  qx.Proto.getSelectionText = function()
+  {
+    this._visualPropertyCheck();
+
+    var vSelectionRange = this._getSelectionRange();
+
+    if (!this.getElement().contains(vSelectionRange.parentElement())) {
+      return "";
+    }
+
+    return vSelectionRange.text;
+  }
+
+  qx.Proto.selectAll = function()
+  {
+    this._visualPropertyCheck();
+
+    if (this.getValue() != null)
+    {
+      this.setSelectionStart(0);
+      this.setSelectionLength(this.getValue().length);
+    }
+
+    // to be sure we get the element selected
+    this.getElement().select();
+  }
+
+  qx.Proto.selectFromTo = function(vStart, vEnd)
+  {
+    this._visualPropertyCheck();
+
+    this.setSelectionStart(vStart);
+    this.setSelectionLength(vEnd-vStart);
+  }
+}
+else
+{
+  qx.Proto.setSelectionStart = function(vStart)
+  {
+    this._visualPropertyCheck();
+    this.getElement().selectionStart = vStart;
+  }
+
+  qx.Proto.getSelectionStart = function()
+  {
+    this._visualPropertyCheck();
+    return this.getElement().selectionStart;
+  }
+
+  qx.Proto.setSelectionLength = function(vLength)
+  {
+    this._visualPropertyCheck();
+
+    var el = this.getElement();
+    if (qx.util.Validation.isValidString(el.value)) {
+      el.selectionEnd = el.selectionStart + vLength;
+    }
+  }
+
+  qx.Proto.getSelectionLength = function()
+  {
+    this._visualPropertyCheck();
+
+    var el = this.getElement();
+    return el.selectionEnd - el.selectionStart;
+  }
+
+  qx.Proto.setSelectionText = function(vText)
+  {
+    this._visualPropertyCheck();
+
+    var el = this.getElement();
+
+    var vOldText = el.value;
+    var vStart = el.selectionStart;
+
+    var vOldTextBefore = vOldText.substr(0, vStart);
+    var vOldTextAfter = vOldText.substr(el.selectionEnd);
+
+    var vValue = el.value = vOldTextBefore + vText + vOldTextAfter;
+
+    // recover selection
+    el.selectionStart = vStart;
+    el.selectionEnd = vStart + vText.length;
+
+    // apply new value to internal cache
+    this.setValue(vValue);
+
+    return true;
+  }
+
+  qx.Proto.getSelectionText = function()
+  {
+    this._visualPropertyCheck();
+
+    return this.getElement().value.substr(this.getSelectionStart(), this.getSelectionLength());
+  }
+
+  qx.Proto.selectAll = function()
+  {
+    this._visualPropertyCheck();
+
+    this.getElement().select();
+  }
+
+  qx.Proto.selectFromTo = function(vStart, vEnd)
+  {
+    this._visualPropertyCheck();
+
+    var el = this.getElement();
+    el.selectionStart = vStart;
+    el.selectionEnd = vEnd;
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this.removeEventListener("blur", this._onblur);
+  this.removeEventListener("focus", this._onfocus);
+
+  qx.ui.basic.Terminator.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/groupbox/CheckGroupBox.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/groupbox/CheckGroupBox.js
new file mode 100644 (file)
index 0000000..9dcca10
--- /dev/null
@@ -0,0 +1,39 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.groupbox.CheckGroupBox", qx.ui.groupbox.GroupBox,
+function(vLegend) {
+  qx.ui.groupbox.GroupBox.call(this, vLegend);
+});
+
+qx.Proto._createLegendObject = function()
+{
+  this._legendObject = new qx.ui.form.CheckBox;
+  this._legendObject.setAppearance("check-box-field-set-legend");
+  this._legendObject.setChecked(true);
+
+  this.add(this._legendObject);
+}
+
+qx.Proto.setIcon = qx.Proto.getIcon = null;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/groupbox/GroupBox.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/groupbox/GroupBox.js
new file mode 100644 (file)
index 0000000..2457c3b
--- /dev/null
@@ -0,0 +1,156 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.groupbox.GroupBox", qx.ui.layout.CanvasLayout,
+function(vLegend, vIcon)
+{
+  qx.ui.layout.CanvasLayout.call(this);
+
+
+  // ************************************************************************
+  //   SUB WIDGETS
+  // ************************************************************************
+  this._createFrameObject();
+  this._createLegendObject();
+
+
+  // ************************************************************************
+  //   INIT
+  // ************************************************************************
+  this.setLegend(vLegend);
+
+  if (qx.util.Validation.isValidString(vIcon)) {
+    this.setIcon(vIcon);
+  }
+
+
+  // ************************************************************************
+  //   REMAPPING
+  // ************************************************************************
+  this.remapChildrenHandlingTo(this._frameObject);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "field-set" });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SUB WIDGET CREATION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._createLegendObject = function()
+{
+  this._legendObject = new qx.ui.basic.Atom;
+  this._legendObject.setAppearance("field-set-legend");
+
+  this.add(this._legendObject);
+}
+
+qx.Proto._createFrameObject = function()
+{
+  this._frameObject = new qx.ui.layout.CanvasLayout;
+  this._frameObject.setAppearance("field-set-frame");
+
+  this.add(this._frameObject);
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  GETTER FOR SUB WIDGETS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getFrameObject = function() {
+  return this._frameObject;
+}
+
+qx.Proto.getLegendObject = function() {
+  return this._legendObject;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SETTER/GETTER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.setLegend = function(vLegend) {
+  this._legendObject.setLabel(vLegend);
+}
+
+qx.Proto.getLegend = function() {
+  return this._legendObject.getLabel();
+}
+
+qx.Proto.setIcon = function(vIcon) {
+  this._legendObject.setIcon(vIcon);
+}
+
+qx.Proto.getIcon = function() {
+  this._legendObject.getIcon();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if (this._legendObject)
+  {
+    this._legendObject.dispose();
+    this._legendObject = null;
+  }
+
+  if (this._frameObject)
+  {
+    this._frameObject.dispose();
+    this._frameObject = null;
+  }
+
+  return qx.ui.layout.CanvasLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/groupbox/RadioGroupBox.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/groupbox/RadioGroupBox.js
new file mode 100644 (file)
index 0000000..bcb230e
--- /dev/null
@@ -0,0 +1,39 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_form)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.groupbox.RadioGroupBox", qx.ui.groupbox.GroupBox,
+function(vLegend) {
+  qx.ui.groupbox.GroupBox.call(this, vLegend);
+});
+
+qx.Proto._createLegendObject = function()
+{
+  this._legendObject = new qx.ui.form.RadioButton;
+  this._legendObject.setAppearance("radio-button-field-set-legend");
+  this._legendObject.setChecked(true);
+
+  this.add(this._legendObject);
+}
+
+qx.Proto.setIcon = qx.Proto.getIcon = null;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/BoxLayout.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/BoxLayout.js
new file mode 100644 (file)
index 0000000..c31e9c7
--- /dev/null
@@ -0,0 +1,273 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+#module(ui_layout)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.layout.BoxLayout", qx.ui.core.Parent,
+function(vOrientation)
+{
+  qx.ui.core.Parent.call(this);
+
+  // apply orientation
+  if (qx.util.Validation.isValidString(vOrientation)) {
+    this.setOrientation(vOrientation);
+  }
+});
+
+qx.ui.layout.BoxLayout.STR_REVERSED = "-reversed";
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  The orientation of the layout control. Allowed values are "horizontal" (default) and "vertical".
+*/
+qx.OO.addProperty({ name : "orientation", type : "string", possibleValues : [ "horizontal", "vertical" ], addToQueueRuntime : true });
+
+/*!
+  The spacing between childrens. Could be any positive integer value.
+*/
+qx.OO.addProperty({ name : "spacing", type : "number", defaultValue : 0, addToQueueRuntime : true, impl : "layout" });
+
+/*!
+  The horizontal align of the children. Allowed values are: "left", "center" and "right"
+*/
+qx.OO.addProperty({ name : "horizontalChildrenAlign", type : "string", defaultValue : "left", possibleValues : [ "left", "center", "right" ], impl : "layoutOrder", addToQueueRuntime : true });
+
+/*!
+  The vertical align of the children. Allowed values are: "top", "middle" and "bottom"
+*/
+qx.OO.addProperty({ name : "verticalChildrenAlign", type : "string", defaultValue : "top", possibleValues : [ "top", "middle", "bottom" ], impl : "layoutOrder", addToQueueRuntime : true });
+
+/*!
+  Should the children be layouted in reverse order?
+*/
+qx.OO.addProperty({ name : "reverseChildrenOrder", type : "boolean", defaultValue : false, impl : "layoutOrder", addToQueueRuntime : true });
+
+/*!
+  Should the widgets be stretched to the available width (orientation==vertical) or height (orientation==horizontal)?
+  This only applies if the child has not configured a own value for this axis.
+*/
+qx.OO.addProperty({ name : "stretchChildrenOrthogonalAxis", type : "boolean", defaultValue : true, addToQueueRuntime : true });
+
+/*!
+  If there are min/max values in combination with flex try to optimize placement.
+  This is more complex and produces more time for the layouter but sometimes this feature is needed.
+*/
+qx.OO.addProperty({ name : "useAdvancedFlexAllocation", type : "boolean", defaultValue : false, addToQueueRuntime : true });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INIT LAYOUT IMPL
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This creates an new instance of the layout impl this widget uses
+*/
+qx.Proto._createLayoutImpl = function() {
+  return this.getOrientation() == "vertical" ? new qx.renderer.layout.VerticalBoxLayoutImpl(this) : new qx.renderer.layout.HorizontalBoxLayoutImpl(this);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HELPERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._layoutHorizontal = false;
+qx.Proto._layoutVertical = false;
+qx.Proto._layoutMode = "left";
+
+qx.Proto.isHorizontal = function() {
+  return this._layoutHorizontal;
+}
+
+qx.Proto.isVertical = function() {
+  return this._layoutVertical;
+}
+
+qx.Proto.getLayoutMode = function()
+{
+  if (this._layoutMode == null) {
+    this._updateLayoutMode();
+  }
+
+  return this._layoutMode;
+}
+
+qx.Proto._updateLayoutMode = function()
+{
+  this._layoutMode = this._layoutVertical ? this.getVerticalChildrenAlign() : this.getHorizontalChildrenAlign();
+
+  if (this.getReverseChildrenOrder()) {
+    this._layoutMode += qx.ui.layout.BoxLayout.STR_REVERSED;
+  }
+}
+
+qx.Proto._invalidateLayoutMode = function() {
+  this._layoutMode = null;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyOrientation = function(propValue, propOldValue, propData)
+{
+  // update fast access variables
+  this._layoutHorizontal = propValue == "horizontal";
+  this._layoutVertical = propValue == "vertical";
+
+  // Layout Implementation
+  if (this._layoutImpl)
+  {
+    this._layoutImpl.dispose();
+    this._layoutImpl = null;
+  }
+
+  if (qx.util.Validation.isValidString(propValue)) {
+    this._layoutImpl = this._createLayoutImpl();
+  }
+
+  // call other core modifier
+  return this._modifyLayoutOrder(propValue, propOldValue, propData);
+}
+
+qx.Proto._modifyLayoutOrder = function(propValue, propOldValue, propData)
+{
+  // update layout mode
+  this._invalidateLayoutMode();
+
+  // call other core modifier
+  return this._modifyLayout(propValue, propOldValue, propData);
+}
+
+qx.Proto._modifyLayout = function(propValue, propOldValue, propData)
+{
+  // invalidate inner preferred dimensions
+  this._invalidatePreferredInnerDimensions();
+
+  // accumulated width needs to be invalidated
+  this._invalidateAccumulatedChildrenOuterWidth();
+  this._invalidateAccumulatedChildrenOuterHeight();
+
+  // make property handling happy :)
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ACCUMULATED CHILDREN WIDTH/HEIGHT
+--------------------------------------------------------------------------------
+
+  Needed for center/middle and right/bottom alignment
+
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addCachedProperty({ name : "accumulatedChildrenOuterWidth", defaultValue : null });
+qx.OO.addCachedProperty({ name : "accumulatedChildrenOuterHeight", defaultValue : null });
+
+qx.Proto._computeAccumulatedChildrenOuterWidth = function()
+{
+  var ch=this.getVisibleChildren(), chc, i=-1, sp=this.getSpacing(), s=-sp;
+
+  while(chc=ch[++i]) {
+    s += chc.getOuterWidth() + sp;
+  }
+
+  return s;
+}
+
+qx.Proto._computeAccumulatedChildrenOuterHeight = function()
+{
+  var ch=this.getVisibleChildren(), chc, i=-1, sp=this.getSpacing(), s=-sp;
+
+  while(chc=ch[++i]) {
+    s += chc.getOuterHeight() + sp;
+  }
+
+  return s;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STRETCHING SUPPORT
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._recomputeChildrenStretchingX = function()
+{
+  var ch=this.getVisibleChildren(), chc, i=-1;
+
+  while(chc=ch[++i])
+  {
+    if (chc._recomputeStretchingX() && chc._recomputeBoxWidth()) {
+      chc._recomputeOuterWidth();
+    }
+  }
+}
+
+qx.Proto._recomputeChildrenStretchingY = function()
+{
+  var ch=this.getVisibleChildren(), chc, i=-1;
+
+  while(chc=ch[++i])
+  {
+    if (chc._recomputeStretchingY() && chc._recomputeBoxHeight()) {
+      chc._recomputeOuterHeight();
+    }
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/CanvasLayout.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/CanvasLayout.js
new file mode 100644 (file)
index 0000000..977d6a8
--- /dev/null
@@ -0,0 +1,45 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_core)
+#module(ui_layout)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.layout.CanvasLayout", qx.ui.core.Parent,
+function() {
+  qx.ui.core.Parent.call(this);
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INIT LAYOUT IMPL
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This creates an new instance of the layout impl this widget uses
+*/
+qx.Proto._createLayoutImpl = function() {
+  return new qx.renderer.layout.CanvasLayoutImpl(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/DockLayout.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/DockLayout.js
new file mode 100644 (file)
index 0000000..7002036
--- /dev/null
@@ -0,0 +1,116 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_layout)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.layout.DockLayout", qx.ui.core.Parent,
+function() {
+  qx.ui.core.Parent.call(this);
+});
+
+/*!
+  The layout mode (in which order the children should be layouted)
+*/
+qx.OO.addProperty({ name : "mode", type : "string", defaultValue : "vertical", possibleValues : [ "vertical", "horizontal", "ordered" ], addToQueueRuntime : true });
+
+/*
+  Overwrite from qx.ui.core.Widget, we do not support 'auto' and 'flex'
+*/
+qx.OO.changeProperty({ name : "width", addToQueue : true, unitDetection : "pixelPercent" });
+qx.OO.changeProperty({ name : "minWidth", defaultValue : -Infinity, addToQueue : true, unitDetection : "pixelPercent" });
+qx.OO.changeProperty({ name : "minWidth", defaultValue : -Infinity, addToQueue : true, unitDetection : "pixelPercent" });
+qx.OO.changeProperty({ name : "height", addToQueue : true, unitDetection : "pixelPercent" });
+qx.OO.changeProperty({ name : "minHeight", defaultValue : -Infinity, addToQueue : true, unitDetection : "pixelPercent" });
+qx.OO.changeProperty({ name : "minHeight", defaultValue : -Infinity, addToQueue : true, unitDetection : "pixelPercent" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INIT LAYOUT IMPL
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This creates an new instance of the layout impl this widget uses
+*/
+qx.Proto._createLayoutImpl = function() {
+  return new qx.renderer.layout.DockLayoutImpl(this);
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ENHANCED CHILDREN FEATURES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Add multiple childrens and make them left aligned
+*/
+qx.Proto.addLeft = function() {
+  this._addAlignedHorizontal("left", arguments);
+}
+
+/*!
+  Add multiple childrens and make them right aligned
+*/
+qx.Proto.addRight = function() {
+  this._addAlignedHorizontal("right", arguments);
+}
+
+/*!
+  Add multiple childrens and make them top aligned
+*/
+qx.Proto.addTop = function() {
+  this._addAlignedVertical("top", arguments);
+}
+
+/*!
+  Add multiple childrens and make them bottom aligned
+*/
+qx.Proto.addBottom = function() {
+  this._addAlignedVertical("bottom", arguments);
+}
+
+qx.Proto._addAlignedVertical = function(vAlign, vArgs)
+{
+  for (var i=0, l=vArgs.length; i<l; i++) {
+    vArgs[i].setVerticalAlign(vAlign);
+  }
+
+  this.add.apply(this, vArgs);
+}
+
+qx.Proto._addAlignedHorizontal = function(vAlign, vArgs)
+{
+  for (var i=0, l=vArgs.length; i<l; i++) {
+    vArgs[i].setHorizontalAlign(vAlign);
+  }
+
+  this.add.apply(this, vArgs);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/FlowLayout.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/FlowLayout.js
new file mode 100644 (file)
index 0000000..d2c1d93
--- /dev/null
@@ -0,0 +1,106 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_layout)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.layout.FlowLayout", qx.ui.core.Parent,
+function() {
+  qx.ui.core.Parent.call(this);
+});
+
+/*!
+  The spacing between childrens. Could be any positive integer value.
+*/
+qx.OO.addProperty({ name : "horizontalSpacing", type : "number", defaultValue : 0, addToQueueRuntime : true, impl : "layout" });
+
+/*!
+  The spacing between childrens. Could be any positive integer value.
+*/
+qx.OO.addProperty({ name : "verticalSpacing", type : "number", defaultValue : 0, addToQueueRuntime : true, impl : "layout" });
+
+/*!
+  The horizontal align of the children. Allowed values are: "left" and "right"
+*/
+qx.OO.addProperty({ name : "horizontalChildrenAlign", type : "string", defaultValue : "left", possibleValues : [ "left", "right" ], addToQueueRuntime : true });
+
+/*!
+  The vertical align of the children. Allowed values are: "top" and "bottom"
+*/
+qx.OO.addProperty({ name : "verticalChildrenAlign", type : "string", defaultValue : "top", possibleValues : [ "top", "bottom" ], addToQueueRuntime : true });
+
+/*!
+  Should the children be layouted in reverse order?
+*/
+qx.OO.addProperty({ name : "reverseChildrenOrder", type : "boolean", defaultValue : false, addToQueueRuntime : true, impl : "layout" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INIT LAYOUT IMPL
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This creates an new instance of the layout impl this widget uses
+*/
+qx.Proto._createLayoutImpl = function() {
+  return new qx.renderer.layout.FlowLayoutImpl(this);
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DIMENSION CACHE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._changeInnerWidth = function(vNew, vOld)
+{
+  qx.ui.core.Parent.prototype._changeInnerWidth.call(this, vNew, vOld);
+
+  // allow 'auto' values for height to update when the inner width changes
+  this._invalidatePreferredInnerHeight();
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyLayout = function(propValue, propOldValue, propData)
+{
+  // invalidate inner preferred dimensions
+  this._invalidatePreferredInnerDimensions();
+
+  return true;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/GridLayout.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/GridLayout.js
new file mode 100644 (file)
index 0000000..d823c5b
--- /dev/null
@@ -0,0 +1,864 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_layout)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.layout.GridLayout", qx.ui.core.Parent,
+function()
+{
+  qx.ui.core.Parent.call(this);
+
+  this._columnData = [];
+  this._rowData = [];
+
+  this._spans = [];
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  The spacing between childrens. Could be any positive integer value.
+*/
+qx.OO.addProperty({ name : "horizontalSpacing", type : "number", defaultValue : 0, addToQueueRuntime : true, impl : "layout" });
+
+/*!
+  The spacing between childrens. Could be any positive integer value.
+*/
+qx.OO.addProperty({ name : "verticalSpacing", type : "number", defaultValue : 0, addToQueueRuntime : true, impl : "layout" });
+
+/*!
+  The horizontal align of the children. Allowed values are: "left", "center" and "right"
+*/
+qx.OO.addProperty({ name : "horizontalChildrenAlign", type : "string", defaultValue : "left", possibleValues : [ "left", "center", "right" ], addToQueueRuntime : true });
+
+/*!
+  The vertical align of the children. Allowed values are: "top", "middle" and "bottom"
+*/
+qx.OO.addProperty({ name : "verticalChildrenAlign", type : "string", defaultValue : "top", possibleValues : [ "top", "middle", "bottom" ], addToQueueRuntime : true });
+
+/*!
+  Cell padding top of all cells, if not locally defined
+*/
+qx.OO.addProperty({ name : "cellPaddingTop", type : "number" });
+
+/*!
+  Cell padding right of all cells, if not locally defined
+*/
+qx.OO.addProperty({ name : "cellPaddingRight", type : "number" });
+
+/*!
+  Cell padding bottom of all cells, if not locally defined
+*/
+qx.OO.addProperty({ name : "cellPaddingBottom", type : "number" });
+
+/*!
+  Cell padding left of all cells, if not locally defined
+*/
+qx.OO.addProperty({ name : "cellPaddingLeft", type : "number" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INIT LAYOUT IMPL
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This creates an new instance of the layout impl this widget uses
+*/
+qx.Proto._createLayoutImpl = function() {
+  return new qx.renderer.layout.GridLayoutImpl(this);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CORE FUNCTIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.add = function(vChild, vCol, vRow)
+{
+  vChild._col = vCol;
+  vChild._row = vRow;
+
+  if (this.isFillCell(vCol, vRow)) {
+    throw new Error("Could not insert child " + vChild + " into a fill cell: " + vCol + "x" + vRow);
+  }
+
+  qx.ui.core.Parent.prototype.add.call(this, vChild);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyLayout = function(propValue, propOldValue, propData)
+{
+  // invalidate inner preferred dimensions
+  this._invalidatePreferredInnerDimensions();
+
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  GRID SETUP
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._syncDataFields = function(vData, vOldLength, vNewLength)
+{
+  if (vNewLength > vOldLength)
+  {
+    for (var i=vOldLength; i<vNewLength; i++) {
+      vData[i] = {};
+    }
+  }
+  else if (vOldLength > vNewLength)
+  {
+    vData.splice(vNewLength, vOldLength - vNewLength);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  GRID SETUP: COLUMNS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._columnCount = 0;
+
+qx.Proto.setColumnCount = function(vCount)
+{
+  this._columnCount = vCount;
+  this._syncColumnDataFields();
+}
+
+qx.Proto.getColumnCount = function() {
+  return this._columnCount;
+}
+
+qx.Proto.addColumn = function()
+{
+  this._columnCount++;
+  this._syncColumnDataFields();
+}
+
+qx.Proto.removeColumn = function()
+{
+  if (this._columnCount > 0)
+  {
+    this._columnCount--;
+    this._syncColumnDataFields();
+  }
+}
+
+qx.Proto._syncColumnDataFields = function()
+{
+  var vData = this._columnData;
+  var vOldLength = vData.length;
+  var vNewLength = this._columnCount;
+
+  this._syncDataFields(vData, vOldLength, vNewLength);
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  GRID SETUP: ROWS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._rowCount = 0;
+
+qx.Proto.setRowCount = function(vCount)
+{
+  this._rowCount = vCount;
+  this._syncRowDataFields();
+}
+
+qx.Proto.getRowCount = function() {
+  return this._rowCount;
+}
+
+qx.Proto.addRow = function()
+{
+  this._rowCount++;
+  this._syncRowDataFields();
+}
+
+qx.Proto.removeRow = function()
+{
+  if (this._rowCount > 0)
+  {
+    this._rowCount--;
+    this._syncRowDataFields();
+  }
+}
+
+qx.Proto._syncRowDataFields = function()
+{
+  var vData = this._rowData;
+  var vOldLength = vData.length;
+  var vNewLength = this._rowCount;
+
+  this._syncDataFields(vData, vOldLength, vNewLength);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DATA HANDLING: COLUMNS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._getColumnProperty = function(vColumnIndex, vProperty)
+{
+  try
+  {
+    return this._columnData[vColumnIndex][vProperty] || null;
+  }
+  catch(ex)
+  {
+    this.error("Error while getting column property (" + vColumnIndex + "|" + vProperty + ")", ex);
+    return null;
+  }
+}
+
+qx.Proto._setupColumnProperty = function(vColumnIndex, vProperty, vValue)
+{
+  this._columnData[vColumnIndex][vProperty] = vValue;
+  this._invalidateColumnLayout();
+}
+
+qx.Proto._removeColumnProperty = function(vColumnIndex, vProperty, vValue)
+{
+  delete this._columnData[vColumnIndex][vProperty];
+  this._invalidateColumnLayout();
+}
+
+qx.Proto._invalidateColumnLayout = function()
+{
+  if (!this._initialLayoutDone || !this._isDisplayable) {
+    return;
+  }
+
+  this.forEachVisibleChild(function() {
+    this.addToQueue("width");
+  });
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DATA HANDLING: ROWS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._getRowProperty = function(vRowIndex, vProperty)
+{
+  try
+  {
+    return this._rowData[vRowIndex][vProperty] || null;
+  }
+  catch(ex)
+  {
+    this.error("Error while getting row property (" + vRowIndex + "|" + vProperty + ")", ex);
+    return null;
+  }
+}
+
+qx.Proto._setupRowProperty = function(vRowIndex, vProperty, vValue)
+{
+  this._rowData[vRowIndex][vProperty] = vValue;
+  this._invalidateRowLayout();
+}
+
+qx.Proto._removeRowProperty = function(vRowIndex, vProperty, vValue)
+{
+  delete this._rowData[vRowIndex][vProperty];
+  this._invalidateRowLayout();
+}
+
+qx.Proto._invalidateRowLayout = function()
+{
+  if (!this._initialLayoutDone || !this._isDisplayable) {
+    return;
+  }
+
+  this.forEachVisibleChild(function() {
+    this.addToQueue("height");
+  });
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES: CELL DIMENSIONS
+---------------------------------------------------------------------------
+*/
+
+// SETTER
+
+qx.Proto.setColumnWidth = function(vIndex, vValue)
+{
+  this._setupColumnProperty(vIndex, "widthValue", vValue);
+
+  var vType = qx.ui.core.Parent.prototype._evalUnitsPixelPercentAutoFlex(vValue);
+
+  this._setupColumnProperty(vIndex, "widthType", vType);
+
+  var vParsed, vComputed;
+
+  switch(vType)
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      vParsed = vComputed = Math.round(vValue);
+      break;
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+    case qx.ui.core.Widget.TYPE_FLEX:
+      vParsed = parseFloat(vValue);
+      vComputed = null;
+      break;
+
+    case qx.ui.core.Widget.TYPE_AUTO:
+      vParsed = vComputed = null;
+      break;
+
+    default:
+      vParsed = vComputed = null;
+  }
+
+  this._setupColumnProperty(vIndex, "widthParsed", vParsed);
+  this._setupColumnProperty(vIndex, "widthComputed", vComputed);
+}
+
+qx.Proto.setRowHeight = function(vIndex, vValue)
+{
+  this._setupRowProperty(vIndex, "heightValue", vValue);
+
+  var vType = qx.ui.core.Widget.prototype._evalUnitsPixelPercentAutoFlex(vValue);
+  this._setupRowProperty(vIndex, "heightType", vType);
+
+  var vParsed, vComputed;
+
+  switch(vType)
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      vParsed = vComputed = Math.round(vValue);
+      break;
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+    case qx.ui.core.Widget.TYPE_FLEX:
+      vParsed = parseFloat(vValue);
+      vComputed = null;
+      break;
+
+    case qx.ui.core.Widget.TYPE_AUTO:
+      vParsed = vComputed = null;
+      break;
+
+    default:
+      vParsed = vComputed = null;
+  }
+
+  this._setupRowProperty(vIndex, "heightParsed", vParsed);
+  this._setupRowProperty(vIndex, "heightComputed", vComputed);
+}
+
+
+
+// GETTER: BOX
+
+qx.Proto.getColumnBoxWidth = function(vIndex)
+{
+  var vComputed = this._getColumnProperty(vIndex, "widthComputed");
+
+  if (vComputed != null) {
+    return vComputed;
+  }
+
+  var vType = this._getColumnProperty(vIndex, "widthType");
+  var vParsed = this._getColumnProperty(vIndex, "widthParsed");
+  var vComputed = null;
+
+  switch(vType)
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      vComputed = Math.max(0, vParsed);
+      break;
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+      vComputed = this.getInnerWidth() * Math.max(0, vParsed) * 0.01;
+      break;
+
+    case qx.ui.core.Widget.TYPE_AUTO:
+      // TODO
+      vComputed = null;
+      break;
+
+    case qx.ui.core.Widget.TYPE_FLEX:
+      // TODO
+      vComputed = null;
+      break;
+  }
+
+  this._setupColumnProperty(vIndex, "widthComputed", vComputed);
+  return vComputed;
+}
+
+qx.Proto.getRowBoxHeight = function(vIndex)
+{
+  var vComputed = this._getRowProperty(vIndex, "heightComputed");
+
+  if (vComputed != null) {
+    return vComputed;
+  }
+
+  var vType = this._getRowProperty(vIndex, "heightType");
+  var vParsed = this._getRowProperty(vIndex, "heightParsed");
+  var vComputed = null;
+
+  switch(vType)
+  {
+    case qx.ui.core.Widget.TYPE_PIXEL:
+      vComputed = Math.max(0, vParsed);
+      break;
+
+    case qx.ui.core.Widget.TYPE_PERCENT:
+      vComputed = this.getInnerHeight() * Math.max(0, vParsed) * 0.01;
+      break;
+
+    case qx.ui.core.Widget.TYPE_AUTO:
+      // TODO
+      vComputed = null;
+      break;
+
+    case qx.ui.core.Widget.TYPE_FLEX:
+      // TODO
+      vComputed = null;
+      break;
+  }
+
+  this._setupRowProperty(vIndex, "heightComputed", vComputed);
+  return vComputed;
+}
+
+
+// GETTER: PADDING
+
+qx.Proto.getComputedCellPaddingLeft = function(vCol, vRow) {
+  return this.getColumnPaddingLeft(vCol) || this.getRowPaddingLeft(vRow) || this.getCellPaddingLeft() || 0;
+}
+
+qx.Proto.getComputedCellPaddingRight = function(vCol, vRow) {
+  return this.getColumnPaddingRight(vCol) || this.getRowPaddingRight(vRow) || this.getCellPaddingRight() || 0;
+}
+
+qx.Proto.getComputedCellPaddingTop = function(vCol, vRow) {
+  return this.getRowPaddingTop(vRow) || this.getColumnPaddingTop(vCol) || this.getCellPaddingTop() || 0;
+}
+
+qx.Proto.getComputedCellPaddingBottom = function(vCol, vRow) {
+  return this.getRowPaddingBottom(vRow) || this.getColumnPaddingBottom(vCol) || this.getCellPaddingBottom() || 0;
+}
+
+
+// GETTER: INNER
+
+qx.Proto.getColumnInnerWidth = function(vCol, vRow) {
+  return this.getColumnBoxWidth(vCol) - this.getComputedCellPaddingLeft(vCol, vRow) - this.getComputedCellPaddingRight(vCol, vRow);
+}
+
+qx.Proto.getRowInnerHeight = function(vCol, vRow) {
+  return this.getRowBoxHeight(vRow) - this.getComputedCellPaddingTop(vCol, vRow) - this.getComputedCellPaddingBottom(vCol, vRow);
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES: CELL ALIGNMENT
+---------------------------------------------------------------------------
+*/
+
+// SETTER
+
+qx.Proto.setColumnHorizontalAlignment = function(vIndex, vValue) {
+  this._setupColumnProperty(vIndex, "horizontalAlignment", vValue);
+}
+
+qx.Proto.setColumnVerticalAlignment = function(vIndex, vValue) {
+  this._setupColumnProperty(vIndex, "verticalAlignment", vValue);
+}
+
+qx.Proto.setRowHorizontalAlignment = function(vIndex, vValue) {
+  this._setupRowProperty(vIndex, "horizontalAlignment", vValue);
+}
+
+qx.Proto.setRowVerticalAlignment = function(vIndex, vValue) {
+  this._setupRowProperty(vIndex, "verticalAlignment", vValue);
+}
+
+
+
+// GETTER
+
+qx.Proto.getColumnHorizontalAlignment = function(vIndex) {
+  return this._getColumnProperty(vIndex, "horizontalAlignment");
+}
+
+qx.Proto.getColumnVerticalAlignment = function(vIndex) {
+  return this._getColumnProperty(vIndex, "verticalAlignment");
+}
+
+qx.Proto.getRowHorizontalAlignment = function(vIndex) {
+  return this._getRowProperty(vIndex, "horizontalAlignment");
+}
+
+qx.Proto.getRowVerticalAlignment = function(vIndex) {
+  return this._getRowProperty(vIndex, "verticalAlignment");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES: CELL PADDING
+---------------------------------------------------------------------------
+*/
+
+// SETTER
+
+qx.Proto.setColumnPaddingTop = function(vIndex, vValue) {
+  this._setupColumnProperty(vIndex, "paddingTop", vValue);
+}
+
+qx.Proto.setColumnPaddingRight = function(vIndex, vValue) {
+  this._setupColumnProperty(vIndex, "paddingRight", vValue);
+}
+
+qx.Proto.setColumnPaddingBottom = function(vIndex, vValue) {
+  this._setupColumnProperty(vIndex, "paddingBottom", vValue);
+}
+
+qx.Proto.setColumnPaddingLeft = function(vIndex, vValue) {
+  this._setupColumnProperty(vIndex, "paddingLeft", vValue);
+}
+
+qx.Proto.setRowPaddingTop = function(vIndex, vValue) {
+  this._setupRowProperty(vIndex, "paddingTop", vValue);
+}
+
+qx.Proto.setRowPaddingRight = function(vIndex, vValue) {
+  this._setupRowProperty(vIndex, "paddingRight", vValue);
+}
+
+qx.Proto.setRowPaddingBottom = function(vIndex, vValue) {
+  this._setupRowProperty(vIndex, "paddingBottom", vValue);
+}
+
+qx.Proto.setRowPaddingLeft = function(vIndex, vValue) {
+  this._setupRowProperty(vIndex, "paddingLeft", vValue);
+}
+
+
+
+// GETTER
+
+qx.Proto.getColumnPaddingTop = function(vIndex) {
+  return this._getColumnProperty(vIndex, "paddingTop");
+}
+
+qx.Proto.getColumnPaddingRight = function(vIndex) {
+  return this._getColumnProperty(vIndex, "paddingRight");
+}
+
+qx.Proto.getColumnPaddingBottom = function(vIndex) {
+  return this._getColumnProperty(vIndex, "paddingBottom");
+}
+
+qx.Proto.getColumnPaddingLeft = function(vIndex) {
+  return this._getColumnProperty(vIndex, "paddingLeft");
+}
+
+qx.Proto.getRowPaddingTop = function(vIndex) {
+  return this._getRowProperty(vIndex, "paddingTop");
+}
+
+qx.Proto.getRowPaddingRight = function(vIndex) {
+  return this._getRowProperty(vIndex, "paddingRight");
+}
+
+qx.Proto.getRowPaddingBottom = function(vIndex) {
+  return this._getRowProperty(vIndex, "paddingBottom");
+}
+
+qx.Proto.getRowPaddingLeft = function(vIndex) {
+  return this._getRowProperty(vIndex, "paddingLeft");
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DIMENSION CACHE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._changeInnerWidth = function(vNew, vOld)
+{
+  for (var i=0, l=this.getColumnCount(); i<l; i++) {
+    if (this._getColumnProperty(i, "widthType") == qx.ui.core.Widget.TYPE_PERCENT) {
+      this._setupColumnProperty(i, "widthComputed", null);
+    }
+  }
+
+  qx.ui.core.Parent.prototype._changeInnerWidth.call(this, vNew, vOld);
+}
+
+qx.Proto._changeInnerHeight = function(vNew, vOld)
+{
+  for (var i=0, l=this.getRowCount(); i<l; i++) {
+    if (this._getRowProperty(i, "heightType") == qx.ui.core.Widget.TYPE_PERCENT) {
+      this._setupRowProperty(i, "heightComputed", null);
+    }
+  }
+
+  qx.ui.core.Parent.prototype._changeInnerHeight.call(this, vNew, vOld);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DIMENSION CACHE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getInnerWidthForChild = function(vChild) {
+  return this._getColumnProperty(vChild._col, "widthComputed");
+}
+
+qx.Proto.getInnerHeightForChild = function(vChild) {
+  return this._getRowProperty(vChild._row, "heightComputed");
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SPAN CELLS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.mergeCells = function(vStartCol, vStartRow, vColLength, vRowLength)
+{
+  var vSpans = this._spans;
+  var vLength = vSpans.length;
+
+  // Find end cols/rows
+  var vEndCol = vStartCol + vColLength - 1;
+  var vEndRow = vStartRow + vRowLength - 1;
+
+  if (this._collidesWithSpans(vStartCol, vStartRow, vEndCol, vEndRow))
+  {
+    this.debug("Span collision detected!");
+
+    // Send out warning
+    return false;
+  }
+
+  // Finally store new span entry
+  vSpans.push({ startCol : vStartCol, startRow : vStartRow, endCol : vEndCol, endRow : vEndRow, colLength : vColLength, rowLength : vRowLength });
+
+  // Send out ok
+  return true;
+}
+
+qx.Proto.hasSpans = function() {
+  return this._spans.length > 0;
+}
+
+qx.Proto.getSpanEntry = function(vCol, vRow)
+{
+  for (var i=0, s=this._spans, l=s.length, c; i<l; i++)
+  {
+    c = s[i];
+
+    if (vCol >= c.startCol && vCol <= c.endCol && vRow >= c.startRow && vRow <= c.endRow) {
+      return c;
+    }
+  }
+
+  return null;
+}
+
+qx.Proto.isSpanStart = function(vCol, vRow)
+{
+  for (var i=0, s=this._spans, l=s.length, c; i<l; i++)
+  {
+    c = s[i];
+
+    if (c.startCol == vCol && c.startRow == vRow) {
+      return true;
+    }
+  }
+
+  return false;
+}
+
+qx.Proto.isSpanCell = function(vCol, vRow)
+{
+  for (var i=0, s=this._spans, l=s.length, c; i<l; i++)
+  {
+    c = s[i];
+
+    if (vCol >= c.startCol && vCol <= c.endCol && vRow >= c.startRow && vRow <= c.endRow) {
+      return true;
+    }
+  }
+
+  return false;
+}
+
+qx.Proto.isFillCell = function(vCol, vRow)
+{
+  for (var i=0, s=this._spans, l=s.length, c; i<l; i++)
+  {
+    c = s[i];
+
+    if (vCol >= c.startCol && vCol <= c.endCol && vRow >= c.startRow && vRow <= c.endRow && (vCol > c.startCol || vRow > c.startRow)) {
+      return true;
+    }
+  }
+
+  return false;
+}
+
+qx.Proto._collidesWithSpans = function(vStartCol, vStartRow, vEndCol, vEndRow)
+{
+  for (var i=0, s=this._spans, l=s.length, c; i<l; i++)
+  {
+    c = s[i];
+
+    if (vEndCol >= c.startCol && vStartCol <= c.endCol && vEndRow >= c.startRow && vStartRow <= c.endRow ) {
+      return true;
+    }
+  }
+
+  return false;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+
+  delete this._columnData;
+  delete this._rowData;
+
+  delete this._spans;
+
+  return qx.ui.core.Parent.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/HorizontalBoxLayout.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/HorizontalBoxLayout.js
new file mode 100644 (file)
index 0000000..8eb08fe
--- /dev/null
@@ -0,0 +1,29 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+#module(ui_layout)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.layout.HorizontalBoxLayout", qx.ui.layout.BoxLayout,
+function() {
+  qx.ui.layout.BoxLayout.call(this, "horizontal");
+});
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/VerticalBoxLayout.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/VerticalBoxLayout.js
new file mode 100644 (file)
index 0000000..9b188f6
--- /dev/null
@@ -0,0 +1,29 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_basic)
+#module(ui_layout)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.layout.VerticalBoxLayout", qx.ui.layout.BoxLayout,
+function() {
+  qx.ui.layout.BoxLayout.call(this, "vertical");
+});
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellHtml.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellHtml.js
new file mode 100644 (file)
index 0000000..ed73e29
--- /dev/null
@@ -0,0 +1,37 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_listview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.listview.ContentCellHtml", qx.ui.embed.HtmlEmbed,
+function(vHtml)
+{
+  qx.ui.embed.HtmlEmbed.call(this, vHtml);
+
+  this.setSelectable(false);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-content-cell-html" });
+
+qx.ui.listview.ContentCellHtml.empty = {
+  html : ""
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellIconHtml.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellIconHtml.js
new file mode 100644 (file)
index 0000000..7203299
--- /dev/null
@@ -0,0 +1,39 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_listview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.listview.ContentCellIconHtml", qx.ui.embed.IconHtmlEmbed,
+function(vHtml, vIcon, vIconWidth, vIconHeight)
+{
+  qx.ui.embed.IconHtmlEmbed.call(this, vHtml, vIcon, vIconWidth, vIconHeight);
+
+  this.setSelectable(false);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-content-cell-icon-html" });
+
+qx.ui.listview.ContentCellIconHtml.empty =
+{
+  icon : "",
+  html : ""
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellImage.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellImage.js
new file mode 100644 (file)
index 0000000..421f2e0
--- /dev/null
@@ -0,0 +1,57 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_listview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.listview.ContentCellImage", qx.ui.basic.Image,
+function(vSource, vWidth, vHeight) {
+  qx.ui.basic.Image.call(this, vSource, vWidth, vHeight);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-content-cell-image" });
+
+qx.ui.listview.ContentCellImage.empty = {
+  source : "static/image/blank.gif"
+}
+
+
+
+/*
+---------------------------------------------------------------------------
+  CUSTOM SETTER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.setSource = function(vSource)
+{
+  if (this._initialLayoutDone)
+  {
+    return this._updateContent(qx.manager.object.AliasManager.getInstance().resolvePath(vSource == "" ? "static/image/blank.gif" : vSource));
+  }
+  else
+  {
+    return qx.ui.basic.Image.prototype.setSource.call(this, vSource);
+  }
+}
+
+// Omit dimension setup in list-view
+qx.Proto._postApplyDimensions = qx.util.Return.returnTrue;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellLink.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellLink.js
new file mode 100644 (file)
index 0000000..b53338a
--- /dev/null
@@ -0,0 +1,40 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_listview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.listview.ContentCellLink", qx.ui.embed.LinkEmbed,
+function(vHtml)
+{
+  qx.ui.embed.LinkEmbed.call(this, vHtml);
+
+  // selectable = false will break links in gecko based browsers
+  this.setSelectable(true);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-content-cell-link" });
+
+qx.ui.listview.ContentCellLink.empty =
+{
+  html : "",
+  uri : "#"
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellText.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellText.js
new file mode 100644 (file)
index 0000000..2d4b285
--- /dev/null
@@ -0,0 +1,40 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_listview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.listview.ContentCellText", qx.ui.embed.TextEmbed,
+function(vText)
+{
+  qx.ui.embed.TextEmbed.call(this, vText);
+
+  this.setStyleProperty("whiteSpace", "nowrap");
+  this.setStyleProperty("textOverflow", "ellipsis");
+
+  this.setSelectable(false);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-content-cell-text" });
+
+qx.ui.listview.ContentCellText.empty = {
+  text : ""
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/Header.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/Header.js
new file mode 100644 (file)
index 0000000..5d11d5b
--- /dev/null
@@ -0,0 +1,294 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_listview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.listview.Header", qx.ui.layout.HorizontalBoxLayout,
+function(vColumns)
+{
+  qx.ui.layout.HorizontalBoxLayout.call(this);
+
+  // This fixes the innerWidth calculation difference between the grid(pane) and the head.
+  this.setPaddingRight(qx.ui.core.Widget.SCROLLBAR_SIZE);
+
+
+  // ************************************************************************
+  //   STORE REFERENCE TO CONFIG ENTRY
+  // ************************************************************************
+  this._columns = vColumns;
+
+
+  // ************************************************************************
+  //   CREATE HEADER CELLS
+  // ************************************************************************
+  var vHeadCell, vHeadSeparator;
+
+  for (var vCol in vColumns)
+  {
+    vHeadCell = new qx.ui.listview.HeaderCell(vColumns[vCol], vCol);
+    vHeadSeparator = new qx.ui.listview.HeaderSeparator;
+
+    this.add(vHeadCell, vHeadSeparator);
+
+    if (vColumns[vCol].align) {
+      vHeadCell.setHorizontalChildrenAlign(vColumns[vCol].align);
+
+      if (vColumns[vCol].align == "right") {
+        vHeadCell.setReverseChildrenOrder(true);
+      }
+    }
+
+    // store some additional data
+    vColumns[vCol].contentClass = qx.OO.classes["qx.ui.listview.ContentCell" + qx.lang.String.toFirstUp(vColumns[vCol].type || "text")];
+    vColumns[vCol].headerCell = vHeadCell;
+  }
+
+
+  // ************************************************************************
+  //   ADD EVENT LISTENERS
+  // ************************************************************************
+  this.addEventListener("mousemove", this._onmousemove);
+  this.addEventListener("mousedown", this._onmousedown);
+  this.addEventListener("mouseup", this._onmouseup);
+  this.addEventListener("mouseout", this._onmouseout);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-header" });
+
+
+
+/*
+---------------------------------------------------------------------------
+  RESIZE SYNC
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._syncColumnWidth = function(vWidth)
+{
+  var vChildren = this.getChildren();
+  var vColumn = Math.ceil(vChildren.indexOf(this._resizeCell) / 2);
+
+  this.getParent().getPane().setColumnWidth(vColumn, vWidth);
+}
+
+qx.Proto._syncResizeLine = function()
+{
+  qx.ui.core.Widget.flushGlobalQueues();
+
+  var vParent = this.getParent();
+  var vLine = vParent.getResizeLine();
+  var vLeft = qx.dom.Location.getPageBoxLeft(this._resizeSeparator.getElement()) - qx.dom.Location.getPageInnerLeft(this.getElement());
+  var vTop = qx.dom.Dimension.getBoxHeight(vParent.getHeader().getElement());
+  var vHeight = qx.dom.Dimension.getBoxHeight(vParent.getElement()) - vTop;
+
+  vLine._applyRuntimeTop(vTop);
+  vLine._applyRuntimeHeight(vHeight);
+  vLine._applyRuntimeLeft(vLeft);
+
+  vLine.removeStyleProperty("visibility");
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._mshtml = qx.sys.Client.getInstance().isMshtml();
+
+qx.Proto._onmousemove = function(e)
+{
+  if (!this.getParent().getResizable()) {
+    return;
+  }
+
+  if (this._resizingActive)
+  {
+    // Slow down mshtml a bit
+    if (this._mshtml)
+    {
+      if ((new Date).valueOf() - this._last < 50) {
+        return;
+      }
+
+      this._last = (new Date).valueOf();
+    }
+
+    var vNewLeft = e.getPageX();
+    var vSizeDiff = vNewLeft - this._resizeStart;
+    var vCell = this._resizeCell;
+
+    vCell.setWidth(Math.max(4, vCell.getWidth() + vSizeDiff));
+    this._resizeStart = vNewLeft;
+
+    if (this.getParent().getLiveResize())
+    {
+      this._syncColumnWidth(vCell._computeBoxWidth());
+    }
+    else
+    {
+      this._syncResizeLine();
+    }
+  }
+  else
+  {
+    var vTarget = e.getTarget();
+    var vEventPos = e.getPageX();
+    var vTargetPosLeft = qx.dom.Location.getPageBoxLeft(vTarget.getElement());
+    var vTargetPosRight = vTargetPosLeft + qx.dom.Dimension.getBoxWidth(vTarget.getElement());
+
+    var vResizeCursor = false;
+    var vResizeSeparator = null;
+
+    if (vTarget instanceof qx.ui.listview.HeaderSeparator)
+    {
+      vResizeCursor = true;
+      vResizeSeparator = vTarget;
+    }
+    else if ((vEventPos - vTargetPosLeft) <= 10)
+    {
+      // Ignore first column
+      if (!vTarget.isFirstChild())
+      {
+        vResizeCursor = true;
+        vResizeSeparator = vTarget.getPreviousSibling();
+      }
+    }
+    else if ((vTargetPosRight - vEventPos) <= 10)
+    {
+      vResizeCursor = true;
+      vResizeSeparator = vTarget.getNextSibling();
+    }
+
+    if (!(vResizeSeparator instanceof qx.ui.listview.HeaderSeparator))
+    {
+      vResizeSeparator = vTarget = vResizeCursor = null;
+    }
+
+    // Check if child is marked as resizable
+    else if (vResizeSeparator)
+    {
+      var vResizeCell = vResizeSeparator.getPreviousSibling();
+
+      if (vResizeCell && (vResizeCell._computedWidthTypePercent || vResizeCell._config.resizable == false)) {
+        vResizeSeparator = vTarget = vResizeCursor = null;
+      }
+    }
+
+    // Apply global cursor
+    this.getTopLevelWidget().setGlobalCursor(vResizeCursor ? "e-resize" : null);
+
+    // Store data for mousedown
+    this._resizeSeparator = vResizeSeparator;
+    this._resizeTarget = vTarget;
+  }
+}
+
+qx.Proto._onmousedown = function(e)
+{
+  if (!this._resizeSeparator) {
+    return;
+  }
+
+  this._resizingActive = true;
+  this._resizeStart = e.getPageX();
+  this._resizeCell = this._resizeSeparator.getPreviousSibling();
+
+  if (!this.getParent().getLiveResize()) {
+    this._syncResizeLine();
+  }
+
+  this.setCapture(true);
+}
+
+qx.Proto._onmouseup = function(e)
+{
+  if (!this._resizingActive) {
+    return;
+  }
+
+  this._syncColumnWidth(this._resizeCell.getBoxWidth());
+
+  this.setCapture(false);
+  this.getTopLevelWidget().setGlobalCursor(null);
+
+  // Remove hover effect
+  this._resizeTarget.removeState("over");
+
+  // Hide resize line
+  this.getParent().getResizeLine().setStyleProperty("visibility", "hidden");
+
+  this._cleanupResizing();
+}
+
+qx.Proto._onmouseout = function(e)
+{
+  if (!this.getCapture()) {
+    this.getTopLevelWidget().setGlobalCursor(null);
+  }
+}
+
+qx.Proto._cleanupResizing = function()
+{
+  delete this._resizingActive;
+
+  delete this._resizeSeparator;
+  delete this._resizeTarget;
+  delete this._resizeStart;
+  delete this._resizeCell;
+}
+
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._cleanupResizing();
+
+  this.removeEventListener("mousemove", this._onmousemove);
+  this.removeEventListener("mousedown", this._onmousedown);
+  this.removeEventListener("mouseup", this._onmouseup);
+  this.removeEventListener("mouseout", this._onmouseout);
+
+  this._columns = null;
+
+  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/HeaderCell.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/HeaderCell.js
new file mode 100644 (file)
index 0000000..46e198b
--- /dev/null
@@ -0,0 +1,255 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_listview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.listview.HeaderCell", qx.ui.basic.Atom,
+function(vConfig, vId)
+{
+  qx.ui.basic.Atom.call(this, vConfig.label, vConfig.icon, vConfig.iconWidth, vConfig.iconHeight, vConfig.flash);
+
+  // Text Overflow
+  this.setStyleProperty("textOverflow", "ellipsis");
+
+
+  // ************************************************************************
+  //   STORE REFERENCE TO CONFIG ENTRY
+  // ************************************************************************
+  this._config = vConfig;
+  this._id = vId;
+
+
+  // ************************************************************************
+  //   ARGUMENTS
+  // ************************************************************************
+  this.setWidth(typeof vConfig.width === "undefined" ? "auto" : vConfig.width);
+
+  if (qx.util.Validation.isValid(vConfig.minWidth)) {
+    this.setMinWidth(vConfig.minWidth);
+  }
+
+  if (qx.util.Validation.isValid(vConfig.maxWidth)) {
+    this.setMaxWidth(vConfig.maxWidth);
+  }
+
+
+  // ************************************************************************
+  //   ADDITIONAL CHILDREN
+  // ************************************************************************
+
+  // Re-Enable flex support
+  this.getLayoutImpl().setEnableFlexSupport(true);
+
+  this._spacer = new qx.ui.basic.HorizontalSpacer;
+
+  this._arrowup = new qx.ui.basic.Image("widget/arrows/up.gif");
+  this._arrowup.setVerticalAlign("middle");
+  this._arrowup.setDisplay(false);
+
+  this._arrowdown = new qx.ui.basic.Image("widget/arrows/down.gif");
+  this._arrowdown.setVerticalAlign("middle");
+  this._arrowdown.setDisplay(false);
+
+  this.add(this._spacer, this._arrowup, this._arrowdown);
+
+
+  // ************************************************************************
+  //   EVENTS
+  // ************************************************************************
+
+  this.addEventListener("mouseup", this._onmouseup);
+  this.addEventListener("mouseover", this._onmouseover);
+  this.addEventListener("mouseout", this._onmouseout);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-header-cell" });
+qx.OO.addProperty({ name : "sortOrder", type : "string", allowNull : true, possibleValues : [ "ascending", "descending" ] });
+
+qx.Class.C_SORT_ASCENDING = "ascending";
+qx.Class.C_SORT_DESCENDING = "descending";
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getView = function() {
+  return this.getParent().getParent();
+}
+
+qx.Proto.getNextSortOrder = function()
+{
+  var vCurrentSortOrder = this.getSortOrder();
+
+  switch(vCurrentSortOrder)
+  {
+    case qx.ui.listview.HeaderCell.C_SORT_ASCENDING:
+      return qx.ui.listview.HeaderCell.C_SORT_DESCENDING;
+
+    default:
+      return qx.ui.listview.HeaderCell.C_SORT_ASCENDING;
+  }
+}
+
+qx.Proto.updateSort = function()
+{
+
+  var vListView = this.getView();
+  var vData = vListView.getData();
+  var vFieldId = this._id;
+  var vSortProp = this._config.sortProp || "text";
+  var vSortMethod = this._config.sortMethod || qx.util.Compare.byString;
+
+  vData.sort(function(a, b) {
+    return vSortMethod(a[vFieldId][vSortProp], b[vFieldId][vSortProp]);
+  });
+
+  if (this.getSortOrder() == qx.ui.listview.HeaderCell.C_SORT_DESCENDING) {
+    vData.reverse();
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifySortOrder = function(propValue, propOldValue, propData)
+{
+  var vListView = this.getView();
+
+  switch(propValue)
+  {
+    case qx.ui.listview.HeaderCell.C_SORT_ASCENDING:
+      this._arrowup.setDisplay(true);
+      this._arrowdown.setDisplay(false);
+
+      vListView.setSortBy(this._id);
+      break;
+
+    case qx.ui.listview.HeaderCell.C_SORT_DESCENDING:
+      this._arrowup.setDisplay(false);
+      this._arrowdown.setDisplay(true);
+
+      vListView.setSortBy(this._id);
+      break;
+
+    default:
+      this._arrowup.setDisplay(false);
+      this._arrowdown.setDisplay(false);
+
+      if (vListView.getSortBy() == this._id) {
+        vListView.setSortBy(null);
+      }
+  }
+
+  if (propValue)
+  {
+    this.updateSort();
+    vListView.update();
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmouseover = function(e) {
+  this.addState("over");
+}
+
+qx.Proto._onmouseout = function(e) {
+  this.removeState("over");
+}
+
+qx.Proto._onmouseup = function(e)
+{
+  if (!this._config.sortable || this.getParent()._resizeSeparator) {
+    return;
+  }
+
+  this.setSortOrder(this.getNextSortOrder());
+  e.stopPropagation();
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  delete this._config;
+
+  if (this._spacer)
+  {
+    this._spacer.dispose();
+    this._spacer = null;
+  }
+
+  if (this._arrowup)
+  {
+    this._arrowup.dispose();
+    this._arrowup = null;
+  }
+
+  if (this._arrowdown)
+  {
+    this._arrowdown.dispose();
+    this._arrowdown = null;
+  }
+
+  this.removeEventListener("mouseup", this._onmouseup);
+  this.removeEventListener("mouseover", this._onmouseover);
+  this.removeEventListener("mouseout", this._onmouseout);
+
+  return qx.ui.basic.Atom.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/HeaderSeparator.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/HeaderSeparator.js
new file mode 100644 (file)
index 0000000..c2058db
--- /dev/null
@@ -0,0 +1,30 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_listview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.listview.HeaderSeparator", qx.ui.basic.Terminator,
+function() {
+  qx.ui.basic.Terminator.call(this);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-header-separator" });
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ListView.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ListView.js
new file mode 100644 (file)
index 0000000..567df40
--- /dev/null
@@ -0,0 +1,373 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_listview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.listview.ListView", qx.ui.layout.VerticalBoxLayout,
+function(vData, vColumns)
+{
+  // ************************************************************************
+  //   REFERENCES
+  // ************************************************************************
+
+  this._data = vData;
+  this._columns = vColumns;
+
+
+
+  // ************************************************************************
+  //   OBJECTS
+  // ************************************************************************
+
+  this._header = new qx.ui.listview.Header(vColumns);
+  this._frame = new qx.ui.layout.HorizontalBoxLayout;
+  this._pane = new qx.ui.listview.ListViewPane(vData, vColumns);
+  this._scroll = new qx.ui.layout.CanvasLayout;
+  this._scrollContent = new qx.ui.basic.Terminator;
+  this._resizeLine = new qx.ui.basic.Terminator;
+
+
+
+  // ************************************************************************
+  //   SUPERCLASS CONSTRUCTOR
+  // ************************************************************************
+
+  qx.ui.layout.VerticalBoxLayout.call(this);
+
+
+
+  // ************************************************************************
+  //   HEADER
+  // ************************************************************************
+
+  this._header.setParent(this);
+
+
+
+  // ************************************************************************
+  //   FRAME
+  // ************************************************************************
+
+  this._frame.setParent(this);
+  this._frame.setHeight("1*");
+  this._frame.setWidth(null);
+
+
+
+  // ************************************************************************
+  //   PANE
+  // ************************************************************************
+
+  this._pane.setParent(this._frame);
+
+
+
+  // ************************************************************************
+  //   SCROLL AREA
+  // ************************************************************************
+
+  this._scroll.setWidth("auto");
+  this._scroll.setOverflow("scrollY");
+  this._scroll.setParent(this._frame);
+  this._scroll.enableInlineEvent("scroll");
+  this._scroll.addEventListener("scroll", this._onscroll, this);
+
+
+
+  // ************************************************************************
+  //   SCROLL CONTENT
+  // ************************************************************************
+
+  this._scrollContent.setWidth(1);
+  this._scrollContent.setParent(this._scroll);
+
+
+
+
+  // ************************************************************************
+  //   RESIZE LINE
+  // ************************************************************************
+
+  this._resizeLine.setBackgroundColor("#D6D5D9");
+  this._resizeLine.setWidth(1);
+  this._resizeLine.setParent(this);
+
+
+
+  // ************************************************************************
+  //   EVENTS
+  // ************************************************************************
+
+  this.addEventListener("mousedown", this._onmousedown);
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view" });
+
+qx.OO.addProperty({ name : "resizable", type : "boolean", defaultValue : true });
+qx.OO.addProperty({ name : "liveResize", type : "boolean", defaultValue : false });
+qx.OO.addProperty({ name : "sortBy", type : "string" });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getData = function() {
+  return this._data;
+}
+
+qx.Proto.getColumns = function() {
+  return this._columns;
+}
+
+qx.Proto.getHeader = function() {
+  return this._header;
+}
+
+qx.Proto.getFrame = function() {
+  return this._frame;
+}
+
+qx.Proto.getPane = function() {
+  return this._pane;
+}
+
+qx.Proto.getScroll = function() {
+  return this._scroll;
+}
+
+qx.Proto.getScrollContent = function() {
+  return this._scrollContent;
+}
+
+qx.Proto.getResizeLine = function() {
+  return this._resizeLine;
+}
+
+qx.Proto.update = function()
+{
+  this.updateScrollBar();
+  this.updateContent();
+
+  // ignore updateLayout here, as it is mostly initially used
+}
+
+qx.Proto.updateScrollBar = function() {
+  this._scrollContent.setHeight((this._data.length * this._pane._rowHeight) + this._pane._rowHeight);
+}
+
+/*!
+  Bugfix for gecko 1.8 (the one released with firefox 1.5)
+  Overflow updates if content gets smaller are problematic
+  https://bugzilla.mozilla.org/show_bug.cgi?id=320106
+*/
+if (qx.sys.Client.getInstance().isGecko() && qx.sys.Client.getInstance().getVersion() >= 1.8)
+{
+  qx.Proto._updateScrollBar = qx.Proto.updateScrollBar;
+
+  qx.Proto.updateScrollBar = function()
+  {
+    this._updateScrollBar();
+
+    this._scroll.setStyleProperty("height", "0px");
+    this._scroll.forceHeight(0);
+    this._scroll.setHeight(null);
+  }
+}
+
+qx.Proto.updateContent = function() {
+  this.getPane()._updateRendering(true);
+}
+
+qx.Proto.updateLayout = function() {
+  this.getPane()._updateLayout();
+}
+
+qx.Proto.updateSort = function()
+{
+  var vSortBy = this.getSortBy();
+
+  if (!vSortBy) {
+    return;
+  }
+
+  var vCell = this._getHeaderCell(vSortBy);
+
+  if (vCell) {
+    vCell.updateSort();
+  }
+}
+
+qx.Proto._getHeaderCell = function(vCellId)
+{
+  var vNewEntry = this._columns[vCellId];
+  return vNewEntry ? vNewEntry.headerCell : null;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifySortBy = function(propValue, propOldValue, propData)
+{
+  if (propOldValue)
+  {
+    var vOldCell = this._getHeaderCell(propOldValue);
+
+    if (vOldCell) {
+      vOldCell.setSortOrder(null);
+    }
+  }
+
+  if (propValue)
+  {
+    var vNewCell = this._getHeaderCell(propValue);
+
+    if (vNewCell && vNewCell.getSortOrder() == null) {
+      vNewCell.setSortOrder(qx.ui.listview.HeaderCell.C_SORT_ASCENDING);
+    }
+  }
+
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onscroll = function(e) {
+  this._pane._onscroll(e);
+}
+
+qx.Proto._onmousedown = function(e) {
+  this.getFocusRoot().setActiveChild(this.getPane());
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPLAYBLE HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._handleDisplayableCustom = function(vDisplayable, vParent, vHint)
+{
+  qx.ui.layout.VerticalBoxLayout.prototype._handleDisplayableCustom.call(this, vDisplayable, vParent, vHint);
+
+  if (vDisplayable)
+  {
+    this.updateLayout();
+    this.updateScrollBar();
+    this.updateContent();
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if (this._header)
+  {
+    this._header.dispose();
+    this._header = null;
+  }
+
+  if (this._frame)
+  {
+    this._frame.dispose();
+    this._frame = null;
+  }
+
+  if (this._pane)
+  {
+    this._pane.dispose();
+    this._pane = null;
+  }
+
+  if (this._scroll)
+  {
+    this._scroll.dispose();
+    this._scroll = null;
+  }
+
+  if (this._scrollContent)
+  {
+    this._scrollContent.dispose();
+    this._scrollContent = null;
+  }
+
+  if (this._resizeLine)
+  {
+    this._resizeLine.dispose();
+    this._resizeLine = null;
+  }
+
+  delete this._columns;
+  delete this._data;
+
+  this.removeEventListener("mousedown", this._onmousedown);
+
+  return qx.ui.layout.VerticalBoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ListViewPane.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ListViewPane.js
new file mode 100644 (file)
index 0000000..89ae3c6
--- /dev/null
@@ -0,0 +1,556 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_listview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.listview.ListViewPane", qx.ui.layout.GridLayout,
+function(vData, vColumns)
+{
+  qx.ui.layout.GridLayout.call(this);
+
+  // ************************************************************************
+  //   DATA
+  // ************************************************************************
+  // Add aliases for data tables
+  this._data = vData;
+  this._columns = vColumns;
+
+
+  // ************************************************************************
+  //   INITIALIZE MANAGER
+  // ************************************************************************
+  this._manager = new qx.manager.selection.VirtualSelectionManager(this);
+
+
+  // ************************************************************************
+  //   MOUSE EVENT LISTENER
+  // ************************************************************************
+  // Add handling for mouse wheel events
+  // Needed because the virtual scroll area does not fire browser
+  // understandable events above this pane.
+  this.addEventListener("mousewheel", this._onmousewheel);
+
+  this.addEventListener("mouseover", this._onmouseover);
+  this.addEventListener("mousedown", this._onmousedown);
+  this.addEventListener("mouseup", this._onmouseup);
+  this.addEventListener("click", this._onclick);
+  this.addEventListener("dblclick", this._ondblclick);
+
+
+  // ************************************************************************
+  //   KEY EVENT LISTENER
+  // ************************************************************************
+  this.addEventListener("keypress", this._onkeypress);
+});
+
+qx.OO.changeProperty({ name : "appearance",
+                       type : "string",
+                       defaultValue : "list-view-pane"
+                     });
+
+qx.Proto._rowHeight = 16;
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getView = function() {
+  return this.getParent().getParent();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UPDATER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._lastRowCount = 0;
+
+qx.Proto._updateLayout = function(vUpdate)
+{
+  // this.debug("InnerHeight: " + this._computeInnerHeight());
+  // this.debug("BoxHeight: " + this._computeBoxHeight());
+  // return
+
+  var vColumns = this._columns;
+  var vRowCount = Math.ceil(this.getInnerHeight() / this._rowHeight);
+  var vData = this._data;
+  var vCell;
+
+  // this.debug("Row-Count: " + this._lastRowCount + " => " + vRowCount);
+
+  // Sync cells: Add new ones and configure them
+  if (vRowCount > this._lastRowCount)
+  {
+    for (var i=this._lastRowCount, j=0; i<vRowCount; i++, j=0)
+    {
+      for (var vCol in vColumns)
+      {
+        vCell = new vColumns[vCol].contentClass;
+
+        this.add(vCell, j++, i);
+
+        if (vColumns[vCol].align) {
+          vCell.setStyleProperty("textAlign",
+                                 vColumns[vCol].align);
+        }
+      }
+    }
+  }
+
+  // Sync cells: Remove existing ones and dispose them
+  else if (this._lastRowCount > vRowCount)
+  {
+    var vChildren = this.getChildren();
+    var vChildrenLength = vChildren.length - 1;
+
+    for (var i=this._lastRowCount; i>vRowCount; i--)
+    {
+      for (var vCol in vColumns)
+      {
+        vCell = vChildren[vChildrenLength--];
+        this.remove(vCell);
+        vCell.dispose();
+      }
+    }
+  }
+
+  // Update row and column count
+  this.setRowCount(vRowCount);
+  if (!vUpdate) {
+    this.setColumnCount(qx.lang.Object.getLength(vColumns));
+  }
+
+  // Apply height to all rows
+  for (var i=0; i<vRowCount; i++) {
+    this.setRowHeight(i, this._rowHeight);
+  }
+
+  if (!vUpdate)
+  {
+    // Apply width and alignment to all columns
+    var vCount = 0;
+    for (var vCol in vColumns)
+    {
+      this.setColumnHorizontalAlignment(vCount, vColumns[vCol].align);
+      this.setColumnWidth(vCount, vColumns[vCol].width);
+
+      vCount++;
+    }
+  }
+
+  // Store last row count
+  this._lastRowCount = vRowCount;
+}
+
+qx.Proto._currentScrollTop = -1;
+
+qx.Proto._updateRendering = function(vForce)
+{
+  if (this._updatingRendering) {
+    return;
+  }
+
+  var vScrollTop = (this._initialLayoutDone
+                    ? this.getView().getScroll().getScrollTop()
+                    : 0);
+
+  this._updatingRendering = true;
+  this._currentScrollTop = vScrollTop;
+
+  for (var i=0; i<this._rowCount; i++) {
+    this._updateRow(i);
+  }
+
+  delete this._updatingRendering;
+}
+
+qx.Proto._updateRow = function(vRelativeRow)
+{
+  var vData = this._data;
+  var vRowOffset = Math.floor(this._currentScrollTop / this._rowHeight);
+
+  var vColumnCount = this.getColumnCount();
+  var vColumns = this._columns;
+
+  var vChildren = this.getVisibleChildren();
+  var vChild, vEntry, vCol;
+
+  var j=0;
+
+  for (vCol in vColumns)
+  {
+    vEntry = vData[vRowOffset+vRelativeRow];
+    vChild = vChildren[vColumnCount*vRelativeRow+(j++)];
+
+    if (vChild)
+    {
+      if (vEntry && vEntry._selected) {
+        vChild.addState("selected");
+      } else {
+        vChild.removeState("selected");
+      }
+      vChild.set(vEntry
+                 ? vEntry[vCol]
+                 : vColumns[vCol].empty || vColumns[vCol].contentClass.empty);
+    }
+  }
+}
+
+qx.Proto._onscroll = function(e) {
+  this._updateRendering();
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DIMENSION CACHE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._changeInnerHeight = function(vNew, vOld)
+{
+  this._updateLayout(true);
+  this._updateRendering(true);
+
+  return qx.ui.layout.GridLayout.prototype._changeInnerHeight.call(this,
+                                                                   vNew,
+                                                                   vOld);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MANAGER BINDING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getManager = function() {
+  return this._manager;
+}
+
+qx.Proto.getListViewTarget = function(e)
+{
+  var vEventTop = e.getPageY();
+  var vPaneTop = qx.dom.Location.getPageInnerTop(this.getElement());
+  var vItemNo = Math.floor(this._currentScrollTop / this._rowHeight) +
+                Math.floor((vEventTop - vPaneTop) / this._rowHeight);
+
+  return this._data[vItemNo];
+}
+
+qx.Proto.getSelectedItem = function() {
+  return this.getSelectedItems()[0];
+}
+
+qx.Proto.getSelectedItems = function() {
+  return this._manager.getSelectedItems();
+}
+
+qx.Proto.getData = function() {
+  return this._data;
+}
+
+// use static row height
+qx.Proto.getItemHeight = function(vItem) {
+  return this._rowHeight;
+}
+
+// use the full inner width of the pane
+qx.Proto.getItemWidth = function(vItem) {
+  return qx.dom.Dimension.getInnerWidth(this.getElement());
+}
+
+qx.Proto.getItemLeft = function(vItem) {
+  return 0;
+}
+
+qx.Proto.getItemTop = function(vItem) {
+  return this._data.indexOf(vItem) * this._rowHeight;
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MOUSE EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmousewheel = function(e)
+{
+  var vScroll = this.getView().getScroll();
+  vScroll.setScrollTop(vScroll.getScrollTop() - (e.getWheelDelta() * 20));
+}
+
+qx.Proto._onmouseover = function(e)
+{
+  var vTarget = this.getListViewTarget(e);
+  if (vTarget) {
+    this._manager.handleMouseOver(vTarget, e);
+  }
+}
+
+qx.Proto._onmousedown = function(e)
+{
+  var vTarget = this.getListViewTarget(e);
+  if (vTarget) {
+    this._manager.handleMouseDown(vTarget, e);
+  }
+}
+
+qx.Proto._onmouseup = function(e)
+{
+  var vTarget = this.getListViewTarget(e);
+  if (vTarget) {
+    this._manager.handleMouseUp(vTarget, e);
+  }
+}
+
+qx.Proto._onclick = function(e)
+{
+  var vTarget = this.getListViewTarget(e);
+  if (vTarget) {
+    this._manager.handleClick(vTarget, e);
+  }
+}
+
+qx.Proto._ondblclick = function(e)
+{
+  var vTarget = this.getListViewTarget(e);
+  if (vTarget) {
+    this._manager.handleDblClick(vTarget, e);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  KEY EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onkeypress = function(e)
+{
+  this._manager.handleKeyPress(e);
+  e.preventDefault();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MANAGER SELECTION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._updateSelectionState = function(vItem, vIsSelected)
+{
+  vItem._selected = vIsSelected;
+  this._updateItem(vItem);
+}
+
+qx.Proto._updateAnchorState = function(vItem, vIsAnchor)
+{
+  vItem._anchor = vIsAnchor;
+  this._updateItem(vItem);
+}
+
+qx.Proto._updateLeadState = function(vItem, vIsLead)
+{
+  vItem._lead = vIsLead;
+  this._updateItem(vItem);
+}
+
+qx.Proto.scrollItemIntoView = function(vItem, vAlignLeftTop)
+{
+  this.scrollItemIntoViewX(vItem, vAlignLeftTop);
+  this.scrollItemIntoViewY(vItem, vAlignLeftTop);
+}
+
+qx.Proto.scrollItemIntoViewX = function(vItem, vAlignLeft) {
+  // this.error("Not implemented in qx.ui.listview.ListViewPane!");
+}
+
+qx.Proto.scrollItemIntoViewY = function(vItem, vAlignTop)
+{
+  var vItems = this._data;
+  var vOffset = vItems.indexOf(vItem) * this._rowHeight;
+  var vHeight = this._rowHeight;
+
+  // normalize client height (we want that the item is fully visible)
+  var vParentHeight = (Math.floor(this.getClientHeight() / this._rowHeight) *
+                       this._rowHeight);
+  var vParentScrollTop = this._currentScrollTop;
+
+  var vNewScrollTop = null;
+
+  if (vAlignTop)
+  {
+    vNewScrollTop = vOffset;
+  }
+  else if (vAlignTop == false)
+  {
+    vNewScrollTop = vOffset + vHeight - vParentHeight;
+  }
+  else if (vHeight > vParentHeight || vOffset < vParentScrollTop)
+  {
+    vNewScrollTop = vOffset;
+  }
+  else if ((vOffset + vHeight) > (vParentScrollTop + vParentHeight))
+  {
+    vNewScrollTop = vOffset + vHeight - vParentHeight;
+  }
+
+  if (vNewScrollTop != null) {
+    this.getView().getScroll().setScrollTop(vNewScrollTop);
+  }
+}
+
+qx.Proto.setScrollTop = function(vScrollTop)
+{
+  this.getView().getScroll().setScrollTop(vScrollTop);
+  this._updateRendering();
+}
+
+qx.Proto.getScrollTop = function() {
+  return this._currentScrollTop;
+}
+
+qx.Proto.setScrollLeft = function() {
+  this.error("Not implemented in qx.ui.listview.ListViewPane!");
+}
+
+qx.Proto.getScrollLeft = function() {
+  return 0;
+}
+
+qx.Proto.isItemVisible = function(vItem)
+{
+  var vIndex = this._data.indexOf(vItem);
+  var vRowStart = Math.floor(this._currentScrollTop / this._rowHeight);
+  var vRowLength = Math.ceil(this.getClientHeight() / this._rowHeight);
+
+  return vIndex >= vRowStart && vIndex <= (vRowStart + vRowLength);
+}
+
+qx.Proto.getRelativeItemPosition = function(vItem)
+{
+  var vIndex = this._data.indexOf(vItem);
+  var vRowStart = Math.floor(this._currentScrollTop / this._rowHeight);
+
+  return vIndex - vRowStart;
+}
+
+qx.Proto._updateItem = function(vItem)
+{
+  var vIndex = this._data.indexOf(vItem);
+  var vRowStart = Math.floor(this._currentScrollTop / this._rowHeight);
+  var vRowLength = Math.ceil(this.getClientHeight() / this._rowHeight);
+
+  if (vIndex < vRowStart || vIndex > (vRowStart + vRowLength)) {
+    return;
+  }
+
+  this._updateRow(vIndex - vRowStart);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+
+  // ************************************************************************
+  //   MOUSE EVENT LISTENER
+  // ************************************************************************
+  this.removeEventListener("mousewheel", this._onmousewheel);
+  this.removeEventListener("mouseover", this._onmouseover);
+  this.removeEventListener("mousedown", this._onmousedown);
+  this.removeEventListener("mouseup", this._onmouseup);
+  this.removeEventListener("click", this._onclick);
+  this.removeEventListener("dblclick", this._ondblclick);
+
+
+  // ************************************************************************
+  //   KEY EVENT LISTENER
+  // ************************************************************************
+  this.removeEventListener("keypress", this._onkeypress);
+
+
+  // ************************************************************************
+  //   DATA
+  // ************************************************************************
+  delete this._data;
+  delete this._columns;
+
+
+  // ************************************************************************
+  //   MANAGER
+  // ************************************************************************
+  if (this._manager)
+  {
+    this._manager.dispose();
+    this._manager = null;
+  }
+
+  return qx.ui.layout.GridLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Button.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Button.js
new file mode 100644 (file)
index 0000000..569419b
--- /dev/null
@@ -0,0 +1,354 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_menu)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.menu.Button", qx.ui.layout.HorizontalBoxLayout,
+function(vLabel, vIcon, vCommand, vMenu)
+{
+  qx.ui.layout.HorizontalBoxLayout.call(this);
+
+
+  // ************************************************************************
+  //   LAYOUT
+  // ************************************************************************
+
+  var io = this._iconObject = new qx.ui.basic.Image;
+  io.setWidth(16);
+  io.setAnonymous(true);
+
+  var lo = this._labelObject = new qx.ui.basic.Label;
+  lo.setAnonymous(true);
+  lo.setSelectable(false);
+
+  var so = this._shortcutObject = new qx.ui.basic.Label;
+  so.setAnonymous(true);
+  so.setSelectable(false);
+
+  var ao = this._arrowObject = new qx.ui.basic.Image("widget/arrows/next.gif");
+  ao.setAnonymous(true);
+
+
+  // ************************************************************************
+  //   INIT
+  // ************************************************************************
+
+  if (qx.util.Validation.isValidString(vLabel)) {
+    this.setLabel(vLabel);
+  }
+
+  if (qx.util.Validation.isValidString(vIcon)) {
+    this.setIcon(vIcon);
+  }
+
+  if (qx.util.Validation.isValid(vCommand)) {
+    this.setCommand(vCommand);
+  }
+
+  if (qx.util.Validation.isValid(vMenu)) {
+    this.setMenu(vMenu);
+  }
+
+
+  // ************************************************************************
+  //   EVENTS
+  // ************************************************************************
+
+  this.addEventListener("mouseup", this._onmouseup);
+});
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "menu-button" });
+
+qx.OO.addProperty({ name : "icon", type : "string" });
+qx.OO.addProperty({ name : "label", type : "string" });
+qx.OO.addProperty({ name : "menu", type : "object" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._hasIcon = false;
+qx.Proto._hasLabel = false;
+qx.Proto._hasShortcut = false;
+qx.Proto._hasMenu = false;
+
+qx.Proto.hasIcon = function() {
+  return this._hasIcon;
+}
+
+qx.Proto.hasLabel = function() {
+  return this._hasLabel;
+}
+
+qx.Proto.hasShortcut = function() {
+  return this._hasShortcut;
+}
+
+qx.Proto.hasMenu = function() {
+  return this._hasMenu;
+}
+
+qx.Proto.getIconObject = function() {
+  return this._iconObject;
+}
+
+qx.Proto.getLabelObject = function() {
+  return this._labelObject;
+}
+
+qx.Proto.getShortcutObject = function() {
+  return this._shortcutObject;
+}
+
+qx.Proto.getArrowObject = function() {
+  return this._arrowObject;
+}
+
+qx.Proto.getParentMenu = function()
+{
+  var vParent = this.getParent();
+  if (vParent)
+  {
+    vParent = vParent.getParent();
+
+    if (vParent && vParent instanceof qx.ui.menu.Menu) {
+      return vParent;
+    }
+  }
+
+  return null;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INIT LAYOUT IMPL
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This creates an new instance of the layout impl this widget uses
+*/
+qx.Proto._createLayoutImpl = function() {
+  return new qx.renderer.layout.MenuButtonLayoutImpl(this);
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
+{
+  if (this._iconObject) {
+    this._iconObject.setEnabled(propValue);
+  }
+
+  if (this._labelObject) {
+    this._labelObject.setEnabled(propValue);
+  }
+
+  if (this._shortcutObject) {
+     this._shortcutObject.setEnabled(propValue);
+  }
+
+  return qx.ui.layout.HorizontalBoxLayout.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
+}
+
+qx.Proto._modifyIcon = function(propValue, propOldValue, propData)
+{
+  this._iconObject.setSource(propValue);
+
+  if (qx.util.Validation.isValidString(propValue))
+  {
+    this._hasIcon = true;
+
+    if (qx.util.Validation.isInvalidString(propOldValue)) {
+      this.addAtBegin(this._iconObject);
+    }
+  }
+  else
+  {
+    this._hasIcon = false;
+    this.remove(this._iconObject);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyLabel = function(propValue, propOldValue, propData)
+{
+  this._labelObject.setHtml(propValue);
+
+  if (qx.util.Validation.isValidString(propValue))
+  {
+    this._hasLabel = true;
+
+    if (qx.util.Validation.isInvalidString(propOldValue)) {
+      this.addAt(this._labelObject, this.getFirstChild() == this._iconObject ? 1 : 0);
+    }
+  }
+  else
+  {
+    this._hasLabel = false;
+    this.remove(this._labelObject);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyCommand = function(propValue, propOldValue, propData)
+{
+  var vHtml = propValue ? propValue.getShortcut() : "";
+
+  this._shortcutObject.setHtml(vHtml);
+
+  if (qx.util.Validation.isValidString(vHtml))
+  {
+    this._hasShortcut = true;
+
+    var vOldHtml = propOldValue ? propOldValue.getShortcut() : "";
+
+    if (qx.util.Validation.isInvalidString(vOldHtml))
+    {
+      if (this.getLastChild() == this._arrowObject)
+      {
+        this.addBefore(this._shortcutObject, this._arrowObject);
+      }
+      else
+      {
+        this.addAtEnd(this._shortcutObject);
+      }
+    }
+  }
+  else
+  {
+    this._hasShortcut = false;
+    this.remove(this._shortcutObject);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyMenu = function(propValue, propOldValue, propData)
+{
+  if (qx.util.Validation.isValidObject(propValue))
+  {
+    this._hasMenu = true;
+
+    if (qx.util.Validation.isInvalidObject(propOldValue)) {
+      this.addAtEnd(this._arrowObject);
+    }
+  }
+  else
+  {
+    this._hasMenu = false;
+    this.remove(this._arrowObject);
+  }
+
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENTS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmouseup = function(e) {
+  this.execute();
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  // Dispose children
+  if (this._iconObject)
+  {
+    this._iconObject.dispose();
+    this._iconObject = null;
+  }
+
+  if (this._labelObject)
+  {
+    this._labelObject.dispose();
+    this._labelObject = null;
+  }
+
+  if (this._shortcutObject)
+  {
+    this._shortcutObject.dispose();
+    this._shortcutObject = null;
+  }
+
+  if (this._arrowObject)
+  {
+    this._arrowObject.dispose();
+    this._arrowObject = null;
+  }
+
+  // Remove event listeners
+  this.removeEventListener("mouseup", this._onmouseup);
+
+  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/CheckBox.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/CheckBox.js
new file mode 100644 (file)
index 0000000..a6380f8
--- /dev/null
@@ -0,0 +1,85 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_menu)
+
+************************************************************************ */
+
+/*!
+  A checkbox for the menu system.
+*/
+qx.OO.defineClass("qx.ui.menu.CheckBox", qx.ui.menu.Button,
+function(vLabel, vCommand, vChecked)
+{
+  qx.ui.menu.Button.call(this, vLabel, "static/image/blank.gif", vCommand);
+
+  if (qx.util.Validation.isValidBoolean(vChecked)) {
+    this.setChecked(vChecked);
+  }
+
+  qx.manager.object.ImageManager.getInstance().preload("widget/menu/checkbox.gif");
+});
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "menu-check-box" });
+qx.OO.addProperty({ name : "name", type : "string" });
+qx.OO.addProperty({ name : "value", type : "string" });
+qx.OO.addProperty({ name : "checked", type : "boolean", defaultValue : false, getAlias : "isChecked" });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyChecked = function(propValue, propOldValue, propData)
+{
+  propValue ? this.addState("checked") : this.removeState("checked");
+  this.getIconObject().setSource(propValue ? "widget/menu/checkbox.gif" : "static/image/blank.gif");
+
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EXECUTE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.execute = function()
+{
+  this.setChecked(!this.getChecked());
+  qx.ui.menu.Button.prototype.execute.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Layout.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Layout.js
new file mode 100644 (file)
index 0000000..3f06492
--- /dev/null
@@ -0,0 +1,56 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_menu)
+
+************************************************************************ */
+
+/*!
+  A small helper class to create a special layout handler for qx.ui.menu.Menus
+*/
+qx.OO.defineClass("qx.ui.menu.Layout", qx.ui.layout.VerticalBoxLayout,
+function()
+{
+  qx.ui.layout.VerticalBoxLayout.call(this);
+
+  this.setAnonymous(true);
+});
+
+
+/*!
+  Appearance of the widget
+*/
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "menu-layout" });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INIT LAYOUT IMPL
+---------------------------------------------------------------------------
+*/
+
+/*!
+  This creates an new instance of the layout impl this widget uses
+*/
+qx.Proto._createLayoutImpl = function() {
+  return new qx.renderer.layout.MenuLayoutImpl(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Menu.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Menu.js
new file mode 100644 (file)
index 0000000..7006c95
--- /dev/null
@@ -0,0 +1,907 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_menu)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.menu.Menu", qx.ui.popup.Popup,
+function()
+{
+  qx.ui.popup.Popup.call(this);
+
+
+  // ************************************************************************
+  //   LAYOUT
+  // ************************************************************************
+
+  var l = this._layout = new qx.ui.menu.Layout;
+  this.add(l);
+
+
+  // ************************************************************************
+  //   TIMER
+  // ************************************************************************
+  this._openTimer = new qx.client.Timer(this.getOpenInterval());
+  this._openTimer.addEventListener("interval", this._onopentimer, this);
+
+  this._closeTimer = new qx.client.Timer(this.getCloseInterval());
+  this._closeTimer.addEventListener("interval", this._onclosetimer, this);
+
+
+  // ************************************************************************
+  //   EVENTS
+  // ************************************************************************
+
+  this.addEventListener("mouseover", this._onmouseover);
+  this.addEventListener("mousemove", this._onmouseover);
+  this.addEventListener("mouseout", this._onmouseout);
+
+  this.addEventListener("keydown", this._onkeydown);
+  this.addEventListener("keypress", this._onkeypress);
+
+
+  // ************************************************************************
+  //   REMAPPING
+  // ************************************************************************
+
+  this.remapChildrenHandlingTo(this._layout);
+});
+
+qx.Proto._remappingChildTable = [ "add", "remove", "addAt", "addAtBegin", "addAtEnd", "removeAt", "addBefore", "addAfter", "removeAll", "getFirstChild", "getFirstActiveChild", "getLastChild", "getLastActiveChild" ];
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "menu" });
+
+qx.OO.addProperty({ name : "iconContentGap", type : "number", defaultValue : 4 });
+qx.OO.addProperty({ name : "labelShortcutGap", type : "number", defaultValue : 10 });
+qx.OO.addProperty({ name : "contentArrowGap", type : "number", defaultValue : 8 });
+qx.OO.addProperty({ name : "contentNonIconPadding", type : "number", defaultValue : 20 });
+qx.OO.addProperty({ name : "contentNonArrowPadding", type : "number", defaultValue : 8 });
+
+qx.OO.addProperty({ name : "hoverItem", type : "object" });
+qx.OO.addProperty({ name : "openItem", type : "object" });
+qx.OO.addProperty({ name : "opener", type : "object" });
+qx.OO.addProperty({ name : "parentMenu", type : "object" });
+
+qx.OO.addProperty({ name : "fastReopen", type : "boolean", defaultValue : false });
+qx.OO.addProperty({ name : "openInterval", type : "number", defaultValue : 250 });
+qx.OO.addProperty({ name : "closeInterval", type : "number", defaultValue : 250 });
+
+qx.OO.addProperty({ name : "subMenuHorizontalOffset", type : "number", defaultValue : -3 });
+qx.OO.addProperty({ name : "subMenuVerticalOffset", type : "number", defaultValue : -2 });
+
+qx.OO.addProperty({ name : "indentShortcuts", type : "boolean", defaultValue : true });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getLayout = function() {
+  return this._layout;
+}
+
+qx.Proto.isSubButton = function(vButton)
+{
+  if (vButton.getParent() === this._layout) {
+    return true;
+  }
+
+  for (var a=this._layout.getChildren(), l=a.length, i=0; i<l; i++)
+  {
+    if (a[i].getMenu && a[i].getMenu() && a[i].getMenu().isSubButton(vButton)) {
+      return true;
+    }
+  }
+
+  return false;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPEAR/DISAPPEAR
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._beforeAppear = function()
+{
+  // Intentionally bypass superclass and call super.super._beforeAppear
+  qx.ui.layout.CanvasLayout.prototype._beforeAppear.call(this);
+
+  // register to menu manager as active widget
+  qx.manager.object.MenuManager.getInstance().add(this);
+
+  // zIndex handling
+  this.bringToFront();
+
+  //setup as global active widget
+  this._makeActive();
+}
+
+qx.Proto._beforeDisappear = function()
+{
+  // Intentionally bypass superclass and call super.super._beforeDisappear
+  qx.ui.layout.CanvasLayout.prototype._beforeDisappear.call(this);
+
+  // deregister as opened from qx.manager.object.MenuManager
+  qx.manager.object.MenuManager.getInstance().remove(this);
+
+  // reset global active widget
+  this._makeInactive();
+
+  // reset properties on close
+  this.setHoverItem(null);
+  this.setOpenItem(null);
+
+  // be sure that the opener button gets the correct state
+  var vOpener = this.getOpener();
+  if (vOpener) {
+    vOpener.removeState("pressed");
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyHoverItem = function(propValue, propOldValue, propData)
+{
+  if (propOldValue) {
+    propOldValue.removeState("over");
+  }
+
+  if (propValue) {
+    propValue.addState("over");
+  }
+
+  return true;
+}
+
+qx.Proto._modifyOpenItem = function(propValue, propOldValue, propData)
+{
+  var vMakeActive = false;
+
+  if (propOldValue)
+  {
+    var vOldSub = propOldValue.getMenu();
+
+    if (vOldSub)
+    {
+      vOldSub.setParentMenu(null);
+      vOldSub.setOpener(null);
+      vOldSub.hide();
+    }
+  }
+
+  if (propValue)
+  {
+    var vSub = propValue.getMenu();
+
+    if (vSub)
+    {
+      vSub.setOpener(propValue);
+      vSub.setParentMenu(this);
+
+      var pl = propValue.getElement();
+      var el = this.getElement();
+
+      vSub.setTop(qx.dom.Location.getPageBoxTop(pl) + this.getSubMenuVerticalOffset());
+      vSub.setLeft(qx.dom.Location.getPageBoxLeft(el) + qx.dom.Dimension.getBoxWidth(el) + this.getSubMenuHorizontalOffset());
+
+      vSub.show();
+
+      qx.ui.core.Widget.flushGlobalQueues();
+    }
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LOCATIONS AND DIMENSIONS OF CHILDRENS CHILDREN:
+  CREATE VARIABLES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addCachedProperty({ name : "maxIconWidth" });
+qx.OO.addCachedProperty({ name : "maxLabelWidth" });
+qx.OO.addCachedProperty({ name : "maxLabelWidthIncShortcut" });
+qx.OO.addCachedProperty({ name : "maxShortcutWidth" });
+qx.OO.addCachedProperty({ name : "maxArrowWidth" });
+qx.OO.addCachedProperty({ name : "maxContentWidth" });
+
+qx.OO.addCachedProperty({ name : "iconPosition", defaultValue : 0 });
+qx.OO.addCachedProperty({ name : "labelPosition" });
+qx.OO.addCachedProperty({ name : "shortcutPosition" });
+qx.OO.addCachedProperty({ name : "arrowPosition" });
+
+qx.OO.addCachedProperty({ name : "menuButtonNeededWidth" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LOCATIONS AND DIMENSIONS OF CHILDRENS CHILDREN:
+  MAX WIDTH COMPUTERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._computeMaxIconWidth = function()
+{
+  var ch=this.getLayout().getChildren(), chl=ch.length, chc, m=0;
+
+  for (var i=0; i<chl; i++)
+  {
+    chc = ch[i];
+
+    if (chc.hasIcon()) {
+      // Make static as long as not supported well
+      // m = Math.max(m, chc.getIconObject().getPreferredBoxWidth());
+      m = Math.max(m, 16);
+    }
+  }
+
+  return m;
+}
+
+qx.Proto._computeMaxLabelWidth = function()
+{
+  var ch=this.getLayout().getChildren(), chl=ch.length, chc, m=0;
+
+  for (var i=0; i<chl; i++)
+  {
+    chc = ch[i];
+
+    if (chc.hasLabel()) {
+      m = Math.max(m, chc.getLabelObject().getPreferredBoxWidth());
+    }
+  }
+
+  return m;
+}
+
+qx.Proto._computeMaxLabelWidthIncShortcut = function()
+{
+  var ch=this.getLayout().getChildren(), chl=ch.length, chc, m=0;
+
+  for (var i=0; i<chl; i++)
+  {
+    chc = ch[i];
+
+    if (chc.hasLabel() && chc.hasShortcut()) {
+      m = Math.max(m, chc.getLabelObject().getPreferredBoxWidth());
+    }
+  }
+
+  return m;
+}
+
+qx.Proto._computeMaxShortcutWidth = function()
+{
+  var ch=this.getLayout().getChildren(), chl=ch.length, chc, m=0;
+
+  for (var i=0; i<chl; i++)
+  {
+    chc = ch[i];
+
+    if (chc.hasShortcut()) {
+      m = Math.max(m, chc.getShortcutObject().getPreferredBoxWidth());
+    }
+  }
+
+  return m;
+}
+
+qx.Proto._computeMaxArrowWidth = function()
+{
+  var ch=this.getLayout().getChildren(), chl=ch.length, chc, m=0;
+
+  for (var i=0; i<chl; i++)
+  {
+    chc = ch[i];
+
+    if (chc.hasMenu()) {
+      // Make static as long as not supported well
+      // m = Math.max(m, chc.getArrowObject().getPreferredBoxWidth());
+      m = Math.max(m, 4);
+    }
+  }
+
+  return m;
+}
+
+qx.Proto._computeMaxContentWidth = function()
+{
+  var vSum;
+
+  var lw = this.getMaxLabelWidth();
+  var sw = this.getMaxShortcutWidth();
+
+  if (this.getIndentShortcuts())
+  {
+    var vTemp = sw+this.getMaxLabelWidthIncShortcut();
+
+    if (sw > 0) {
+      vTemp += this.getLabelShortcutGap();
+    }
+
+    vSum = Math.max(lw, vTemp);
+  }
+  else
+  {
+    vSum = lw + sw;
+
+    if (lw > 0 && sw > 0) {
+      vSum += this.getLabelShortcutGap();
+    }
+  }
+
+  return vSum;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LOCATIONS AND DIMENSIONS OF CHILDRENS CHILDREN:
+  POSITION COMPUTERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._computeIconPosition = function() {
+  return 0;
+}
+
+qx.Proto._computeLabelPosition = function()
+{
+  var v = this.getMaxIconWidth();
+  return v > 0 ? v + this.getIconContentGap() : this.getContentNonIconPadding();
+}
+
+qx.Proto._computeShortcutPosition = function() {
+  return this.getLabelPosition() + this.getMaxContentWidth() - this.getMaxShortcutWidth();
+}
+
+qx.Proto._computeArrowPosition = function()
+{
+  var v = this.getMaxContentWidth();
+  return this.getLabelPosition() + (v > 0 ? v + this.getContentArrowGap() : v);
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LOCATIONS AND DIMENSIONS OF CHILDRENS CHILDREN:
+  INVALIDATION OF CACHE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._invalidateMaxIconWidth = function()
+{
+  this._cachedMaxIconWidth = null;
+
+  this._invalidateLabelPosition();
+  this._invalidateMenuButtonNeededWidth();
+}
+
+qx.Proto._invalidateMaxLabelWidth = function()
+{
+  this._cachedMaxLabelWidth = null;
+
+  this._invalidateShortcutPosition();
+  this._invalidateMaxLabelWidthIncShortcut();
+  this._invalidateMaxContentWidth();
+  this._invalidateMenuButtonNeededWidth();
+}
+
+qx.Proto._invalidateMaxShortcutWidth = function()
+{
+  this._cachedMaxShortcutWidth = null;
+
+  this._invalidateArrowPosition();
+  this._invalidateMaxContentWidth();
+  this._invalidateMenuButtonNeededWidth();
+}
+
+qx.Proto._invalidateMaxLabelWidth = function()
+{
+  this._cachedMaxArrowWidth = null;
+  this._invalidateMenuButtonNeededWidth();
+}
+
+qx.Proto._invalidateLabelPosition = function()
+{
+  this._cachedLabelPosition = null;
+  this._invalidateShortcutPosition();
+}
+
+qx.Proto._invalidateShortcutPosition = function()
+{
+  this._cachedShortcutPosition = null;
+  this._invalidateArrowPosition();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  LOCATIONS AND DIMENSIONS OF CHILDRENS CHILDREN:
+  NEEDED WIDTH COMPUTERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._computeMenuButtonNeededWidth = function()
+{
+  var vSum = 0;
+
+  var vMaxIcon = this.getMaxIconWidth();
+  var vMaxContent = this.getMaxContentWidth();
+  var vMaxArrow = this.getMaxArrowWidth();
+
+  if (vMaxIcon > 0)
+  {
+    vSum += vMaxIcon;
+  }
+  else
+  {
+    vSum += this.getContentNonIconPadding();
+  }
+
+  if (vMaxContent > 0)
+  {
+    if (vMaxIcon > 0) {
+      vSum += this.getIconContentGap();
+    }
+
+    vSum += vMaxContent;
+  }
+
+  if (vMaxArrow > 0)
+  {
+    if (vMaxIcon > 0 || vMaxContent > 0) {
+      vSum += this.getContentArrowGap();
+    }
+
+    vSum += vMaxArrow;
+  }
+  else
+  {
+    vSum += this.getContentNonArrowPadding();
+  }
+
+  return vSum;
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT-HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmouseover = function(e)
+{
+  /* ------------------------------
+    HANDLE PARENT MENU
+  ------------------------------ */
+
+  // look if we have a parent menu
+  // if so we need to stop the close event started there
+  var vParent = this.getParentMenu();
+
+  if (vParent)
+  {
+    // stop the close event
+    vParent._closeTimer.stop();
+
+    // look if we have a opener, too (normally this should be)
+    var vOpener = this.getOpener();
+
+    // then setup it to look hovered
+    if (vOpener) {
+      vParent.setHoverItem(vOpener);
+    }
+  }
+
+
+
+
+  /* ------------------------------
+    HANDLING FOR HOVERING MYSELF
+  ------------------------------ */
+
+  var t = e.getTarget();
+
+  if (t == this)
+  {
+    this._openTimer.stop();
+    this._closeTimer.start();
+
+    this.setHoverItem(null);
+
+    return;
+  }
+
+
+
+
+  /* ------------------------------
+    HANDLING FOR HOVERING ITEMS
+  ------------------------------ */
+
+  var vOpen = this.getOpenItem();
+
+  // if we have a open item
+  if (vOpen)
+  {
+    this.setHoverItem(t);
+    this._openTimer.stop();
+
+    // if the new one has also a sub menu
+    if (t.hasMenu())
+    {
+      // check if we should use fast reopen (this will open the menu instantly)
+      if (this.getFastReopen())
+      {
+        this.setOpenItem(t);
+        this._closeTimer.stop();
+      }
+
+      // otherwise we use the default timer interval
+      else
+      {
+        this._openTimer.start();
+      }
+    }
+
+    // otherwise start the close timer for the old menu
+    else
+    {
+      this._closeTimer.start();
+    }
+  }
+
+  // otherwise handle the mouseover and restart the timer
+  else
+  {
+    this.setHoverItem(t);
+
+    // stop timer for the last open request
+    this._openTimer.stop();
+
+    // and restart it if the new one has a menu, too
+    if (t.hasMenu()) {
+      this._openTimer.start();
+    }
+  }
+}
+
+qx.Proto._onmouseout = function(e)
+{
+  // stop the open timer (for any previous open requests)
+  this._openTimer.stop();
+
+  // start the close timer to hide a menu if needed
+  var t = e.getTarget();
+  if (t != this && t.hasMenu()) {
+    this._closeTimer.start();
+  }
+
+  // reset the current hover item
+  this.setHoverItem(null);
+}
+
+qx.Proto._onopentimer = function(e)
+{
+  // stop the open timer (we need only the first interval)
+  this._openTimer.stop();
+
+  // if we have a item which is currently hovered, open it
+  var vHover = this.getHoverItem();
+  if (vHover && vHover.hasMenu()) {
+    this.setOpenItem(vHover);
+  }
+}
+
+qx.Proto._onclosetimer = function(e)
+{
+  // stop the close timer (we need only the first interval)
+  this._closeTimer.stop();
+
+  // reset the current opened item
+  this.setOpenItem(null);
+}
+
+/*!
+  Wraps key events to target functions
+*/
+qx.Proto._onkeydown = function(e)
+{
+  if (e.getKeyIdentifier() == "Enter") {
+    this._onkeydown_enter(e);
+  }
+  e.preventDefault();
+};
+
+
+qx.Proto._onkeypress = function(e)
+{
+  switch(e.getKeyIdentifier())
+  {
+    case "Up":
+      this._onkeypress_up(e);
+      break;
+
+    case "Down":
+      this._onkeypress_down(e);
+      break;
+
+    case "Left":
+      this._onkeypress_left(e);
+      break;
+
+    case "Right":
+      this._onkeypress_right(e);
+      break;
+
+    default:
+      return;
+  }
+
+  // Stop all matching events
+  e.preventDefault();
+};
+
+
+qx.Proto._onkeypress_up = function(e)
+{
+  var vHover = this.getHoverItem();
+  var vPrev = vHover ? vHover.isFirstChild() ? this.getLastActiveChild() : vHover.getPreviousActiveSibling([qx.ui.menu.Separator]) : this.getLastActiveChild();
+
+  this.setHoverItem(vPrev);
+};
+
+qx.Proto._onkeypress_down = function(e)
+{
+  var vHover = this.getHoverItem();
+  var vNext = vHover ? vHover.isLastChild() ? this.getFirstActiveChild() : vHover.getNextActiveSibling([qx.ui.menu.Separator]) : this.getFirstActiveChild();
+
+  this.setHoverItem(vNext);
+};
+
+
+qx.Proto._onkeypress_left = function(e)
+{
+  var vOpener = this.getOpener();
+
+  // Jump to the "parent" qx.ui.menu.Menu
+  if (vOpener instanceof qx.ui.menu.Button)
+  {
+    var vOpenerParent = this.getOpener().getParentMenu();
+
+    vOpenerParent.setOpenItem(null);
+    vOpenerParent.setHoverItem(vOpener);
+
+    vOpenerParent._makeActive();
+  }
+
+  // Jump to the previous ToolBarMenuButton
+  else if (vOpener instanceof qx.ui.toolbar.MenuButton)
+  {
+    var vToolBar = vOpener.getParentToolBar();
+
+    // change active widget to new button
+    this.getFocusRoot().setActiveChild(vToolBar);
+
+    // execute toolbars keydown implementation
+    vToolBar._onkeypress(e);
+  }
+};
+
+
+qx.Proto._onkeypress_right = function(e)
+{
+  var vHover = this.getHoverItem();
+
+  if (vHover)
+  {
+    var vMenu = vHover.getMenu();
+
+    if (vMenu)
+    {
+      this.setOpenItem(vHover);
+
+      // mark first item in new submenu
+      vMenu.setHoverItem(vMenu.getFirstActiveChild());
+
+      return;
+    }
+  }
+  else if (!this.getOpenItem())
+  {
+    var vFirst = this.getLayout().getFirstActiveChild();
+
+    if (vFirst) {
+      vFirst.hasMenu() ? this.setOpenItem(vFirst) : this.setHoverItem(vFirst);
+    }
+  }
+
+  // Jump to the next ToolBarMenuButton
+  var vOpener = this.getOpener();
+
+  if (vOpener instanceof qx.ui.toolbar.MenuButton)
+  {
+    var vToolBar = vOpener.getParentToolBar();
+
+    // change active widget to new button
+    this.getFocusRoot().setActiveChild(vToolBar);
+
+    // execute toolbars keydown implementation
+    vToolBar._onkeypress(e);
+  }
+  else if (vOpener instanceof qx.ui.menu.Button && vHover)
+  {
+    // search for menubar if existing
+    // menu -> button -> menu -> button -> menu -> menubarbutton -> menubar
+
+    var vOpenerParent = vOpener.getParentMenu();
+
+    while (vOpenerParent && vOpenerParent instanceof qx.ui.menu.Menu)
+    {
+      vOpener = vOpenerParent.getOpener();
+
+      if (vOpener instanceof qx.ui.menu.Button)
+      {
+        vOpenerParent = vOpener.getParentMenu();
+      }
+      else
+      {
+        if (vOpener) {
+          vOpenerParent = vOpener.getParent();
+        }
+
+        break;
+      }
+    }
+
+    if (vOpenerParent instanceof qx.ui.toolbar.Part) {
+      vOpenerParent = vOpenerParent.getParent();
+    }
+
+    if (vOpenerParent instanceof qx.ui.toolbar.ToolBar)
+    {
+      // jump to next menubarbutton
+      this.getFocusRoot().setActiveChild(vOpenerParent);
+      vOpenerParent._onkeypress(e);
+    }
+  }
+}
+
+qx.Proto._onkeydown_enter = function(e)
+{
+  var vHover = this.getHoverItem();
+  if (vHover) {
+    vHover.execute();
+  }
+
+  qx.manager.object.MenuManager.getInstance().update();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if (this._layout)
+  {
+    this._layout.dispose();
+    this._layout = null;
+  }
+
+  if (this._openTimer)
+  {
+    this._openTimer.dispose();
+    this._openTimer = null;
+  }
+
+  if (this._closeTimer)
+  {
+    this._closeTimer.dispose();
+    this._closeTimer = null;
+  }
+
+  // Remove event listeners
+  this.removeEventListener("mouseover", this._onmouseover);
+  this.removeEventListener("mousemove", this._onmouseover);
+  this.removeEventListener("mouseout", this._onmouseout);
+
+  this.removeEventListener("keydown", this._onkeydown);
+  this.removeEventListener("keypress", this._onkeypress);
+
+
+  return qx.ui.popup.Popup.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/RadioButton.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/RadioButton.js
new file mode 100644 (file)
index 0000000..b8ff7f9
--- /dev/null
@@ -0,0 +1,118 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_menu)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.menu.RadioButton", qx.ui.menu.CheckBox,
+function(vLabel, vCommand, vChecked)
+{
+  qx.ui.menu.CheckBox.call(this, vLabel, vCommand, vChecked);
+
+  qx.manager.object.ImageManager.getInstance().preload("widget/menu/radiobutton.gif");
+});
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "menu-radio-button" });
+
+/*!
+  The assigned qx.manager.selection.RadioManager which handles the switching between registered buttons
+*/
+qx.OO.addProperty({ name : "manager", type : "object", instance : "qx.manager.selection.RadioManager", allowNull : true });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyChecked = function(propValue, propOldValue, propData)
+{
+  var vManager = this.getManager();
+
+  if (vManager)
+  {
+    if (propValue)
+    {
+      vManager.setSelected(this);
+    }
+    else if (vManager.getSelected() == this)
+    {
+      vManager.setSelected(null);
+    }
+  }
+
+  propValue ? this.addState("checked") : this.removeState("checked");
+  this.getIconObject().setSource(propValue ? "widget/menu/radiobutton.gif" : "static/image/blank.gif");
+
+  return true;
+}
+
+qx.Proto._modifyManager = function(propValue, propOldValue, propData)
+{
+  if (propOldValue) {
+    propOldValue.remove(this);
+  }
+
+  if (propValue) {
+    propValue.add(this);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyName = function(propValue, propOldValue, propData)
+{
+  if (this.getManager()) {
+    this.getManager().setName(propValue);
+  }
+
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EXECUTE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.execute = function()
+{
+  this.setChecked(true);
+
+  // Intentionally bypass superclass and call super.super.execute
+  qx.ui.menu.Button.prototype.execute.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Separator.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Separator.js
new file mode 100644 (file)
index 0000000..a7bce89
--- /dev/null
@@ -0,0 +1,76 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_menu)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.menu.Separator", qx.ui.layout.CanvasLayout,
+function()
+{
+  qx.ui.layout.CanvasLayout.call(this);
+
+  // Fix IE Styling Issues
+  this.setStyleProperty("fontSize", "0");
+  this.setStyleProperty("lineHeight", "0");
+
+  // ************************************************************************
+  //   LINE
+  // ************************************************************************
+
+  this._line = new qx.ui.basic.Terminator;
+  this._line.setAnonymous(true);
+  this._line.setAppearance("menu-separator-line");
+  this.add(this._line);
+
+
+  // ************************************************************************
+  //   EVENTS
+  // ************************************************************************
+
+  // needed to stop the event, and keep the menu showing
+  this.addEventListener("mousedown", this._onmousedown);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "menu-separator" });
+
+qx.Proto.hasIcon = qx.util.Return.returnFalse;
+qx.Proto.hasLabel = qx.util.Return.returnFalse;
+qx.Proto.hasShortcut = qx.util.Return.returnFalse;
+qx.Proto.hasMenu = qx.util.Return.returnFalse;
+
+qx.Proto._onmousedown = function(e) {
+  e.stopPropagation();
+}
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if (this._line)
+  {
+    this._line.dispose();
+    this._line = null;
+  }
+
+  return qx.ui.layout.CanvasLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menubar/Button.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menubar/Button.js
new file mode 100644 (file)
index 0000000..9d13967
--- /dev/null
@@ -0,0 +1,28 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_menu)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.menubar.Button", qx.ui.toolbar.MenuButton,
+function(vText, vMenu, vIcon, vIconWidth, vIconHeight, vFlash) {
+  qx.ui.toolbar.MenuButton.call(this, vText, vMenu, vIcon, vIconWidth, vIconHeight, vFlash);
+});
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menubar/MenuBar.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menubar/MenuBar.js
new file mode 100644 (file)
index 0000000..858f1fe
--- /dev/null
@@ -0,0 +1,28 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_menu)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.menubar.MenuBar", qx.ui.toolbar.ToolBar,
+function() {
+  qx.ui.toolbar.ToolBar.call(this);
+});
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractBar.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractBar.js
new file mode 100755 (executable)
index 0000000..1c10e56
--- /dev/null
@@ -0,0 +1,129 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.pageview.AbstractBar", qx.ui.layout.BoxLayout,
+function()
+{
+  qx.ui.layout.BoxLayout.call(this);
+
+  this._manager = new qx.manager.selection.RadioManager;
+
+  this.addEventListener("mousewheel", this._onmousewheel);
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITY
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getManager = function() {
+  return this._manager;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENTS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._lastDate = (new Date(0)).valueOf();
+
+qx.Proto._onmousewheel = function(e)
+{
+  // Make it a bit lazier than it could be
+  // Hopefully this is a better behaviour for fast scrolling users
+  var vDate = (new Date).valueOf();
+
+  if ((vDate - 50) < this._lastDate) {
+    return;
+  }
+
+  this._lastDate = vDate;
+
+  var vManager = this.getManager();
+  var vItems = vManager.getItems();
+  var vPos = vItems.indexOf(vManager.getSelected());
+
+  if (this.getWheelDelta(e) > 0)
+  {
+    var vNext = vItems[vPos+1];
+
+    if (!vNext) {
+      vNext = vItems[0];
+    }
+  }
+  else if (vPos > 0)
+  {
+    var vNext = vItems[vPos-1];
+
+    if (!vNext) {
+      vNext = vItems[0];
+    }
+  }
+  else
+  {
+    vNext = vItems[vItems.length-1];
+  }
+
+  vManager.setSelected(vNext);
+}
+
+qx.Proto.getWheelDelta = function(e) {
+  return e.getWheelDelta();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if (this._manager)
+  {
+    this._manager.dispose();
+    this._manager = null;
+  }
+
+  this.removeEventListener("mousewheel", this._onmousewheel);
+
+  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractButton.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractButton.js
new file mode 100755 (executable)
index 0000000..da590a2
--- /dev/null
@@ -0,0 +1,219 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+ * Sebastian Werner (wpbasti)
+ * Andreas Ecker (ecker)
+
+ ************************************************************************ */
+
+/* ************************************************************************
+
+
+ ************************************************************************ */
+
+qx.OO.defineClass("qx.ui.pageview.AbstractButton", qx.ui.basic.Atom,
+function(vText, vIcon, vIconWidth, vIconHeight, vFlash) {
+  qx.ui.basic.Atom.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
+
+  this.setTabIndex(1);
+
+  // ************************************************************************
+  //   MOUSE EVENTS
+  // ************************************************************************
+  this.addEventListener("mouseover", this._onmouseover);
+  this.addEventListener("mouseout", this._onmouseout);
+  this.addEventListener("mousedown", this._onmousedown);
+
+  // ************************************************************************
+  //   KEY EVENTS
+  // ************************************************************************
+  this.addEventListener("keydown", this._onkeydown);
+  this.addEventListener("keypress", this._onkeypress);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+ */
+
+/*!
+  If this tab is the currently selected/active one
+ */
+qx.OO.addProperty({ name : "checked", type : "boolean", defaultValue : false });
+
+/*!
+  The attached page of this tab
+ */
+qx.OO.addProperty({ name : "page", type : "object" });
+
+/*!
+  The assigned qx.manager.selection.RadioManager which handles the switching between registered buttons
+ */
+qx.OO.addProperty({ name : "manager", type : "object", instance : "qx.manager.selection.RadioManager", allowNull : true });
+
+/*!
+  The name of the radio group. All the radio elements in a group (registered by the same manager)
+  have the same name (and could have a different value).
+ */
+qx.OO.addProperty({ name : "name", type : "string" });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+ */
+
+qx.Proto.getView = function() {
+  return this.getParent().getParent();
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+ */
+
+qx.Proto._modifyManager = function(propValue, propOldValue, propData) {
+  if (propOldValue) {
+    propOldValue.remove(this);
+  }
+
+  if (propValue) {
+    propValue.add(this);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyParent = function(propValue, propOldValue, propData) {
+  if (propOldValue) {
+    propOldValue.getManager().remove(this);
+  }
+
+  if (propValue) {
+    propValue.getManager().add(this);
+  }
+
+  return qx.ui.basic.Atom.prototype._modifyParent.call(this, propValue, propOldValue, propData);
+}
+
+qx.Proto._modifyPage = function(propValue, propOldValue, propData) {
+  if (propOldValue) {
+    propOldValue.setButton(null);
+  }
+
+  if (propValue) {
+    propValue.setButton(this);
+    this.getChecked() ? propValue.show() : propValue.hide();
+  }
+
+  return true;
+}
+
+qx.Proto._modifyChecked = function(propValue, propOldValue, propData) {
+  if (this._hasParent) {
+    var vManager = this.getManager();
+    if (vManager) {
+      vManager.handleItemChecked(this, propValue);
+    }
+  }
+
+  propValue ? this.addState("checked") : this.removeState("checked");
+
+  var vPage = this.getPage();
+  if (vPage) {
+    this.getChecked() ? vPage.show() : vPage.hide();
+  }
+
+  return true;
+}
+
+qx.Proto._modifyName = function(propValue, propOldValue, propData) {
+  if (this.getManager()) {
+    this.getManager().setName(propValue);
+  }
+
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+ */
+
+qx.Proto._onmousedown = function(e) {
+  this.setChecked(true);
+}
+
+qx.Proto._onmouseover = function(e) {
+  this.addState("over");
+}
+
+qx.Proto._onmouseout = function(e) {
+  this.removeState("over");
+}
+
+qx.Proto._onkeydown = function(e) {}
+qx.Proto._onkeypress = function(e) {}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+ */
+
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+    return;
+  }
+
+
+  // ************************************************************************
+  //   MOUSE EVENTS
+  // ************************************************************************
+  this.removeEventListener("mouseover", this._onmouseover);
+  this.removeEventListener("mouseout", this._onmouseout);
+  this.removeEventListener("mousedown", this._onmousedown);
+
+
+  // ************************************************************************
+  //   KEY EVENTS
+  // ************************************************************************
+  this.removeEventListener("keydown", this._onkeydown);
+  this.removeEventListener("keypress", this._onkeypress);
+
+
+  return qx.ui.basic.Atom.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPage.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPage.js
new file mode 100755 (executable)
index 0000000..3eed9d2
--- /dev/null
@@ -0,0 +1,75 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.pageview.AbstractPage", qx.ui.layout.CanvasLayout,
+function(vButton)
+{
+  qx.ui.layout.CanvasLayout.call(this);
+
+  if (qx.util.Validation.isValid(vButton)) {
+    this.setButton(vButton);
+  }
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  The attached tab of this page.
+*/
+qx.OO.addProperty({ name : "button", type : "object" });
+
+/*!
+  Make element displayed (if switched to true the widget will be created, if needed, too).
+  Instead of qx.ui.core.Widget, the default is false here.
+*/
+qx.OO.changeProperty({ name : "display", type : "boolean", defaultValue : false });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyButton = function(propValue, propOldValue, propData)
+{
+  if (propOldValue) {
+    propOldValue.setPage(null);
+  }
+
+  if (propValue) {
+    propValue.setPage(this);
+  }
+
+  return true;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPageView.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPageView.js
new file mode 100755 (executable)
index 0000000..786bc88
--- /dev/null
@@ -0,0 +1,84 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.pageview.AbstractPageView", qx.ui.layout.BoxLayout,
+function(vBarClass, vPaneClass)
+{
+  qx.ui.layout.BoxLayout.call(this);
+
+  this._bar = new vBarClass;
+  this._pane = new vPaneClass;
+
+  this.add(this._bar, this._pane);
+  this.setOrientation("vertical");
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITY
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getPane = function() {
+  return this._pane;
+}
+
+qx.Proto.getBar = function() {
+  return this._bar;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if (this._bar)
+  {
+    this._bar.dispose();
+    this._bar = null;
+  }
+
+  if (this._pane)
+  {
+    this._pane.dispose();
+    this._pane = null;
+  }
+
+  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPane.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPane.js
new file mode 100755 (executable)
index 0000000..a026e04
--- /dev/null
@@ -0,0 +1,27 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.pageview.AbstractPane", qx.ui.layout.CanvasLayout,
+function() {
+  qx.ui.layout.CanvasLayout.call(this);
+});
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Bar.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Bar.js
new file mode 100644 (file)
index 0000000..43ed8c1
--- /dev/null
@@ -0,0 +1,75 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_buttonview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.pageview.buttonview.Bar", qx.ui.pageview.AbstractBar,
+function() {
+  qx.ui.pageview.AbstractBar.call(this);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "bar-view-bar" });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENTS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getWheelDelta = function(e)
+{
+  var vWheelDelta = e.getWheelDelta();
+
+  switch(this.getParent().getBarPosition())
+  {
+    case "left":
+    case "right":
+      vWheelDelta *= -1;
+  }
+
+  return vWheelDelta;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPEARANCE ADDITIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._applyStateAppearance = function()
+{
+  var vPos = this.getParent().getBarPosition();
+
+  this._states.barLeft = vPos === "left";
+  this._states.barRight = vPos === "right";
+  this._states.barTop = vPos === "top";
+  this._states.barBottom = vPos === "bottom";
+
+  qx.ui.pageview.AbstractButton.prototype._applyStateAppearance.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Button.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Button.js
new file mode 100644 (file)
index 0000000..2ea0086
--- /dev/null
@@ -0,0 +1,120 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_buttonview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.pageview.buttonview.Button", qx.ui.pageview.AbstractButton,
+function(vText, vIcon, vIconWidth, vIconHeight, vFlash) {
+  qx.ui.pageview.AbstractButton.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "bar-view-button" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onkeypress = function(e)
+{
+  switch(this.getView().getBarPosition())
+  {
+    case "top":
+    case "bottom":
+      switch(e.getKeyIdentifier())
+      {
+        case "Left":
+          var vPrevious = true;
+          break;
+
+        case "Right":
+          var vPrevious = false;
+          break;
+
+        default:
+          return;
+      }
+
+      break;
+
+    case "left":
+    case "right":
+      switch(e.getKeyIdentifier())
+      {
+        case "Up":
+          var vPrevious = true;
+          break;
+
+        case "Down":
+          var vPrevious = false;
+          break;
+
+        default:
+          return;
+      }
+
+      break;
+
+    default:
+      return;
+  }
+
+  var vChild = vPrevious ? this.isFirstChild() ? this.getParent().getLastChild() : this.getPreviousSibling() : this.isLastChild() ? this.getParent().getFirstChild() : this.getNextSibling();
+
+  // focus next/previous button
+  vChild.setFocused(true);
+
+  // and naturally also check it
+  vChild.setChecked(true);
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPEARANCE ADDITIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._applyStateAppearance = function()
+{
+  var vPos = this.getView().getBarPosition();
+
+  this._states.barLeft = vPos === "left";
+  this._states.barRight = vPos === "right";
+  this._states.barTop = vPos === "top";
+  this._states.barBottom = vPos === "bottom";
+
+  qx.ui.pageview.AbstractButton.prototype._applyStateAppearance.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/ButtonView.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/ButtonView.js
new file mode 100644 (file)
index 0000000..7521b67
--- /dev/null
@@ -0,0 +1,98 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_buttonview)
+
+************************************************************************ */
+
+/*!
+  One of the widgets which could be used to structurize the interface.
+
+  qx.ui.pageview.buttonview.ButtonView creates the typical apple-like tabview-replacements which could also
+  be found in more modern versions of the settings dialog in Mozilla Firefox.
+*/
+qx.OO.defineClass("qx.ui.pageview.buttonview.ButtonView", qx.ui.pageview.AbstractPageView,
+function()
+{
+  qx.ui.pageview.AbstractPageView.call(this, qx.ui.pageview.buttonview.Bar, qx.ui.pageview.buttonview.Pane);
+
+  this.setOrientation("vertical");
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "barPosition", type : "string", defaultValue : "top", possibleValues : [ "top", "right", "bottom", "left" ] });
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "bar-view" });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyBarPosition = function(propValue, propOldValue, propData)
+{
+  var vBar = this._bar;
+
+  // move bar around and change orientation
+  switch(propValue)
+  {
+    case "top":
+      vBar.moveSelfToBegin();
+      this.setOrientation("vertical");
+      break;
+
+    case "bottom":
+      vBar.moveSelfToEnd();
+      this.setOrientation("vertical");
+      break;
+
+    case "left":
+      vBar.moveSelfToBegin();
+      this.setOrientation("horizontal");
+      break;
+
+    case "right":
+      vBar.moveSelfToEnd();
+      this.setOrientation("horizontal");
+      break;
+  }
+
+  // force re-apply of states for bar and pane
+  this._addChildrenToStateQueue();
+
+  // force re-apply of states for all tabs
+  vBar._addChildrenToStateQueue();
+
+  return true;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Page.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Page.js
new file mode 100644 (file)
index 0000000..d5d4b15
--- /dev/null
@@ -0,0 +1,30 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_buttonview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.pageview.buttonview.Page", qx.ui.pageview.AbstractPage,
+function(vButton) {
+  qx.ui.pageview.AbstractPage.call(this, vButton);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "bar-view-page" });
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Pane.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Pane.js
new file mode 100644 (file)
index 0000000..6f8aabe
--- /dev/null
@@ -0,0 +1,51 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_buttonview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.pageview.buttonview.Pane", qx.ui.pageview.AbstractPane,
+function() {
+  qx.ui.pageview.AbstractPane.call(this);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "bar-view-pane" });
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPEARANCE ADDITIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._applyStateAppearance = function()
+{
+  var vPos = this.getParent().getBarPosition();
+
+  this._states.barHorizontal = vPos === "top" || vPos === "bottom";
+
+  qx.ui.pageview.AbstractButton.prototype._applyStateAppearance.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Bar.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Bar.js
new file mode 100644 (file)
index 0000000..22f429d
--- /dev/null
@@ -0,0 +1,33 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_tabview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.pageview.tabview.Bar", qx.ui.pageview.AbstractBar,
+function()
+{
+  qx.ui.pageview.AbstractBar.call(this);
+
+  this.setZIndex(2);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tab-view-bar" });
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Button.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Button.js
new file mode 100644 (file)
index 0000000..9566bb2
--- /dev/null
@@ -0,0 +1,189 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_tabview)
+
+************************************************************************ */
+
+/**
+ * @event closetab {qx.event.type.DataEvent}
+ */
+qx.OO.defineClass("qx.ui.pageview.tabview.Button", qx.ui.pageview.AbstractButton,
+function(vText, vIcon, vIconWidth, vIconHeight, vFlash) {
+  qx.ui.pageview.AbstractButton.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tab-view-button" });
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+ */
+
+/*!
+  default Close Tab Button
+ */
+qx.OO.addProperty({ name : "showCloseButton", type : "boolean", defaultValue : false });
+
+/*!
+  Close Tab Icon
+ */
+qx.OO.addProperty({ name : "closeButtonImage", type : "string", defaultValue : "icon/16/cancel.png"});
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onkeydown = function(e)
+{
+  var identifier = e.getKeyIdentifier();
+  if (identifier == "Enter" || identifier == "Space") {
+      // there is no toggeling, just make it checked
+      this.setChecked(true);
+  }
+};
+
+
+qx.Proto._onkeypress = function(e)
+{
+  switch(e.getKeyIdentifier())
+  {
+    case "Left":
+      var vPrev = this.getPreviousSibling() || this.getParent().getLastChild();
+      if (vPrev && vPrev != this)
+      {
+        // we want to enable the outline border, because
+        // the user used the keyboard for activation
+        delete qx.event.handler.FocusHandler.mouseFocus;
+
+        // focus previous tab
+        vPrev.setFocused(true);
+
+        // and naturally make it also checked
+        vPrev.setChecked(true);
+      }
+      break;
+
+    case "Right":
+      var vNext = this.getNextSibling() || this.getParent().getFirstVisibleChild();
+      if (vNext && vNext != this)
+      {
+        // we want to enable the outline border, because
+        // the user used the keyboard for activation
+        delete qx.event.handler.FocusHandler.mouseFocus;
+
+        // focus next tab
+        vNext.setFocused(true);
+
+        // and naturally make it also checked
+        vNext.setChecked(true);
+      }
+      break;
+  }
+};
+
+
+qx.Proto._ontabclose = function(e){
+  this.createDispatchDataEvent("closetab", this);
+}
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+ */
+
+qx.Proto._modifyShowCloseButton = function(propValue, propOldValue, propData) {
+
+  // if no image exists, then create one
+  if (!this._closeButtonImage) {
+    this._closeButtonImage = new qx.ui.basic.Image(this.getCloseButtonImage());
+  }
+  if (propValue) {
+    this._closeButtonImage.addEventListener("click", this._ontabclose, this);
+    this.add(this._closeButtonImage);
+  } else {
+    this.remove(this._closeButtonImage);
+    this._closeButtonImage.removeEventListener("click", this._ontabclose);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyCloseButtonImage = function(propValue, propOldValue, propData) {
+  if (this._closeButtonImage) {
+    this._closeButtonImage.setSource(propValue);
+  }
+
+  return true;
+}
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPEARANCE ADDITIONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._applyStateAppearance = function()
+{
+  this._states.firstChild = this.isFirstVisibleChild();
+  this._states.lastChild = this.isLastVisibleChild();
+  this._states.alignLeft = this.getView().getAlignTabsToLeft();
+  this._states.barTop = this.getView().getPlaceBarOnTop();
+
+  qx.ui.pageview.AbstractButton.prototype._applyStateAppearance.call(this);
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+ */
+
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if(this._closeButtonImage){
+    this._closeButtonImage.dispose();
+    this._closeButtonImage = null;
+  }
+
+  return qx.ui.pageview.AbstractButton.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Page.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Page.js
new file mode 100644 (file)
index 0000000..8f1f654
--- /dev/null
@@ -0,0 +1,30 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_tabview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.pageview.tabview.Page", qx.ui.pageview.AbstractPage,
+function(vButton) {
+  qx.ui.pageview.AbstractPage.call(this, vButton);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tab-view-page" });
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Pane.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Pane.js
new file mode 100644 (file)
index 0000000..d31d4ee
--- /dev/null
@@ -0,0 +1,33 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_tabview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.pageview.tabview.Pane", qx.ui.pageview.AbstractPane,
+function()
+{
+  qx.ui.pageview.AbstractPane.call(this);
+
+  this.setZIndex(1);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tab-view-pane" });
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/TabView.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/TabView.js
new file mode 100644 (file)
index 0000000..b1cfe9c
--- /dev/null
@@ -0,0 +1,86 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_tabview)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.pageview.tabview.TabView", qx.ui.pageview.AbstractPageView,
+function() {
+  qx.ui.pageview.AbstractPageView.call(this, qx.ui.pageview.tabview.Bar, qx.ui.pageview.tabview.Pane);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tab-view" });
+
+qx.OO.addProperty({ name : "alignTabsToLeft", type : "boolean", defaultValue : true });
+qx.OO.addProperty({ name : "placeBarOnTop", type : "boolean", defaultValue : true });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyAlignTabsToLeft = function(propValue, propOldValue, propData)
+{
+  var vBar = this._bar;
+
+  vBar.setHorizontalChildrenAlign(propValue ? "left" : "right");
+
+  // force re-apply of states for all tabs
+  vBar._addChildrenToStateQueue();
+
+  return true;
+}
+
+qx.Proto._modifyPlaceBarOnTop = function(propValue, propOldValue, propData)
+{
+  // This does not work if we use flexible zones
+  // this.setReverseChildrenOrder(!propValue);
+
+  var vBar = this._bar;
+
+  // move bar around
+  if (propValue) {
+    vBar.moveSelfToBegin();
+  } else {
+    vBar.moveSelfToEnd();
+  }
+
+  // force re-apply of states for all tabs
+  vBar._addChildrenToStateQueue();
+
+  return true;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/popup/Popup.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/popup/Popup.js
new file mode 100644 (file)
index 0000000..171016d
--- /dev/null
@@ -0,0 +1,329 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_popup)
+#optional(qx.manager.object.MenuManager)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.popup.Popup", qx.ui.layout.CanvasLayout,
+function()
+{
+  qx.ui.layout.CanvasLayout.call(this);
+
+  this.setZIndex(this._minZIndex);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "popup" });
+
+/*!
+  Whether to let the system decide when to hide the popup. Setting
+  this to false gives you better control but it also requires you
+  to handle the closing of the popup.
+*/
+qx.OO.addProperty({ name : "autoHide", type : "boolean", defaultValue : true });
+
+/*!
+  Make element displayed (if switched to true the widget will be created, if needed, too).
+  Instead of qx.ui.core.Widget, the default is false here.
+*/
+qx.OO.changeProperty({ name : "display", type : "boolean", defaultValue : false });
+
+/*!
+  Center the popup on open
+*/
+qx.OO.addProperty({ name : "centered", type : "boolean", defaultValue : false });
+
+/**
+ * Whether the popup should be restricted to the visible area of the page when opened.
+ */
+qx.OO.addProperty({ name : "restrictToPageOnOpen", type : "boolean", defaultValue : true });
+
+
+qx.Proto._showTimeStamp = (new Date(0)).valueOf();
+qx.Proto._hideTimeStamp = (new Date(0)).valueOf();
+
+
+/**
+ * The minimum offset to the left of the page too keep when
+ * {@link #restrictToPageOnOpen} is true (in pixels).
+ */
+qx.Settings.setDefault("restrictToPageLeft", "5");
+
+/**
+ * The minimum offset to the right of the page too keep when
+ * {@link #restrictToPageOnOpen} is true (in pixels).
+ */
+qx.Settings.setDefault("restrictToPageRight", "5");
+
+/**
+ * The minimum offset to the top of the page too keep when
+ * {@link #restrictToPageOnOpen} is true (in pixels).
+ */
+qx.Settings.setDefault("restrictToPageTop", "5");
+
+/**
+ * The minimum offset to the bottom of the page too keep when
+ * {@link #restrictToPageOnOpen} is true (in pixels).
+ */
+qx.Settings.setDefault("restrictToPageBottom", "5");
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPEAR/DISAPPEAR
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._beforeAppear = function()
+{
+  qx.ui.layout.CanvasLayout.prototype._beforeAppear.call(this);
+
+  if (this.getRestrictToPageOnOpen()) {
+    this._wantedLeft = this.getLeft();
+
+    if (this._wantedLeft != null) {
+      // Move the popup out of the view so its size could be calculated before
+      // it is positioned.
+      this.setLeft(10000);
+      if (this.getElement() != null) {
+        // The popup was already visible once before
+        // -> Move it immediately before it gets visible again
+        this.getElement().style.left = 10000;
+      }
+    }
+  }
+
+  qx.manager.object.PopupManager.getInstance().add(this);
+  qx.manager.object.PopupManager.getInstance().update(this);
+
+  this._showTimeStamp = (new Date).valueOf();
+  this.bringToFront();
+}
+
+qx.Proto._beforeDisappear = function()
+{
+  qx.ui.layout.CanvasLayout.prototype._beforeDisappear.call(this);
+
+  qx.manager.object.PopupManager.getInstance().remove(this);
+
+  this._hideTimeStamp = (new Date).valueOf();
+}
+
+qx.Proto._afterAppear = function() {
+  qx.ui.layout.CanvasLayout.prototype._afterAppear.call(this);
+
+  if (this.getRestrictToPageOnOpen()) {
+    var doc = qx.ui.core.ClientDocument.getInstance();
+    var docWidth = doc.getClientWidth();
+    var docHeight = doc.getClientHeight();
+    var restrictToPageLeft   = parseInt(qx.Settings.getValueOfClass("qx.ui.popup.Popup", "restrictToPageLeft"));
+    var restrictToPageRight  = parseInt(qx.Settings.getValueOfClass("qx.ui.popup.Popup", "restrictToPageRight"));
+    var restrictToPageTop    = parseInt(qx.Settings.getValueOfClass("qx.ui.popup.Popup", "restrictToPageTop"));
+    var restrictToPageBottom = parseInt(qx.Settings.getValueOfClass("qx.ui.popup.Popup", "restrictToPageBottom"));
+    var left   = (this._wantedLeft == null) ? this.getLeft() : this._wantedLeft;
+    var top    = this.getTop();
+    var width  = this.getBoxWidth();
+    var height = this.getBoxHeight();
+
+    var oldLeft = this.getLeft();
+    var oldTop = top;
+
+    // NOTE: We check right and bottom first, because top and left should have
+    //       priority, when both sides are violated.
+    if (left + width > docWidth - restrictToPageRight) {
+      left = docWidth - restrictToPageRight - width;
+    }
+    if (top + height > docHeight - restrictToPageBottom) {
+      top = docHeight - restrictToPageBottom - height;
+    }
+    if (left < restrictToPageLeft) {
+      left = restrictToPageLeft;
+    }
+    if (top < restrictToPageTop) {
+      top = restrictToPageTop;
+    }
+
+    if (left != oldLeft || top != oldTop) {
+      var self = this;
+      window.setTimeout(function() {
+        self.setLeft(left);
+        self.setTop(top);
+        qx.ui.core.Widget.flushGlobalQueues();
+      }, 0);
+    }
+  }
+};
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ACTIVE/INACTIVE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._makeActive = function() {
+  this.getFocusRoot().setActiveChild(this);
+}
+
+qx.Proto._makeInactive = function()
+{
+  var vRoot = this.getFocusRoot();
+  var vCurrent = vRoot.getActiveChild();
+
+  if (vCurrent == this) {
+    vRoot.setActiveChild(vRoot);
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  FOCUS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.isFocusable = function() {
+  return false;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ZIndex Positioning
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._minZIndex = 1e6;
+
+qx.Proto.bringToFront = function()
+{
+  this.forceZIndex(Infinity);
+  this._sendTo();
+}
+
+qx.Proto.sendToBack = function()
+{
+  this.forceZIndex(-Infinity);
+  this._sendTo();
+}
+
+qx.Proto._sendTo = function()
+{
+  var vPopups = qx.lang.Object.getValues(qx.manager.object.PopupManager.getInstance().getAll());
+  var vMenus = qx.lang.Object.getValues(qx.manager.object.MenuManager.getInstance().getAll());
+
+  var vAll = vPopups.concat(vMenus).sort(qx.util.Compare.byZIndex);
+  var vLength = vAll.length;
+  var vIndex = this._minZIndex;
+
+  for (var i=0; i<vLength; i++) {
+    vAll[i].setZIndex(vIndex++);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  TIMESTAMP HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getShowTimeStamp = function() {
+  return this._showTimeStamp;
+}
+
+qx.Proto.getHideTimeStamp = function() {
+  return this._hideTimeStamp;
+}
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Positions the popup relative to some reference element.
+ * @param el    {var} Reference DOM element/widget.
+ * @param offsetX   {int} Offset in pixels in X direction (optional).
+ * @param offsetY   {int} Offset in pixels in Y direction (optional).
+ */
+qx.Proto.positionRelativeTo = function(el, offsetX, offsetY)
+{
+  if (el instanceof qx.ui.core.Widget) {
+    el = el.getElement();
+  }
+  if (el) {
+    var gecko = qx.sys.Client.getInstance().isGecko();
+    var loc = qx.dom.Location;
+    this.setLocation(loc.getClientAreaLeft(el) - (gecko ? qx.dom.Style.getBorderLeft(el):0) + (offsetX || 0),
+      loc.getClientAreaTop(el) - (gecko ? qx.dom.Style.getBorderTop(el):0) + (offsetY || 0));
+  } else {
+    this.warn('Missing reference element');
+  }
+}
+
+qx.Proto.centerToBrowser = function()
+{
+  var d = qx.ui.core.ClientDocument.getInstance();
+
+  var left = (d.getClientWidth() - this.getBoxWidth()) / 2;
+  var top = (d.getClientHeight() - this.getBoxHeight()) / 2;
+
+  this.setLeft(left < 0 ? 0 : left);
+  this.setTop(top < 0 ? 0 : top);
+}
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this._showTimeStamp = null;
+  this._hideTimeStamp = null;
+
+  return qx.ui.layout.CanvasLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/popup/PopupAtom.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/popup/PopupAtom.js
new file mode 100644 (file)
index 0000000..eee111b
--- /dev/null
@@ -0,0 +1,51 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_popup)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.popup.PopupAtom", qx.ui.popup.Popup,
+function(vLabel, vIcon)
+{
+  qx.ui.popup.Popup.call(this);
+
+  this._atom = new qx.ui.basic.Atom(vLabel, vIcon);
+  this._atom.setParent(this);
+});
+
+qx.Proto.getAtom = function() {
+  return this._atom;
+}
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if (this._atom)
+  {
+    this._atom.dispose();
+    this._atom = null;
+  }
+
+  return qx.ui.popup.Popup.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/popup/ToolTip.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/popup/ToolTip.js
new file mode 100644 (file)
index 0000000..6fd70f6
--- /dev/null
@@ -0,0 +1,255 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_popup)
+#load(qx.manager.object.ToolTipManager)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.popup.ToolTip", qx.ui.popup.PopupAtom,
+function(vLabel, vIcon)
+{
+  // ************************************************************************
+  //   INIT
+  // ************************************************************************
+
+  qx.ui.popup.PopupAtom.call(this, vLabel, vIcon);
+
+  // Apply shadow
+  this.setStyleProperty("filter", "progid:DXImageTransform.Microsoft.Shadow(color='Gray', Direction=135, Strength=4)");
+
+
+  // ************************************************************************
+  //   TIMER
+  // ************************************************************************
+
+  this._showTimer = new qx.client.Timer(this.getShowInterval());
+  this._showTimer.addEventListener("interval", this._onshowtimer, this);
+
+  this._hideTimer = new qx.client.Timer(this.getHideInterval());
+  this._hideTimer.addEventListener("interval", this._onhidetimer, this);
+
+
+  // ************************************************************************
+  //   EVENTS
+  // ************************************************************************
+  this.addEventListener("mouseover", this._onmouseover);
+  this.addEventListener("mouseout", this._onmouseover);
+});
+
+qx.Proto._minZIndex = 1e7;
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tool-tip" });
+
+qx.OO.addProperty({ name : "hideOnHover", type : "boolean", defaultValue : true });
+
+qx.OO.addProperty({ name : "mousePointerOffsetX", type : "number", defaultValue : 1 });
+qx.OO.addProperty({ name : "mousePointerOffsetY", type : "number", defaultValue : 20 });
+
+qx.OO.addProperty({ name : "showInterval", type : "number", defaultValue : 1000 });
+qx.OO.addProperty({ name : "hideInterval", type : "number", defaultValue : 4000 });
+
+qx.OO.addProperty({ name : "boundToWidget", type : "object", instance : "qx.ui.core.Widget" });
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyHideInterval = function(propValue, propOldValue, propData)
+{
+  this._hideTimer.setInterval(propValue);
+  return true;
+}
+
+qx.Proto._modifyShowInterval = function(propValue, propOldValue, propData)
+{
+  this._showTimer.setInterval(propValue);
+  return true;
+}
+
+qx.Proto._modifyBoundToWidget = function(propValue, propOldValue, propData)
+{
+  if (propValue)
+  {
+    this.setParent(propValue.getTopLevelWidget());
+  }
+  else if (propOldValue)
+  {
+    this.setParent(null);
+  }
+
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPEAR/DISAPPEAR
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._beforeAppear = function()
+{
+  qx.ui.popup.PopupAtom.prototype._beforeAppear.call(this);
+
+  this._stopShowTimer();
+  this._startHideTimer();
+}
+
+qx.Proto._beforeDisappear = function() {
+  qx.ui.popup.PopupAtom.prototype._beforeDisappear.call(this);
+
+  this._stopHideTimer();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  TIMER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._startShowTimer = function()
+{
+  if(!this._showTimer.getEnabled()) {
+    this._showTimer.start();
+  }
+}
+
+qx.Proto._startHideTimer = function()
+{
+  if(!this._hideTimer.getEnabled()) {
+    this._hideTimer.start();
+  }
+}
+
+qx.Proto._stopShowTimer = function()
+{
+  if(this._showTimer.getEnabled()) {
+    this._showTimer.stop();
+  }
+}
+
+qx.Proto._stopHideTimer = function()
+{
+  if(this._hideTimer.getEnabled()) {
+    this._hideTimer.stop();
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENTS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmouseover = function(e)
+{
+  if(this.getHideOnHover()) {
+    this.hide();
+  }
+}
+
+qx.Proto._onshowtimer = function(e)
+{
+  this.setLeft(qx.event.type.MouseEvent.getPageX() + this.getMousePointerOffsetX());
+  this.setTop(qx.event.type.MouseEvent.getPageY() + this.getMousePointerOffsetY());
+
+  this.show();
+
+  // we need a manual flushing because it could be that
+  // there is currently no event which do this for us
+  // and so show the tooltip.
+  qx.ui.core.Widget.flushGlobalQueues();
+
+  return true;
+}
+
+qx.Proto._onhidetimer = function(e) {
+  return this.hide();
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if(this.getDisposed()) {
+    return;
+  }
+
+  this.removeEventListener("mouseover", this._onmouseover);
+  this.removeEventListener("mouseout", this._onmouseover);
+
+  if (this._showTimer)
+  {
+    this._showTimer.removeEventListener("interval", this._onshowtimer, this);
+    this._showTimer.dispose();
+    this._showTimer = null;
+  }
+
+  if (this._hideTimer)
+  {
+    this._hideTimer.removeEventListener("interval", this._onhidetimer, this);
+    this._hideTimer.dispose();
+    this._hideTimer = null;
+  }
+
+  return qx.ui.popup.PopupAtom.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/resizer/Resizer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/resizer/Resizer.js
new file mode 100755 (executable)
index 0000000..7ebd182
--- /dev/null
@@ -0,0 +1,417 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * David Perez (david-perez)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_resizer)
+
+************************************************************************ */
+
+/**
+ * This class acts as a wrapper for other child, and allows it to be resized (not moved), normally in
+ * the right and/or bottom directions.  Child can be e.g. a qx.ui.form.TextArea,
+ * qx.ui.table.Table or qx.ui.form.List.  It is an alternative to splitters.
+ */
+qx.OO.defineClass('qx.ui.resizer.Resizer', qx.ui.layout.CanvasLayout,
+function(child)
+{
+  qx.ui.layout.CanvasLayout.call(this);
+
+  this._frame = new qx.ui.basic.Terminator;
+  this._frame.setAppearance("resizer-frame");
+
+  this._registerResizeEvents();
+
+  this.setAppearance('resizer');
+  this.setResizeableWest(false);
+  this.setResizeableNorth(false);
+
+  this.setMinWidth("auto");
+  this.setMinHeight("auto");
+  this.auto();
+
+  if (child)
+  {
+    // Remove child border, as the resizer has already its own border.
+    child.setBorder(new qx.renderer.border.Border(0));
+    this.add(this._child = child);
+  }
+});
+
+
+
+
+
+/*!
+  If the window is resizeable in the left direction.
+*/
+qx.OO.addProperty({ name : "resizeableWest", type : "boolean", defaultValue : true });
+/*!
+  If the window is resizeable in the top direction.
+*/
+qx.OO.addProperty({ name : "resizeableNorth", type : "boolean", defaultValue : true });
+/*!
+  If the window is resizeable in the right direction.
+*/
+qx.OO.addProperty({ name : "resizeableEast", type : "boolean", defaultValue : true });
+/*!
+  If the window is resizeable in the bottom direction.
+*/
+qx.OO.addProperty({ name : "resizeableSouth", type : "boolean", defaultValue : true });
+
+/*!
+  If the window is resizeable
+*/
+qx.OO.addPropertyGroup({ name : "resizeable", members : [ "west", "north", "east", "south" ], mode : "shorthand" });
+
+/*!
+  The resize method to use
+*/
+qx.OO.addProperty({ name : "resizeMethod", type : "string", defaultValue : "frame", possibleValues : [ "opaque", "lazyopaque", "frame", "translucent" ] });
+
+/*!
+  The resize method to use
+*/
+qx.OO.addProperty({ name : "resizeMethod", type : "string", defaultValue : "frame", possibleValues : [ "opaque", "lazyopaque", "frame", "translucent" ] });
+
+
+
+
+
+
+/**
+ * Adjust so that it returns a boolean instead of an array.
+ * @return {boolean}
+ */
+qx.Proto.isResizeable = qx.Proto.getResizeable = function() {
+  return this.getResizeableWest() || this.getResizeableEast() || this.getResizeableNorth() || this.getResizeableSouth();
+}
+
+qx.Proto._registerResizeEvents = function() {
+  this.addEventListener("mousedown", this._onmousedown);
+  this.addEventListener("mouseup", this._onmouseup);
+  this.addEventListener("mousemove", this._onmousemove);
+}
+
+qx.Proto._onmousedown = function(e)
+{
+  if (this._resizeNorth || this._resizeSouth || this._resizeWest || this._resizeEast)
+  {
+    // enable capturing
+    this.setCapture(true);
+
+    // activate global cursor
+    this.getTopLevelWidget().setGlobalCursor(this.getCursor());
+
+    // caching element
+    var el = this.getElement();
+
+    // measuring and caching of values for resize session
+    var pa = this.getTopLevelWidget();
+    var pl = pa.getElement();
+
+    var l = qx.dom.Location.getPageAreaLeft(pl);
+    var t = qx.dom.Location.getPageAreaTop(pl);
+    var r = qx.dom.Location.getPageAreaRight(pl);
+    var b = qx.dom.Location.getPageAreaBottom(pl);
+
+    // handle frame and translucently
+    switch(this.getResizeMethod())
+    {
+      case "translucent":
+        this.setOpacity(0.5);
+        break;
+
+      case "frame":
+        var f = this._frame;
+
+        if (f.getParent() != pa)
+        {
+          f.setParent(pa);
+          qx.ui.core.Widget.flushGlobalQueues();
+        }
+
+        f._applyRuntimeLeft(qx.dom.Location.getPageBoxLeft(el) - l);
+        f._applyRuntimeTop(qx.dom.Location.getPageBoxTop(el) - t);
+
+        f._applyRuntimeWidth(qx.dom.Dimension.getBoxWidth(el));
+        f._applyRuntimeHeight(qx.dom.Dimension.getBoxHeight(el));
+
+        f.setZIndex(this.getZIndex() + 1);
+
+        break;
+    }
+
+    // create resize session
+    var s = this._resizeSession = {};
+    var minRef = this._child;
+
+    if (this._resizeWest)
+    {
+      s.boxWidth = qx.dom.Dimension.getBoxWidth(el);
+      s.boxRight = qx.dom.Location.getPageBoxRight(el);
+    }
+
+    if (this._resizeWest || this._resizeEast)
+    {
+      s.boxLeft = qx.dom.Location.getPageBoxLeft(el);
+
+      s.parentAreaOffsetLeft = l;
+      s.parentAreaOffsetRight = r;
+
+      s.minWidth = minRef.getMinWidthValue();
+      s.maxWidth = minRef.getMaxWidthValue();
+    }
+
+    if (this._resizeNorth)
+    {
+      s.boxHeight = qx.dom.Dimension.getBoxHeight(el);
+      s.boxBottom = qx.dom.Location.getPageBoxBottom(el);
+    }
+
+    if (this._resizeNorth || this._resizeSouth)
+    {
+      s.boxTop = qx.dom.Location.getPageBoxTop(el);
+
+      s.parentAreaOffsetTop = t;
+      s.parentAreaOffsetBottom = b;
+
+      s.minHeight = minRef.getMinHeightValue();
+      s.maxHeight = minRef.getMaxHeightValue();
+    }
+  }
+  else
+  {
+    // cleanup resize session
+    delete this._resizeSession;
+  }
+
+  // stop event
+  e.stopPropagation();
+}
+
+qx.Proto._onmouseup = function(e)
+{
+  var s = this._resizeSession;
+
+  if (s)
+  {
+    // disable capturing
+    this.setCapture(false);
+
+    // deactivate global cursor
+    this.getTopLevelWidget().setGlobalCursor(null);
+
+    // sync sizes to frame
+    switch(this.getResizeMethod())
+    {
+      case "frame":
+        var o = this._frame;
+        if (!(o && o.getParent())) {
+          break;
+        }
+        // no break here
+
+      case "lazyopaque":
+        if (qx.util.Validation.isValidNumber(s.lastLeft)) {
+          this.setLeft(s.lastLeft);
+        }
+
+        if (qx.util.Validation.isValidNumber(s.lastTop)) {
+          this.setTop(s.lastTop);
+        }
+
+        if (qx.util.Validation.isValidNumber(s.lastWidth)) {
+          var child = this.getChildren()[0];
+          if (child) {
+            child.setWidth(s.lastWidth);
+          }
+        }
+
+        if (qx.util.Validation.isValidNumber(s.lastHeight)) {
+          var child = this.getChildren()[0];
+          if (child) {
+            child.setHeight(s.lastHeight);
+          }
+        }
+
+        if (this.getResizeMethod() == "frame") {
+          this._frame.setParent(null);
+        }
+        break;
+
+      case "translucent":
+        this.setOpacity(null);
+        break;
+    }
+
+    // cleanup session
+    delete this._resizeNorth;
+    delete this._resizeEast;
+    delete this._resizeSouth;
+    delete this._resizeWest;
+
+    delete this._resizeSession;
+  }
+
+  // stop event
+  e.stopPropagation();
+}
+
+qx.Proto._near = function(p, e) {
+  return e > (p - 5) && e < (p + 5);
+}
+
+qx.Proto._onmousemove = function(e)
+{
+  var s = this._resizeSession;
+
+  if (s)
+  {
+    if (this._resizeWest)
+    {
+      s.lastWidth = qx.lang.Number.limit(s.boxWidth + s.boxLeft - Math.max(e.getPageX(), s.parentAreaOffsetLeft), s.minWidth, s.maxWidth);
+      s.lastLeft = s.boxRight - s.lastWidth - s.parentAreaOffsetLeft;
+    }
+    else if (this._resizeEast)
+    {
+      s.lastWidth = qx.lang.Number.limit(Math.min(e.getPageX(), s.parentAreaOffsetRight) - s.boxLeft, s.minWidth, s.maxWidth);
+    }
+
+    if (this._resizeNorth)
+    {
+      s.lastHeight = qx.lang.Number.limit(s.boxHeight + s.boxTop - Math.max(e.getPageY(), s.parentAreaOffsetTop), s.minHeight, s.maxHeight);
+      s.lastTop = s.boxBottom - s.lastHeight - s.parentAreaOffsetTop;
+    }
+    else if (this._resizeSouth)
+    {
+      s.lastHeight = qx.lang.Number.limit(Math.min(e.getPageY(), s.parentAreaOffsetBottom) - s.boxTop, s.minHeight, s.maxHeight);
+    }
+
+    switch(this.getResizeMethod())
+    {
+      case "opaque":
+      case "translucent":
+        if (this._resizeWest || this._resizeEast)
+        {
+          this.setWidth(s.lastWidth);
+
+          if (this._resizeWest) {
+            this.setLeft(s.lastLeft);
+          }
+        }
+
+        if (this._resizeNorth || this._resizeSouth)
+        {
+          this.setHeight(s.lastHeight);
+
+          if (this._resizeNorth) {
+            this.setTop(s.lastTop);
+          }
+        }
+
+        break;
+
+      default:
+        var o = this.getResizeMethod() == "frame" ? this._frame : this;
+
+        if (this._resizeWest || this._resizeEast)
+        {
+          o._applyRuntimeWidth(s.lastWidth);
+
+          if (this._resizeWest) {
+            o._applyRuntimeLeft(s.lastLeft);
+          }
+        }
+
+        if (this._resizeNorth || this._resizeSouth)
+        {
+          o._applyRuntimeHeight(s.lastHeight);
+
+          if (this._resizeNorth) {
+            o._applyRuntimeTop(s.lastTop);
+          }
+        }
+    }
+  }
+  else
+  {
+    var resizeMode = "";
+    var el = this.getElement();
+
+    this._resizeNorth = this._resizeSouth = this._resizeWest = this._resizeEast = false;
+
+    if (this._near(qx.dom.Location.getPageBoxTop(el), e.getPageY()))
+    {
+      if (this.getResizeableNorth()) {
+        resizeMode = "n";
+        this._resizeNorth = true;
+      }
+    }
+    else if (this._near(qx.dom.Location.getPageBoxBottom(el), e.getPageY()))
+    {
+      if (this.getResizeableSouth()) {
+        resizeMode = "s";
+        this._resizeSouth = true;
+      }
+    }
+
+    if (this._near(qx.dom.Location.getPageBoxLeft(el), e.getPageX()))
+    {
+      if (this.getResizeableWest()) {
+        resizeMode += "w";
+        this._resizeWest = true;
+      }
+    }
+    else if (this._near(qx.dom.Location.getPageBoxRight(el), e.getPageX()))
+    {
+      if (this.getResizeableEast()) {
+        resizeMode += "e";
+        this._resizeEast = true;
+      }
+    }
+
+    if (this._resizeNorth || this._resizeSouth || this._resizeWest || this._resizeEast)
+    {
+      this.setCursor(resizeMode + "-resize");
+    }
+    else
+    {
+      this.setCursor(null);
+    }
+  }
+
+  // stop event
+  e.stopPropagation();
+}
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if (this._frame)
+  {
+    this._frame.dispose();
+    this._frame = null;
+  }
+
+  return qx.ui.layout.CanvasLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/splitpane/HorizontalSplitPane.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/splitpane/HorizontalSplitPane.js
new file mode 100644 (file)
index 0000000..898ce09
--- /dev/null
@@ -0,0 +1,58 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Volker Pauli
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_splitpane)
+
+************************************************************************ */
+
+/**
+ *
+ * Creates a new instance of a horizontal SplitPane.<br /><br />
+ *
+ * new qx.ui.splitpane.HorizontalSplitPane()<br />
+ * new qx.ui.splitpane.HorizontalSplitPane(firstSize, secondSize)
+ *
+ * @param firstSize {string} The size of the left pane. Allowed values are any by {@see qx.ui.core.Widget} supported unit.
+ * @param secondSize {string} The size of the right pane. Allowed values are any by {@see qx.ui.core.Widget} supported unit.
+ */
+qx.OO.defineClass("qx.ui.splitpane.HorizontalSplitPane", qx.ui.splitpane.SplitPane,
+function(firstSize, secondSize) {
+  qx.ui.splitpane.SplitPane.call(this, "horizontal", firstSize, secondSize);
+});
+
+
+
+
+
+/*
+------------------------------------------------------------------------------------
+  DISPOSER
+------------------------------------------------------------------------------------
+ */
+
+/**
+ * Garbage collection
+ */
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  return qx.ui.splitpane.SplitPane.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/splitpane/SplitPane.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/splitpane/SplitPane.js
new file mode 100644 (file)
index 0000000..b0b817f
--- /dev/null
@@ -0,0 +1,759 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Volker Pauli (vpauli)
+     * Sebastian Werner (wpbasti)
+     * Carsten Lergenmueller (carstenL)
+
+ ************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_splitpane)
+
+ ************************************************************************ */
+
+
+/**
+ * Creates a new instance of a SplitPane. It allows the user to dynamically resize
+ * the areas dropping the border between.
+ *
+ * new qx.ui.splitpane.SplitPane(orientation)
+ * new qx.ui.splitpane.SplitPane(orientation, firstSize, secondSize)
+ *
+ * @param orientation {string} The orientation of the splitpane control. Allowed values are "horizontal" (default) and "vertical". This is the same type as used in {@link qx.ui.layout.BoxLayout#orientation}.
+ * @param firstSize {string} The size of the left (top) pane. Allowed values are any by {@link qx.ui.core.Widget} supported unit.
+ * @param secondSize {string} The size of the right (bottom) pane. Allowed values are any by {@link qx.ui.core.Widget} supported unit.
+ */
+qx.OO.defineClass("qx.ui.splitpane.SplitPane", qx.ui.layout.CanvasLayout,
+function(orientation, firstSize, secondSize)
+{
+  qx.ui.layout.CanvasLayout.call(this);
+
+  // CREATE INNER BOX LAYOUT
+  var box = this._box = new qx.ui.layout.BoxLayout;
+  box.setEdge(0);
+  this.add(box);
+
+  /*
+
+  the splitpane itself is a boxlayout resides on top of a canvas for easier computing of positional values
+
+  ---------------------------------------------------------------------------------------
+  |  canvas                                                                               |
+  |  -----------------------------------------------------------------------------------  |
+  | | box                                                                               | |
+  | | ---------------------------  ---  ----------------------------------------------- | |
+  | | |                         |  | |  |                                             | | |
+  | | | firstArea               |  |s|  | secondArea                                  | | |
+  | | |                         |  |p|  |                                             | | |
+  | | |                         |  |l|  |                                             | | |
+  | | |                         |  |i|  |                                             | | |
+  | | |                         |  |t|  |                                             | | |
+  | | |                         |  |t|  |                                             | | |
+  | | |                         |  |e|  |                                             | | |
+  | | |                         |  |r|  |                                             | | |
+  | | |                         |  | |  |                                             | | |
+  | | ---------------------------  ---  ----------------------------------------------- | |
+  |  -----------------------------------------------------------------------------------  |
+  |                                                                                       |
+  ---------------------------------------------------------------------------------------
+
+  */
+
+  // CREATE SLIDER
+  this._slider = new qx.ui.layout.CanvasLayout;
+  this._slider.setAppearance("splitpane-slider");
+  this._slider.setStyleProperty("fontSize", "0px");
+  this._slider.setStyleProperty("lineHeight", "0px");
+  this._slider.hide();
+  this._slider._pane = this;
+  this.add(this._slider);
+
+  // CREATE SPLITTER
+  this._splitter = new qx.ui.layout.CanvasLayout;
+  this._splitter.setStyleProperty("fontSize", "0px");
+  this._splitter.setStyleProperty("lineHeight", "0px");
+  this._splitter.setAppearance("splitpane-splitter");
+  this._splitter._pane = this;
+
+  // PATCH METHODS
+  this._slider._applyRuntimeLeft = this._splitter._applyRuntimeLeft = this._applyRuntimeLeftWrapper;
+  this._slider._applyRuntimeTop = this._splitter._applyRuntimeTop = this._applyRuntimeTopWrapper;
+
+  // CREATE KNOB
+  this._knob = new qx.ui.basic.Image;
+  this._knob.setAppearance("splitpane-knob");
+  this._knob.setVisibility(false);
+  this.add(this._knob);
+
+  // CREATE AREAS
+  this._firstArea = new qx.ui.layout.CanvasLayout;
+  this._secondArea = new qx.ui.layout.CanvasLayout;
+
+  // FILL BOX
+  box.add(this._firstArea, this._splitter, this._secondArea);
+
+  // APPLY DIMENSIONS
+  this.setFirstSize(firstSize || "1*");
+  this.setSecondSize(secondSize || "1*");
+
+  // APPLY ORIENTATION
+  this.setOrientation(orientation || "horizontal");
+});
+
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+ */
+
+/**
+ * Appearance change
+ */
+qx.OO.changeProperty({ name : "appearance", defaultValue : "splitpane" });
+
+/**
+ * Show the knob
+ */
+qx.OO.addProperty({ name : "showKnob", type : "boolean", allowNull : false, defaultValue : false });
+
+/**
+ * The layout method for the splitpane. If true, the content will updated immediatly.
+ */
+qx.OO.addProperty({ name : "liveResize", type : "boolean", allowNull : false, defaultValue : false, getAlias : "isLiveResize"});
+
+/**
+ * The orientation of the splitpane control. Allowed values are "horizontal" (default) and "vertical".
+ */
+qx.OO.addProperty({ name : "orientation", type : "string", possibleValues : [ "horizontal", "vertical" ] });
+
+/**
+ * The size of the first (left/top) area.
+ */
+qx.OO.addProperty({ name : "firstSize" });
+
+/**
+ * The size of the second (right/bottom) area.
+ */
+qx.OO.addProperty({ name : "secondSize" });
+
+/**
+ * Size of the splitter
+ */
+qx.OO.addProperty({ name : "splitterSize", defaultValue : 4 });
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PUBLIC METHODS
+---------------------------------------------------------------------------
+*/
+
+
+/**
+ * adds one or more widget(s) to the left pane
+ *
+ *@param widget (qx.ui.core.Parent)
+ */
+qx.Proto.addLeft = function() {
+  var c = this.getFirstArea();
+  return c.add.apply(c, arguments);
+}
+
+/**
+ * adds one or more widget(s) to the top pane
+ *
+ *@param widget (qx.ui.core.Parent)
+ */
+qx.Proto.addTop = function() {
+  var c = this.getFirstArea();
+  return c.add.apply(c, arguments);
+}
+
+/**
+ * adds one or more widget(s) to the right pane
+ *
+ *@param widget (qx.ui.core.Parent)
+ */
+qx.Proto.addRight = function() {
+  var c = this.getSecondArea();
+  return c.add.apply(c, arguments);
+}
+
+/**
+ * adds one or more widget(s) to the bottom pane
+ *
+ *@param widget (qx.ui.core.Parent)
+ */
+qx.Proto.addBottom = function() {
+  var c = this.getSecondArea();
+  return c.add.apply(c, arguments);
+}
+
+/**
+ * Returns the splitter.
+ *
+ * @return {qx.ui.core.Widget} The splitter.
+ */
+qx.Proto.getSplitter = function() {
+  return this._splitter;
+}
+
+/**
+ * Returns the knob.
+ *
+ * @return {qx.ui.core.Widget} The knob.
+ */
+qx.Proto.getKnob = function() {
+  return this._knob;
+}
+
+
+
+
+
+
+/**
+ * Returns the left area (CanvasLayout)
+ *
+ * @return {qx.ui.layout.CanvasLayout}
+ */
+qx.Proto.getLeftArea = function() {
+  return this.getFirstArea();
+}
+
+/**
+ * Returns the top area (CanvasLayout)
+ *
+ * @return {qx.ui.layout.CanvasLayout}
+ */
+qx.Proto.getTopArea = function() {
+  return this.getFirstArea();
+}
+
+/**
+ * Returns the right area (CanvasLayout)
+ *
+ * @return {qx.ui.layout.CanvasLayout}
+ */
+qx.Proto.getRightArea = function() {
+  return this.getSecondArea();
+}
+
+/**
+ * Returns the bottom area (CanvasLayout)
+ *
+ * @return {qx.ui.layout.CanvasLayout}
+ */
+qx.Proto.getBottomArea = function() {
+  return this.getSecondArea();
+}
+
+/**
+ * Returns the first area (CanvasLayout)
+ *
+ * @return {qx.ui.layout.CanvasLayout}
+ */
+qx.Proto.getFirstArea = function() {
+  return this._firstArea;
+}
+
+/**
+ * Returns the second area (CanvasLayout)
+ *
+ * @return {qx.ui.layout.CanvasLayout}
+ */
+qx.Proto.getSecondArea = function() {
+  return this._secondArea;
+}
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyShowKnob = function(propValue, propOldValue, propData)
+{
+  this._knob.setVisibility(propValue);
+  return true;
+}
+
+qx.Proto._modifyOrientation = function(propValue, propOldValue, propData)
+{
+  // sync orientation to layout
+  this._box.setOrientation(propValue);
+
+  switch(propOldValue)
+  {
+    case "horizontal":
+      // remove old listeners
+      this._splitter.removeEventListener("mousedown", this._onSplitterMouseDownX, this);
+      this._splitter.removeEventListener("mousemove", this._onSplitterMouseMoveX, this);
+      this._splitter.removeEventListener("mouseup", this._onSplitterMouseUpX, this);
+      this._knob.removeEventListener("mousedown", this._onSplitterMouseDownX, this);
+      this._knob.removeEventListener("mousemove", this._onSplitterMouseMoveX, this);
+      this._knob.removeEventListener("mouseup", this._onSplitterMouseUpX, this);
+
+      // reconfigure states
+      this._splitter.removeState("horizontal");
+      this._knob.removeState("horizontal");
+
+      // reset old dimensions
+      this._firstArea.setWidth(null);
+      this._secondArea.setWidth(null);
+      this._splitter.setWidth(null);
+
+      break;
+
+    case "vertical":
+      // remove old listeners
+      this._splitter.removeEventListener("mousedown", this._onSplitterMouseDownY, this);
+      this._splitter.removeEventListener("mousemove", this._onSplitterMouseMoveY, this);
+      this._splitter.removeEventListener("mouseup", this._onSplitterMouseUpY, this);
+      this._knob.removeEventListener("mousedown", this._onSplitterMouseDownY, this);
+      this._knob.removeEventListener("mousemove", this._onSplitterMouseMoveY, this);
+      this._knob.removeEventListener("mouseup", this._onSplitterMouseUpY, this);
+
+      // reconfigure states
+      this._splitter.removeState("vertical");
+      this._knob.removeState("vertical");
+
+      // reset old dimensions
+      this._firstArea.setHeight(null);
+      this._secondArea.setHeight(null);
+      this._splitter.setHeight(null);
+
+      break;
+  }
+
+  switch(propValue)
+  {
+    case "horizontal":
+      // add new listeners
+      this._splitter.addEventListener("mousemove", this._onSplitterMouseMoveX, this);
+      this._splitter.addEventListener("mousedown", this._onSplitterMouseDownX, this);
+      this._splitter.addEventListener("mouseup", this._onSplitterMouseUpX, this);
+      this._knob.addEventListener("mousemove", this._onSplitterMouseMoveX, this);
+      this._knob.addEventListener("mousedown", this._onSplitterMouseDownX, this);
+      this._knob.addEventListener("mouseup", this._onSplitterMouseUpX, this);
+
+      // reconfigure states
+      this._splitter.addState("horizontal");
+      this._knob.addState("horizontal");
+
+      // apply images
+      this._knob.setSource("widget/splitpane/knob-horizontal.png");
+
+      break;
+
+    case "vertical":
+      // add new listeners
+      this._splitter.addEventListener("mousedown", this._onSplitterMouseDownY, this);
+      this._splitter.addEventListener("mousemove", this._onSplitterMouseMoveY, this);
+      this._splitter.addEventListener("mouseup", this._onSplitterMouseUpY, this);
+      this._knob.addEventListener("mousedown", this._onSplitterMouseDownY, this);
+      this._knob.addEventListener("mousemove", this._onSplitterMouseMoveY, this);
+      this._knob.addEventListener("mouseup", this._onSplitterMouseUpY, this);
+
+      // reconfigure states
+      this._splitter.addState("vertical");
+      this._knob.addState("vertical");
+
+      // apply images
+      this._knob.setSource("widget/splitpane/knob-vertical.png");
+
+      break;
+  }
+
+  // apply new dimensions
+  this._syncFirstSize();
+  this._syncSecondSize();
+  this._syncSplitterSize();
+
+  return true;
+};
+
+qx.Proto._modifyFirstSize = function(propValue, propOldValue, propData)
+{
+  this._syncFirstSize();
+  return true;
+}
+
+qx.Proto._modifySecondSize = function(propValue, propOldValue, propData)
+{
+  this._syncSecondSize();
+  return true;
+}
+
+qx.Proto._modifySplitterSize = function(propValue, propOldValue, propData)
+{
+  this._syncSplitterSize();
+  return true;
+}
+
+qx.Proto._syncFirstSize = function()
+{
+  switch(this.getOrientation())
+  {
+    case "horizontal":
+      this._firstArea.setWidth(this.getFirstSize());
+      break;
+
+    case "vertical":
+      this._firstArea.setHeight(this.getFirstSize());
+      break;
+  }
+}
+
+qx.Proto._syncSecondSize = function()
+{
+  switch(this.getOrientation())
+  {
+    case "horizontal":
+      this._secondArea.setWidth(this.getSecondSize());
+      break;
+
+    case "vertical":
+      this._secondArea.setHeight(this.getSecondSize());
+      break;
+  }
+}
+
+qx.Proto._syncSplitterSize = function()
+{
+  switch(this.getOrientation())
+  {
+    case "horizontal":
+      this._splitter.setWidth(this.getSplitterSize());
+      break;
+
+    case "vertical":
+      this._splitter.setHeight(this.getSplitterSize());
+      break;
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENTS
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Initializes drag session in case of a mousedown event on splitter in a horizontal splitpane.
+ *
+ * @param e {qx.event.MouseEvent} The event itself.
+ */
+qx.Proto._onSplitterMouseDownX = function(e)
+{
+  if (!e.isLeftButtonPressed()) {
+    return;
+  }
+
+  this._commonMouseDown();
+
+  // activate global cursor
+  this.getTopLevelWidget().setGlobalCursor("col-resize");
+  this._slider.addState("dragging");
+  this._knob.addState("dragging");
+
+  // initialize the drag session
+  this._dragMin = qx.dom.Location.getPageInnerLeft(this._box.getElement());
+  this._dragMax = this._dragMin + this._box.getInnerWidth() - this._splitter.getBoxWidth();
+  this._dragOffset = e.getPageX() - qx.dom.Location.getPageBoxLeft(this._splitter.getElement());
+}
+
+/**
+ * Initializes drag session in case of a mousedown event on splitter in a vertical splitpane.
+ *
+ * @param e {qx.event.MouseEvent} The event itself.
+ */
+qx.Proto._onSplitterMouseDownY = function(e)
+{
+  if (!e.isLeftButtonPressed()) {
+    return;
+  }
+
+  this._commonMouseDown();
+
+  // activate global cursor
+  this.getTopLevelWidget().setGlobalCursor("row-resize");
+  this._slider.addState("dragging");
+  this._knob.addState("dragging");
+
+  // initialize the drag session
+  // dragStart = position of layout + mouse offset on splitter
+  this._dragMin = qx.dom.Location.getPageInnerTop(this._box.getElement());
+  this._dragMax = this._dragMin + this._box.getInnerHeight() - this._splitter.getBoxHeight();
+  this._dragOffset = e.getPageY() - qx.dom.Location.getPageBoxTop(this._splitter.getElement());
+}
+
+qx.Proto._commonMouseDown = function()
+{
+  // enable capturing
+  this._splitter.setCapture(true);
+
+  // initialize the slider
+  if(!this.isLiveResize())
+  {
+    this._slider.setLeft(this._splitter.getOffsetLeft());
+    this._slider.setTop(this._splitter.getOffsetTop());
+    this._slider.setWidth(this._splitter.getBoxWidth());
+    this._slider.setHeight(this._splitter.getBoxHeight());
+
+    this._slider.show();
+  }
+}
+
+
+
+
+
+
+
+
+/**
+ * Move the splitter in case of a mousemove event on splitter in a horizontal splitpane.
+ *
+ * @param e {qx.event.MouseEvent} The event itself.
+ */
+qx.Proto._onSplitterMouseMoveX = function(e)
+{
+  if (!this._splitter.getCapture()) {
+    return;
+  }
+
+  this.isLiveResize() ? this._syncX(e) : this._slider._applyRuntimeLeft(this._normalizeX(e));
+  e.preventDefault();
+}
+
+/**
+ * Move the splitter in case of a mousemove event on splitter in a vertical splitpane.
+ *
+ * @param e {qx.event.MouseEvent} The event itself.
+ */
+qx.Proto._onSplitterMouseMoveY = function(e)
+{
+  if (!this._splitter.getCapture()) {
+    return;
+  }
+
+  this.isLiveResize() ? this._syncY(e) : this._slider._applyRuntimeTop(this._normalizeY(e));
+  e.preventDefault();
+}
+
+
+
+
+
+
+
+/**
+ * Ends the drag session and computes the new dimensions of panes in case of a mouseup event on splitter in a horizontal splitpane.
+ *
+ * @param e {qx.event.MouseEvent} The event itself.
+ */
+qx.Proto._onSplitterMouseUpX = function(e)
+{
+  if (!this._splitter.getCapture()) {
+    return;
+  }
+
+  if(!this.isLiveResize()) {
+    this._syncX(e);
+  }
+
+  this._commonMouseUp();
+}
+
+/**
+ * Ends the drag session and computes the new dimensions of panes in case of a mouseup event on splitter in a vertical splitpane.
+ *
+ * @param e {qx.event.MouseEvent} The event itself.
+ */
+qx.Proto._onSplitterMouseUpY = function(e)
+{
+  if (!this._splitter.getCapture()) {
+    return;
+  }
+
+  if(!this.isLiveResize()) {
+    this._syncY(e);
+  }
+
+  this._commonMouseUp();
+}
+
+qx.Proto._commonMouseUp = function()
+{
+  // hide helpers
+  this._slider.hide();
+
+  // disable capturing
+  this._splitter.setCapture(false);
+
+  // reset the global cursor
+  this.getTopLevelWidget().setGlobalCursor(null);
+
+  // cleanup dragsession
+  this._slider.removeState("dragging");
+  this._knob.removeState("dragging");
+}
+
+qx.Proto._syncX = function(e)
+{
+  var first = this._normalizeX(e);
+  var second = this._box.getInnerWidth() - this._splitter.getBoxWidth() - first;
+
+  this._syncCommon(first, second);
+}
+
+qx.Proto._syncY = function(e)
+{
+  var first = this._normalizeY(e);
+  var second = this._box.getInnerHeight() - this._splitter.getBoxHeight() - first;
+
+  this._syncCommon(first, second);
+}
+
+qx.Proto._syncCommon = function(first, second)
+{
+  this.setFirstSize(first + "*");
+  this.setSecondSize(second + "*");
+}
+
+qx.Proto._normalizeX = function(e) {
+  return qx.lang.Number.limit(e.getPageX() - this._dragOffset, this._dragMin, this._dragMax) - this._dragMin;
+}
+
+qx.Proto._normalizeY = function(e) {
+  return qx.lang.Number.limit(e.getPageY() - this._dragOffset, this._dragMin, this._dragMax) - this._dragMin;
+}
+
+qx.Proto._applyRuntimeLeftWrapper = function(v)
+{
+  if (this._pane.getOrientation() == "horizontal") {
+    this._pane._knob._applyRuntimeLeft(v);
+  }
+
+  return this.constructor.prototype._applyRuntimeLeft.call(this, v);
+}
+
+qx.Proto._applyRuntimeTopWrapper = function(v)
+{
+  if (this._pane.getOrientation() == "vertical") {
+    this._pane._knob._applyRuntimeTop(v);
+  }
+
+  return this.constructor.prototype._applyRuntimeTop.call(this, v);
+}
+
+
+
+
+
+/*
+------------------------------------------------------------------------------------
+  DISPOSER
+------------------------------------------------------------------------------------
+ */
+
+/**
+ * Garbage collection
+ */
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if(this._firstArea)
+  {
+    this._firstArea.dispose();
+    this._firstArea = null;
+  }
+
+  if(this._secondArea)
+  {
+    this._secondArea.dispose();
+    this._secondArea = null;
+  }
+
+  if (this._splitter)
+  {
+    this._splitter.removeEventListener("mousedown", this._onSplitterMouseDownX, this);
+    this._splitter.removeEventListener("mouseup", this._onSplitterMouseMoveX, this);
+    this._splitter.removeEventListener("mousemove", this._onSplitterMouseUpX, this);
+
+    this._splitter.removeEventListener("mousedown", this._onSplitterMouseDownY, this);
+    this._splitter.removeEventListener("mouseup", this._onSplitterMouseMoveY, this);
+    this._splitter.removeEventListener("mousemove", this._onSplitterMouseUpY, this);
+
+    this._splitter.dispose();
+    this._splitter._pane = null;
+    this._splitter = null;
+  }
+
+  if (this._slider)
+  {
+    this._slider.dispose();
+    this._slider._pane = null;
+    this._slider = null;
+  }
+
+  if (this._knob)
+  {
+    this._knob.removeEventListener("mousedown", this._onSplitterMouseDownX, this);
+    this._knob.removeEventListener("mouseup", this._onSplitterMouseMoveX, this);
+    this._knob.removeEventListener("mousemove", this._onSplitterMouseUpX, this);
+
+    this._knob.removeEventListener("mousedown", this._onSplitterMouseDownY, this);
+    this._knob.removeEventListener("mouseup", this._onSplitterMouseMoveY, this);
+    this._knob.removeEventListener("mousemove", this._onSplitterMouseUpY, this);
+
+    this._knob.dispose();
+    this._knob = null;
+  }
+
+  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/splitpane/VerticalSplitPane.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/splitpane/VerticalSplitPane.js
new file mode 100644 (file)
index 0000000..7620148
--- /dev/null
@@ -0,0 +1,58 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Volker Pauli
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_splitpane)
+
+************************************************************************ */
+
+/**
+ *
+ * Creates a new instance of a vertical SplitPane.<br /><br />
+ *
+ * new qx.ui.splitpane.VerticalSplitPane()<br />
+ * new qx.ui.splitpane.VerticalSplitPane(firstSize, secondSize)
+ *
+ * @param firstSize {string} The size of the top pane. Allowed values are any by {@see qx.ui.core.Widget} supported unit.
+ * @param secondSize {string} The size of the bottom pane. Allowed values are any by {@see qx.ui.core.Widget} supported unit.
+ */
+qx.OO.defineClass("qx.ui.splitpane.VerticalSplitPane", qx.ui.splitpane.SplitPane,
+function(firstSize, secondSize) {
+  qx.ui.splitpane.SplitPane.call(this, "vertical", firstSize, secondSize);
+});
+
+
+
+
+
+/*
+------------------------------------------------------------------------------------
+  DISPOSER
+------------------------------------------------------------------------------------
+ */
+
+/**
+ * Garbage collection
+ */
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  return qx.ui.splitpane.SplitPane.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/AbstractDataCellRenderer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/AbstractDataCellRenderer.js
new file mode 100644 (file)
index 0000000..d3d7950
--- /dev/null
@@ -0,0 +1,127 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * An abstract data cell renderer that does the basic coloring
+ * (borders, selected look, ...).
+ */
+qx.OO.defineClass("qx.ui.table.AbstractDataCellRenderer", qx.ui.table.DataCellRenderer,
+function() {
+  qx.ui.table.DataCellRenderer.call(this);
+});
+
+
+// overridden
+qx.Proto.createDataCellHtml = function(cellInfo) {
+  var AbstractDataCellRenderer = qx.ui.table.AbstractDataCellRenderer;
+  return AbstractDataCellRenderer.MAIN_DIV_START + this._getCellStyle(cellInfo)
+    + AbstractDataCellRenderer.MAIN_DIV_START_END
+    + this._getContentHtml(cellInfo) + AbstractDataCellRenderer.MAIN_DIV_END;
+}
+
+
+// overridden
+qx.Proto.updateDataCellElement = function(cellInfo, cellElement) {
+  cellElement.innerHTML = this._getContentHtml(cellInfo);
+}
+
+
+/**
+ * Returns the CSS styles that should be applied to the main div of this cell.
+ *
+ * @param cellInfo {Map} The information about the cell.
+ *        See {@link #createDataCellHtml}.
+ * @return the CSS styles of the main div.
+ */
+qx.Proto._getCellStyle = function(cellInfo) {
+  return cellInfo.style + qx.ui.table.AbstractDataCellRenderer.MAIN_DIV_STYLE;
+}
+
+
+/**
+ * Returns the HTML that should be used inside the main div of this cell.
+ *
+ * @param cellInfo {Map} The information about the cell.
+ *        See {@link #createDataCellHtml}.
+ * @return {string} the inner HTML of the main div.
+ */
+qx.Proto._getContentHtml = function(cellInfo) {
+  return cellInfo.value;
+}
+
+
+qx.Proto.createDataCellHtml_array_join = function(cellInfo, htmlArr) {
+  var AbstractDataCellRenderer = qx.ui.table.AbstractDataCellRenderer;
+
+  if (qx.ui.table.TablePane.USE_TABLE) {
+    htmlArr.push(AbstractDataCellRenderer.TABLE_TD);
+    htmlArr.push(cellInfo.styleHeight);
+    htmlArr.push("px");
+  } else {
+    htmlArr.push(AbstractDataCellRenderer.ARRAY_JOIN_MAIN_DIV_LEFT);
+    htmlArr.push(cellInfo.styleLeft);
+    htmlArr.push(AbstractDataCellRenderer.ARRAY_JOIN_MAIN_DIV_WIDTH);
+    htmlArr.push(cellInfo.styleWidth);
+    htmlArr.push(AbstractDataCellRenderer.ARRAY_JOIN_MAIN_DIV_HEIGHT);
+    htmlArr.push(cellInfo.styleHeight);
+    htmlArr.push("px");
+  }
+
+  this._createCellStyle_array_join(cellInfo, htmlArr);
+
+  htmlArr.push(AbstractDataCellRenderer.ARRAY_JOIN_MAIN_DIV_START_END);
+
+  this._createContentHtml_array_join(cellInfo, htmlArr);
+
+  if (qx.ui.table.TablePane.USE_TABLE) {
+    htmlArr.push(AbstractDataCellRenderer.TABLE_TD_END);
+  } else {
+    htmlArr.push(AbstractDataCellRenderer.ARRAY_JOIN_MAIN_DIV_END);
+  }
+}
+
+
+qx.Proto._createCellStyle_array_join = function(cellInfo, htmlArr) {
+  htmlArr.push(qx.ui.table.AbstractDataCellRenderer.MAIN_DIV_STYLE);
+}
+
+
+qx.Proto._createContentHtml_array_join = function(cellInfo, htmlArr) {
+  htmlArr.push(cellInfo.value);
+}
+
+
+qx.Class.MAIN_DIV_START = '<div style="';
+qx.Class.MAIN_DIV_START_END = '">';
+qx.Class.MAIN_DIV_END = '</div>';
+qx.Class.MAIN_DIV_STYLE = ';overflow:hidden;white-space:nowrap;border-right:1px solid #eeeeee;border-bottom:1px solid #eeeeee;padding-left:2px;padding-right:2px;cursor:default'
+  + (qx.sys.Client.getInstance().isMshtml() ? '' : ';-moz-user-select:none;');
+
+qx.Class.ARRAY_JOIN_MAIN_DIV_LEFT = '<div style="position:absolute;left:';
+qx.Class.ARRAY_JOIN_MAIN_DIV_WIDTH = 'px;top:0px;width:';
+qx.Class.ARRAY_JOIN_MAIN_DIV_HEIGHT = 'px;height:';
+qx.Class.ARRAY_JOIN_MAIN_DIV_START_END = '">';
+qx.Class.ARRAY_JOIN_MAIN_DIV_END = '</div>';
+
+qx.Class.TABLE_TD = '<td style="height:';
+qx.Class.TABLE_TD_END = '</td>';
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/AbstractTableModel.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/AbstractTableModel.js
new file mode 100644 (file)
index 0000000..99470e9
--- /dev/null
@@ -0,0 +1,150 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * An abstract table model that performs the column handling, so subclasses only
+ * need to care for row handling.
+ */
+qx.OO.defineClass("qx.ui.table.AbstractTableModel", qx.ui.table.TableModel,
+function() {
+  qx.ui.table.TableModel.call(this);
+
+  this._columnIdArr = [];
+  this._columnNameArr = [];
+  this._columnIndexMap = {};
+});
+
+
+// overridden
+qx.Proto.getColumnCount = function() {
+  return this._columnIdArr.length;
+}
+
+
+// overridden
+qx.Proto.getColumnIndexById = function(columnId) {
+  return this._columnIndexMap[columnId];
+}
+
+
+// overridden
+qx.Proto.getColumnId = function(columnIndex) {
+  return this._columnIdArr[columnIndex];
+}
+
+
+// overridden
+qx.Proto.getColumnName = function(columnIndex) {
+  return this._columnNameArr[columnIndex];
+}
+
+
+/**
+ * Sets the column IDs. These IDs may be used internally to identify a column.
+ * <p>
+ * Note: This will clear previously set column names.
+ * </p>
+ *
+ * @param columnIdArr {string[]} the IDs of the columns.
+ * @see #setColumns
+ */
+qx.Proto.setColumnIds = function(columnIdArr) {
+  this._columnIdArr = columnIdArr;
+
+  // Create the reverse map
+  this._columnIndexMap = {};
+  for (var i = 0; i < columnIdArr.length; i++) {
+    this._columnIndexMap[columnIdArr[i]] = i;
+  }
+  this._columnNameArr = new Array(columnIdArr.length);
+
+  // Inform the listeners
+  if (!this._internalChange) {
+    this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
+  }
+}
+
+
+/**
+ * Sets the column names. These names will be shown to the user.
+ * <p>
+ * Note: The column IDs have to be defined before.
+ * </p>
+ *
+ * @param columnNameArr {string[]} the names of the columns.
+ * @see #setColumnIds
+ */
+qx.Proto.setColumnNamesByIndex = function(columnNameArr) {
+  if (this._columnIdArr.length != columnNameArr.length) {
+    throw new Error("this._columnIdArr and columnNameArr have different length: "
+      + this._columnIdArr.length + " != " + columnNameArr.length);
+  }
+  this._columnNameArr = columnNameArr;
+
+  // Inform the listeners
+  this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
+}
+
+
+/**
+ * Sets the column names. These names will be shown to the user.
+ * <p>
+ * Note: The column IDs have to be defined before.
+ * </p>
+ *
+ * @param columnNameMap {Map} a map containing the column IDs as keys and the
+ *        column name as values.
+ * @see #setColumnIds
+ */
+qx.Proto.setColumnNamesById = function(columnNameMap) {
+  this._columnNameArr = new Array(this._columnIdArr.length);
+  for (var i = 0; i < this._columnIdArr.length; ++i) {
+    this._columnNameArr[i] = columnNameMap[this._columnIdArr[i]];
+  }
+}
+
+
+/**
+ * Sets the columns.
+ *
+ * @param columnNameArr {string[]} The column names. These names will be shown to
+ *        the user.
+ * @param columnIdArr {string[] ? null} The column IDs. These IDs may be used
+ *        internally to identify a column. If null, the column names are used as
+ *        IDs.
+ */
+qx.Proto.setColumns = function(columnNameArr, columnIdArr) {
+  if (columnIdArr == null) {
+    columnIdArr = columnNameArr;
+  }
+
+  if (columnIdArr.length != columnNameArr.length) {
+    throw new Error("columnIdArr and columnNameArr have different length: "
+      + columnIdArr.length + " != " + columnNameArr.length);
+  }
+
+  this._internalChange = true;
+  this.setColumnIds(columnIdArr);
+  this._internalChange = false;
+  this.setColumnNamesByIndex(columnNameArr);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/BooleanDataCellRenderer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/BooleanDataCellRenderer.js
new file mode 100644 (file)
index 0000000..13df2cd
--- /dev/null
@@ -0,0 +1,48 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+     * Carsten Lergenmueller (carstenl)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * A data cell renderer for boolean values.
+ */
+qx.OO.defineClass("qx.ui.table.BooleanDataCellRenderer", qx.ui.table.IconDataCellRenderer,
+function() {
+  qx.ui.table.IconDataCellRenderer.call(this);
+
+  this._iconUrlTrue  = qx.manager.object.AliasManager.getInstance().resolvePath("widget/table/boolean-true.png");
+  this._iconUrlFalse = qx.manager.object.AliasManager.getInstance().resolvePath("widget/table/boolean-false.png");
+  this._iconUrlNull  = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
+
+});
+
+//overridden
+qx.Proto._identifyImage = function(cellInfo) {
+  var IconDataCellRenderer = qx.ui.table.IconDataCellRenderer;
+  var imageHints = { imageWidth:11, imageHeight:11 };
+  switch (cellInfo.value) {
+    case true:  imageHints.url = this._iconUrlTrue;  break;
+    case false: imageHints.url = this._iconUrlFalse; break;
+    default:    imageHints.url = this._iconUrlNull;  break;
+  }
+  return imageHints;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/CellEditorFactory.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/CellEditorFactory.js
new file mode 100644 (file)
index 0000000..817954f
--- /dev/null
@@ -0,0 +1,62 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * A factory creating widgets to use for editing table cells.
+ */
+qx.OO.defineClass("qx.ui.table.CellEditorFactory", qx.core.Object,
+function() {
+  qx.core.Object.call(this);
+});
+
+
+/**
+ * Creates a cell editor.
+ * <p>
+ * The cellInfo map contains the following properties:
+ * <ul>
+ * <li>value (var): the cell's value.</li>
+ * <li>row (int): the model index of the row the cell belongs to.</li>
+ * <li>col (int): the model index of the column the cell belongs to.</li>
+ * <li>xPos (int): the x position of the cell in the table pane.</li>
+ * </ul>
+ *
+ * @param cellInfo {Map} A map containing the information about the cell to
+ *    create.
+ * @return {qx.ui.core.Widget} the widget that should be used as cell editor.
+ */
+qx.Proto.createCellEditor = function(cellInfo) {
+  throw new Error("createCellEditor is abstract");
+}
+
+
+/**
+ * Returns the current value of a cell editor.
+ *
+ * @param cellEditor {qx.ui.core.Widget} The cell editor formally created by
+ *    {@link #createCellEditor}.
+ * @return {var} the current value from the editor.
+ */
+qx.Proto.getCellEditorValue = function(cellEditor) {
+  throw new Error("getCellEditorValue is abstract");
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/CheckBoxCellEditorFactory.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/CheckBoxCellEditorFactory.js
new file mode 100644 (file)
index 0000000..d5609a4
--- /dev/null
@@ -0,0 +1,43 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by David Perez
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * David Perez (david-perez)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * For editing boolean data in a checkbox.  It is advisable to use this in conjuntion with BooleanDataCellRenderer.
+ */
+qx.OO.defineClass("qx.ui.table.CheckBoxCellEditorFactory", qx.ui.table.CellEditorFactory, function() {
+  qx.ui.table.CellEditorFactory.call(this);
+});
+
+// overridden
+qx.Proto.createCellEditor = function(cellInfo) {
+  var editor = new qx.ui.form.CheckBox;
+  with (editor) {
+    setChecked(cellInfo.value);
+  }
+  return editor;
+}
+
+// overridden
+qx.Proto.getCellEditorValue = function(cellEditor) {
+   return cellEditor.getChecked();
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DataCellRenderer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DataCellRenderer.js
new file mode 100644 (file)
index 0000000..46f808d
--- /dev/null
@@ -0,0 +1,80 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * A cell renderer for data cells.
+ */
+qx.OO.defineClass("qx.ui.table.DataCellRenderer", qx.core.Object,
+function() {
+  qx.core.Object.call(this);
+});
+
+
+/**
+ * Creates the HTML for a data cell.
+ * <p>
+ * The cellInfo map contains the following properties:
+ * <ul>
+ * <li>value (var): the cell's value.</li>
+ * <li>rowData (var): contains the row data for the row, the cell belongs to.
+ *   The kind of this object depends on the table model, see
+ *   {@link TableModel#getRowData()}</li>
+ * <li>row (int): the model index of the row the cell belongs to.</li>
+ * <li>col (int): the model index of the column the cell belongs to.</li>
+ * <li>table (qx.ui.table.Table): the table the cell belongs to.</li>
+ * <li>xPos (int): the x position of the cell in the table pane.</li>
+ * <li>selected (boolean): whether the cell is selected.</li>
+ * <li>focusedCol (boolean): whether the cell is in the same column as the
+ *   focused cell.</li>
+ * <li>focusedRow (boolean): whether the cell is in the same row as the
+ *   focused cell.</li>
+ * <li>editable (boolean): whether the cell is editable.</li>
+ * <li>style (string): The CSS styles that should be applied to the outer HTML
+ *   element.</li>
+ * </ul>
+ *
+ * @param cellInfo {Map} A map containing the information about the cell to
+ *    create.
+ * @return {string} the HTML of the data cell.
+ */
+qx.Proto.createDataCellHtml = function(cellInfo) {
+  throw new Error("createDataCellHtml is abstract");
+}
+
+
+/**
+ * Updates a data cell.
+ *
+ * @param cellInfo {Map} A map containing the information about the cell to
+ *    create. This map has the same structure as in {@link #createDataCell}.
+ * @param cellElement {element} the DOM element that renders the data cell. This
+ *    is the same element formally created by the HTML from {@link #createDataCell}.
+ */
+qx.Proto.updateDataCellElement = function(cellInfo, cellElement) {
+  throw new Error("updateDataCellElement is abstract");
+}
+
+
+qx.Proto.createDataCellHtml_array_join = function(cellInfo, htmlArr) {
+  throw new Error("createDataCellHtml_array_join is abstract");
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DataRowRenderer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DataRowRenderer.js
new file mode 100644 (file)
index 0000000..9cd4c86
--- /dev/null
@@ -0,0 +1,54 @@
+/* ************************************************************************\r
+\r
+   qooxdoo - the new era of web development\r
+\r
+   http://qooxdoo.org\r
+\r
+   Copyright:\r
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de\r
+\r
+   License:\r
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html\r
+\r
+   Authors:\r
+     * Til Schneider (til132)\r
+\r
+************************************************************************ */\r
+\r
+/* ************************************************************************\r
+\r
+#module(ui_table)\r
+\r
+************************************************************************ */\r
+\r
+/**\r
+ * A cell renderer for data rows.\r
+ */\r
+qx.OO.defineClass("qx.ui.table.DataRowRenderer", qx.core.Object,\r
+function() {\r
+  qx.core.Object.call(this);\r
+});\r
+\r
+\r
+/**\r
+ * Updates a data row.\r
+ * <p>\r
+ * The rowInfo map contains the following properties:\r
+ * <ul>\r
+ * <li>rowData (var): contains the row data for the row.\r
+ *   The kind of this object depends on the table model, see\r
+ *   {@link TableModel#getRowData()}</li>\r
+ * <li>row (int): the model index of the row.</li>\r
+ * <li>selected (boolean): whether a cell in this row is selected.</li>\r
+ * <li>focusedRow (boolean): whether the focused cell is in this row.</li>\r
+ * <li>table (qx.ui.table.Table): the table the row belongs to.</li>\r
+ * </ul>\r
+ *\r
+ * @param rowInfo {Map} A map containing the information about the row to\r
+ *    update. This map has the same structure as in {@link #createDataCell}.\r
+ * @param cellElement {element} the DOM element that renders the data rot. This\r
+ *    is the same element formally created by the HTML from {@link #createDataCell}.\r
+ */\r
+qx.Proto.updateDataRowElement = function(rowInfo, rowElement) {\r
+  throw new Error("updateDataRowElement is abstract");\r
+}\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DefaultDataCellRenderer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DefaultDataCellRenderer.js
new file mode 100644 (file)
index 0000000..4de4341
--- /dev/null
@@ -0,0 +1,189 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+// This is needed because of the instantiation at the end of this file.
+// I don't think this is a good idea. (wpbasti)
+#require(qx.util.format.NumberFormat)
+
+************************************************************************ */
+
+/**
+ * The default data cell renderer.
+ */
+qx.OO.defineClass("qx.ui.table.DefaultDataCellRenderer", qx.ui.table.AbstractDataCellRenderer,
+function() {
+  qx.ui.table.AbstractDataCellRenderer.call(this);
+});
+
+
+/**
+ * Whether the alignment should automatically be set according to the cell value.
+ * If true numbers will be right-aligned.
+ */
+qx.OO.addProperty({ name:"useAutoAlign", type:"boolean", defaultValue:true, allowNull:false });
+
+
+// overridden
+qx.Proto._getCellStyle = function(cellInfo) {
+  var style = qx.ui.table.AbstractDataCellRenderer.prototype._getCellStyle(cellInfo);
+
+  var stylesToApply = this._getStyleFlags(cellInfo);
+  if (stylesToApply & qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_ALIGN_RIGHT){
+    style += ";text-align:right";
+  }
+  if (stylesToApply & qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_BOLD){
+    style += ";font-weight:bold";
+  }
+  if (stylesToApply & qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_ITALIC){
+    style += ";font-style:italic";
+  }
+
+  return style;
+}
+
+/**
+ * Determines the styles to apply to the cell
+ *
+ * @param cellInfo {Object} cellInfo of the cell
+ * @return the sum of any of the STYLEFLAGS defined below
+ */
+qx.Proto._getStyleFlags = function(cellInfo) {
+  if (this.getUseAutoAlign()) {
+    if (typeof cellInfo.value == "number") {
+      return qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_ALIGN_RIGHT;
+    }
+  }
+}
+
+
+// overridden
+qx.Proto._getContentHtml = function(cellInfo) {
+  return qx.ui.table.DefaultDataCellRenderer.escapeHtml(this._formatValue(cellInfo));
+}
+
+
+// overridden
+qx.Proto.updateDataCellElement = function(cellInfo, cellElement) {
+  var style = qx.ui.table.AbstractDataCellRenderer.prototype._getCellStyle(cellInfo);
+
+  var stylesToApply = this._getStyleFlags(cellInfo);
+  if (stylesToApply & qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_ALIGN_RIGHT){
+    cellElement.style.textAlign = "right";
+  } else {
+    cellElement.style.textAlign = "";
+  }
+
+  if (stylesToApply & qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_BOLD){
+    cellElement.style.fontWeight = "bold";
+  } else {
+    cellElement.style.fontWeight = "";
+  }
+
+  if (stylesToApply & qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_ITALIC){
+    cellElement.style.fontStyle = "ital";
+  } else {
+    cellElement.style.fontStyle = "";
+  }
+
+  var textNode = cellElement.firstChild;
+  if (textNode != null) {
+    textNode.nodeValue = this._formatValue(cellInfo);
+  } else {
+    cellElement.innerHTML = qx.ui.table.DefaultDataCellRenderer.escapeHtml(this._formatValue(cellInfo));
+  }
+}
+
+
+/**
+ * Formats a value.
+ *
+ * @param cellInfo {Map} A map containing the information about the cell to
+ *        create. This map has the same structure as in
+ *        {@link DataCellRenderer#createDataCell}.
+ * @return {string} the formatted value.
+ */
+qx.Proto._formatValue = function(cellInfo) {
+  var value = cellInfo.value;
+  if (value == null) {
+    return "";
+  } else if (typeof value == "number") {
+    return qx.ui.table.DefaultDataCellRenderer._numberFormat.format(value);
+  } else if (value instanceof Date) {
+    return qx.util.format.DateFormat.getDateInstance().format(value);
+  } else {
+    return value;
+  }
+}
+
+
+qx.Proto._createCellStyle_array_join = function(cellInfo, htmlArr) {
+  qx.ui.table.AbstractDataCellRenderer.prototype._createCellStyle_array_join(cellInfo, htmlArr);
+
+  var stylesToApply = this._getStyleFlags(cellInfo);
+  if (stylesToApply & qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_ALIGN_RIGHT){
+    htmlArr.push(";text-align:right");
+  }
+  if (stylesToApply & qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_BOLD){
+    htmlArr.push(";font-weight:bold");
+  }
+  if (stylesToApply & qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_ITALIC){
+    htmlArr.push(";font-style:italic");
+  }
+}
+
+
+qx.Proto._createContentHtml_array_join = function(cellInfo, htmlArr) {
+  htmlArr.push(qx.ui.table.DefaultDataCellRenderer.escapeHtml(this._formatValue(cellInfo)));
+}
+
+
+/**
+ * Escapes special HTML characters by their entities.
+ *
+ * @param html {string} The HTML to escape.
+ * @return {string} The escaped string showing HTML code as plain text.
+ */
+qx.Class.escapeHtml = function(html) {
+  return html.replace(/[<>&]/gi, qx.ui.table.DefaultDataCellRenderer._escapeHtmlReplacer);
+}
+
+
+/**
+ * Helper method for {@link #escapeHtml}.
+ */
+qx.Class._escapeHtmlReplacer = function(str) {
+  switch(str) {
+    case "<": return "&lt;";
+    case ">": return "&gt;";
+    case "&": return "&amp;";
+  }
+}
+
+
+qx.Class._numberFormat = new qx.util.format.NumberFormat();
+qx.Class._numberFormat.setMaximumFractionDigits(2);
+
+qx.Class.STYLEFLAG_ALIGN_RIGHT = 1;
+qx.Class.STYLEFLAG_BOLD = 2;
+qx.Class.STYLEFLAG_ITALIC = 4;
+
+
+
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DefaultDataRowRenderer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DefaultDataRowRenderer.js
new file mode 100644 (file)
index 0000000..8fd2198
--- /dev/null
@@ -0,0 +1,106 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * The default data row renderer.
+ */
+qx.OO.defineClass("qx.ui.table.DefaultDataRowRenderer", qx.ui.table.DataRowRenderer,
+function() {
+  qx.ui.table.DataRowRenderer.call(this);
+});
+
+
+/** Whether the focused row should be highlighted. */
+qx.OO.addProperty({ name:"highlightFocusRow", type:"boolean", allowNull:false, defaultValue:true});
+
+/**
+ * Whether the focused row and the selection should be grayed out when the table
+ * hasn't the focus.
+ */
+qx.OO.addProperty({ name:"visualizeFocusedState", type:"boolean", allowNull:false, defaultValue:true});
+
+
+// overridden
+qx.Proto.updateDataRowElement = function(rowInfo, rowElem) {
+  var clazz = qx.ui.table.DefaultDataRowRenderer;
+
+  if (rowInfo.focusedRow && this.getHighlightFocusRow()) {
+    if (rowInfo.table.getFocused() || !this.getVisualizeFocusedState()) {
+      rowElem.style.backgroundColor = rowInfo.selected ? clazz.BGCOL_FOCUSED_SELECTED : clazz.BGCOL_FOCUSED;
+    } else {
+      rowElem.style.backgroundColor = rowInfo.selected ? clazz.BGCOL_FOCUSED_SELECTED_BLUR : clazz.BGCOL_FOCUSED_BLUR;
+    }
+  } else {
+    if (rowInfo.selected) {
+      if (rowInfo.table.getFocused() || !this.getVisualizeFocusedState()) {
+        rowElem.style.backgroundColor = clazz.BGCOL_SELECTED;
+      } else {
+        rowElem.style.backgroundColor = clazz.BGCOL_SELECTED_BLUR;
+      }
+    } else {
+      rowElem.style.backgroundColor = (rowInfo.row % 2 == 0) ? clazz.BGCOL_EVEN : clazz.BGCOL_ODD;
+    }
+  }
+  rowElem.style.color = rowInfo.selected ? clazz.COL_SELECTED : clazz.COL_NORMAL;
+}
+
+
+qx.Proto._createRowStyle_array_join = function(rowInfo, htmlArr) {
+  var clazz = qx.ui.table.DefaultDataRowRenderer;
+
+  htmlArr.push(clazz.ARRAY_JOIN_BG_COLOR);
+  if (rowInfo.focusedRow && this.getHighlightFocusRow()) {
+    if (rowInfo.table.getFocused() || !this.getVisualizeFocusedState()) {
+      htmlArr.push(rowInfo.selected ? clazz.BGCOL_FOCUSED_SELECTED : clazz.BGCOL_FOCUSED);
+    } else {
+      htmlArr.push(rowInfo.selected ? clazz.BGCOL_FOCUSED_SELECTED_BLUR : clazz.BGCOL_FOCUSED_BLUR);
+    }
+  } else {
+    if (rowInfo.selected) {
+      if (rowInfo.table.getFocused() || !this.getVisualizeFocusedState()) {
+        htmlArr.push(clazz.BGCOL_SELECTED);
+      } else {
+        htmlArr.push(clazz.BGCOL_SELECTED_BLUR);
+      }
+    } else {
+      htmlArr.push((rowInfo.row % 2 == 0) ? clazz.BGCOL_EVEN : clazz.BGCOL_ODD);
+    }
+  }
+  htmlArr.push(clazz.ARRAY_JOIN_COLOR);
+  htmlArr.push(rowInfo.selected ? clazz.COL_SELECTED : clazz.COL);
+}
+
+
+qx.Class.BGCOL_FOCUSED_SELECTED = "#5a8ad3";
+qx.Class.BGCOL_FOCUSED_SELECTED_BLUR = "#b3bac6";
+qx.Class.BGCOL_FOCUSED = "#ddeeff";
+qx.Class.BGCOL_FOCUSED_BLUR = "#dae0e7";
+qx.Class.BGCOL_SELECTED = "#335ea8";
+qx.Class.BGCOL_SELECTED_BLUR = "#989ea8";
+qx.Class.BGCOL_EVEN = "#faf8f3";
+qx.Class.BGCOL_ODD = "white";
+qx.Class.COL_SELECTED = "white";
+qx.Class.COL_NORMAL = "black";
+
+qx.Class.ARRAY_JOIN_BG_COLOR = ";background-color:";
+qx.Class.ARRAY_JOIN_COLOR = ';color:';
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DefaultHeaderCellRenderer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DefaultHeaderCellRenderer.js
new file mode 100644 (file)
index 0000000..060b095
--- /dev/null
@@ -0,0 +1,63 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * The default header cell renderer.
+ */
+qx.OO.defineClass("qx.ui.table.DefaultHeaderCellRenderer", qx.ui.table.HeaderCellRenderer,
+function() {
+  qx.ui.table.HeaderCellRenderer.call(this);
+});
+
+
+// overridden
+qx.Proto.createHeaderCell = function(cellInfo) {
+  var widget = new qx.ui.basic.Atom();
+  widget.setAppearance("table-header-cell");
+
+  this.updateHeaderCell(cellInfo, widget);
+
+  return widget;
+}
+
+
+// overridden
+qx.Proto.updateHeaderCell = function(cellInfo, cellWidget) {
+  var DefaultHeaderCellRenderer = qx.ui.table.DefaultHeaderCellRenderer;
+
+  cellWidget.setLabel(cellInfo.name);
+
+  cellWidget.setIcon(cellInfo.sorted ? (cellInfo.sortedAscending ? "widget/table/ascending.png" : "widget/table/descending.png") : null);
+  cellWidget.setState(DefaultHeaderCellRenderer.STATE_SORTED, cellInfo.sorted);
+  cellWidget.setState(DefaultHeaderCellRenderer.STATE_SORTED_ASCENDING, cellInfo.sortedAscending);
+}
+
+/**
+ * (string) The state which will be set for header cells of sorted columns.
+ */
+qx.Class.STATE_SORTED = "sorted";
+
+/**
+ * (string) The state which will be set when sorting is ascending.
+ */
+qx.Class.STATE_SORTED_ASCENDING = "sortedAscending";
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/HeaderCellRenderer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/HeaderCellRenderer.js
new file mode 100644 (file)
index 0000000..2108778
--- /dev/null
@@ -0,0 +1,69 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * A cell renderer for header cells.
+ */
+qx.OO.defineClass("qx.ui.table.HeaderCellRenderer", qx.core.Object,
+function() {
+  qx.core.Object.call(this);
+});
+
+
+/**
+ * Creates a header cell.
+ * <p>
+ * The cellInfo map contains the following properties:
+ * <ul>
+ * <li>col (int): the model index of the column.</li>
+ * <li>xPos (int): the x position of the column in the table pane.</li>
+ * <li>name (string): the name of the column.</li>
+ * <li>editable (boolean): whether the column is editable.</li>
+ * <li>sorted (boolean): whether the column is sorted.</li>
+ * <li>sortedAscending (boolean): whether sorting is ascending.</li>
+ * </ul>
+ *
+ * @param cellInfo {Map} A map containing the information about the cell to
+ *    create.
+ * @return {qx.ui.core.Widget} the widget that renders the header cell.
+ */
+qx.Proto.createHeaderCell = function(cellInfo) {
+  throw new Error("createHeaderCell is abstract");
+}
+
+
+/**
+ * Updates a header cell.
+ *
+ * @param cellInfo {Map} A map containing the information about the cell to
+ *    create. This map has the same structure as in {@link #createHeaderCell}.
+ * @param cellWidget {qx.ui.core.Widget} the widget that renders the header cell. This is
+ *    the same widget formally created by {@link #createHeaderCell}.
+ */
+qx.Proto.updateHeaderCell = function(cellInfo, cellWidget) {
+  throw new Error("updateHeaderCell is abstract");
+}
+
+
+/** The preferred height of cells created by this header renderer. */
+qx.OO.addProperty({ name:"prefferedCellHeight", type:"number", defaultValue:16, allowNull:false });
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/IconDataCellRenderer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/IconDataCellRenderer.js
new file mode 100644 (file)
index 0000000..b4a7175
--- /dev/null
@@ -0,0 +1,182 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+     * Carsten Lergenmueller (carstenl)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * A data cell renderer for boolean values.
+ */
+qx.OO.defineClass("qx.ui.table.IconDataCellRenderer", qx.ui.table.AbstractDataCellRenderer,
+function() {
+  qx.ui.table.AbstractDataCellRenderer.call(this);
+  this.IMG_BLANK_URL = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
+});
+
+
+/**
+ * Identifies the Image to show.
+ *
+ * @param cellInfo {Map} The information about the cell.
+ *        See {@link #createDataCellHtml}.
+ * @return {Map} A map having the following attributes:
+ *         <ul>
+ *         <li>"url": (type string) must be the URL of the image to show.</li>
+ *         <li>"imageWidth": (type int) the width of the image in pixels.</li>
+ *         <li>"imageHeight": (type int) the height of the image in pixels.</li>
+ *         <li>"tooltip": (type string) must be the image tooltip text.</li>
+ *         </ul>
+ */
+qx.Proto._identifyImage = function(cellInfo) {
+  throw new Error("_identifyImage is abstract");
+}
+
+
+/**
+ * Retrieves the image infos.
+ *
+ * @param cellInfo {Map} The information about the cell.
+ *        See {@link #createDataCellHtml}.
+ * @return {Map} Map with an "url" attribute (type string)
+ *               holding the URL of the image to show
+ *               and a "tooltip" attribute
+ *               (type string) being the tooltip text (or null if none was specified)
+ *
+ */
+qx.Proto._getImageInfos= function(cellInfo) {
+  // Query the subclass about image and tooltip
+  var urlAndTooltipMap = this._identifyImage(cellInfo);
+
+  // If subclass refuses to give map, construct it
+  if (urlAndTooltipMap == null || typeof urlAndTooltipMap == "string"){
+    urlAndTooltipMap = {url:urlAndTooltipMap, tooltip:null};
+  }
+
+  // If subclass gave null as url, replace with url to empty image
+  if (urlAndTooltipMap.url == null){
+    urlAndTooltipMap.url = this.IMG_BLANK_URL;
+  }
+
+  return urlAndTooltipMap;
+}
+
+// overridden
+qx.Proto._getCellStyle = function(cellInfo) {
+  var style = qx.ui.table.AbstractDataCellRenderer.prototype._getCellStyle(cellInfo);
+  style += qx.ui.table.IconDataCellRenderer.MAIN_DIV_STYLE;
+  return style;
+}
+
+
+// overridden
+qx.Proto._getContentHtml = function(cellInfo) {
+  var IconDataCellRenderer = qx.ui.table.IconDataCellRenderer;
+
+  var urlAndToolTip = this._getImageInfos(cellInfo);
+  var html = IconDataCellRenderer.IMG_START;
+  if (qx.sys.Client.getInstance().isMshtml() && /\.png$/i.test(urlAndToolTip.url)) {
+    html += qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif")
+      + '" style="filter:' + "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + urlAndToolTip.url + "',sizingMethod='scale')";
+  } else {
+    html += urlAndToolTip.url + '" style="';
+  }
+
+  if (urlAndToolTip.imageWidth && urlAndToolTip.imageHeight) {
+    html += ';width:' + urlAndToolTip.imageWidth + 'px'
+         +  ';height:' + urlAndToolTip.imageHeight + 'px';
+  }
+
+  var tooltip = urlAndToolTip.tooltip;
+  if (tooltip != null){
+    html += IconDataCellRenderer.IMG_TITLE_START + tooltip;
+  }
+  html += IconDataCellRenderer.IMG_END;
+  return html;
+}
+
+
+// overridden
+qx.Proto.updateDataCellElement = function(cellInfo, cellElement) {
+  // Set image and tooltip text
+  var urlAndToolTip = this._getImageInfos(cellInfo);
+  var img = cellElement.firstChild;
+  if (qx.sys.Client.getInstance().isMshtml()) {
+    if (/\.png$/i.test(urlAndToolTip.url)) {
+      img.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
+      img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + urlAndToolTip.url + "',sizingMethod='scale')";
+    } else {
+      img.src = urlAndToolTip.url;
+      img.style.filter = "";
+    }
+  } else {
+    img.src = urlAndToolTip.url;
+  }
+
+  if (urlAndToolTip.imageWidth && urlAndToolTip.imageHeight) {
+    img.style.width = urlAndToolTip.imageWidth + "px";
+    img.style.height = urlAndToolTip.imageHeight + "px";
+  }
+
+  if (urlAndToolTip.tooltip != null){
+    img.text = urlAndToolTip.tooltip;
+  }
+}
+
+
+// overridden
+qx.Proto._createCellStyle_array_join = function(cellInfo, htmlArr) {
+  qx.ui.table.AbstractDataCellRenderer.prototype._createCellStyle_array_join(cellInfo, htmlArr);
+
+  htmlArr.push(qx.ui.table.IconDataCellRenderer.MAIN_DIV_STYLE);
+}
+
+qx.Proto._createContentHtml_array_join = function(cellInfo, htmlArr) {
+  var IconDataCellRenderer = qx.ui.table.IconDataCellRenderer;
+
+  if (qx.ui.table.TablePane.USE_TABLE) {
+    htmlArr.push(IconDataCellRenderer.TABLE_DIV);
+    htmlArr.push(cellInfo.styleHeight - 2); // -1 for the border, -1 for the padding
+    htmlArr.push(IconDataCellRenderer.TABLE_DIV_CLOSE);
+  }
+
+  htmlArr.push(IconDataCellRenderer.IMG_START);
+  var urlAndToolTip = this._getImageInfos(cellInfo);
+  htmlArr.push(urlAndToolTip.url);
+  var tooltip = urlAndToolTip.tooltip;
+  if (tooltip != null){
+    IconDataCellRenderer.IMG_TITLE_START;
+    htmlArr.push(tooltip);
+  }
+  htmlArr.push(IconDataCellRenderer.IMG_END);
+
+  if (qx.ui.table.TablePane.USE_TABLE) {
+    htmlArr.push(IconDataCellRenderer.TABLE_DIV_END);
+  }
+}
+
+qx.Class.MAIN_DIV_STYLE = ';text-align:center;padding-top:1px;';
+qx.Class.IMG_START = '<img src="';
+qx.Class.IMG_END = '"/>';
+qx.Class.IMG_TITLE_START = '" title="';
+qx.Class.TABLE_DIV = '<div style="overflow:hidden;height:';
+qx.Class.TABLE_DIV_CLOSE = 'px">';
+qx.Class.TABLE_DIV_END = '</div>';
+
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/IconHeaderCellRenderer.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/IconHeaderCellRenderer.js
new file mode 100644 (file)
index 0000000..51e653f
--- /dev/null
@@ -0,0 +1,84 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+     * Carsten Lergenmueller (carstenl)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * A header cell renderer which renders an icon (only). The icon cannot be combined
+ * with text.
+ *
+ * @param iconUrl {string} URL to the icon to show
+ * @param tooltip {string ? ""} Text of the tooltip to show if the mouse hovers over the
+ *                             icon
+ *
+ */
+qx.OO.defineClass("qx.ui.table.IconHeaderCellRenderer", qx.ui.table.DefaultHeaderCellRenderer,
+function(iconUrl, tooltip) {
+  qx.ui.table.DefaultHeaderCellRenderer.call(this);
+  if (iconUrl == null){
+    iconUrl = "";
+  }
+  this.setIconUrl(iconUrl);
+  this.setToolTip(tooltip);
+});
+
+/**
+ * URL of the icon to show
+ */
+qx.OO.addProperty({ name:"iconUrl", type:"string", defaultValue:"", allowNull:false });
+
+/**
+ * ToolTip to show if the mouse hovers of the icon
+ */
+qx.OO.addProperty({ name:"toolTip", type:"string", defaultValue:null, allowNull:true });
+
+// overridden
+qx.Proto.updateHeaderCell = function(cellInfo, cellWidget) {
+  qx.ui.table.DefaultHeaderCellRenderer.prototype.updateHeaderCell.call(this, cellInfo, cellWidget);
+
+  // Set URL to icon
+  var img = cellWidget.getUserData("qx_ui_table_IconHeaderCellRenderer_icon");
+  if (img == null){
+    img = new qx.ui.basic.Image();
+    cellWidget.setUserData("qx_ui_table_IconHeaderCellRenderer_icon", img);
+    cellWidget.addAtBegin(img);
+  }
+  img.setSource(this.getIconUrl());
+
+  // Set image tooltip if given
+  var widgetToolTip = cellWidget.getToolTip();
+  if (this.getToolTip() != null){
+
+    //Create tooltip if necessary
+    if (true || widgetToolTip == null ){
+      widgetToolTip = new qx.ui.popup.ToolTip(this.getToolTip());
+      cellWidget.setToolTip(widgetToolTip);
+      //this.debug("Creating tooltip");
+    }
+
+    //Set tooltip text
+    widgetToolTip.getAtom().setLabel(this.getToolTip());
+    //this.debug("Setting tooltip text " + this.getToolTip());
+  }
+
+}
+
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/RemoteTableModel.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/RemoteTableModel.js
new file mode 100644 (file)
index 0000000..ebd1be8
--- /dev/null
@@ -0,0 +1,435 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * A table model that loads its data from a backend.
+ * <p>
+ * Only those  rows are loaded that are near the area the user is currently
+ * viewing. If the user scrolls, the rows he will see soon are loaded
+ * asynchroniously in the background. All loaded data is managed in a cache that
+ * automatically removes the last resently used rows when it gets full.
+ * <p>
+ * This class is abstract: The actual loading of row data must be done by
+ * subclasses.
+ */
+qx.OO.defineClass("qx.ui.table.RemoteTableModel", qx.ui.table.AbstractTableModel,
+function() {
+  qx.ui.table.AbstractTableModel.call(this);
+
+  this._sortColumnIndex = -1;
+  this._sortAscending = true;
+  this._rowCount = -1;
+
+  this._lruCounter = 0;
+  this._firstLoadingBlock = -1;
+  this._firstRowToLoad = -1;
+  this._lastRowToLoad = -1;
+  this._ignoreCurrentRequest = false;
+
+  this._rowBlockCache = {};
+  this._rowBlockCount = 0;
+});
+
+
+/** The number of rows that are stored in one cache block. */
+qx.OO.addProperty({ name:"blockSize", type:"number", defaultValue:50, allowNull:false });
+
+/** The maximum number of row blocks kept in the cache. */
+qx.OO.addProperty({ name:"maxCachedBlockCount", type:"number", defaultValue:15, allowNull:false });
+
+/**
+ * Whether to clear the cache when some rows are removed.
+ * If false the rows are removed locally in the cache.
+ */
+qx.OO.addProperty({ name:"clearCacheOnRemove", type:"boolean", defaultValue:false, allowNull:false });
+
+
+// overridden
+qx.Proto.getRowCount = function() {
+  if (this._rowCount == -1) {
+    this._loadRowCount();
+
+    // NOTE: _loadRowCount may set this._rowCount
+    return (this._rowCount == -1) ? 0 : this._rowCount;
+  } else {
+    return this._rowCount;
+  }
+}
+
+
+/**
+ * Loads the row count from the server.
+ * <p>
+ * Implementing classes have to call {@link _onRowDataLoaded()} when the server
+ * response arrived. That method has to be called! Even when there was an error.
+ */
+qx.Proto._loadRowCount = function() {
+  throw new Error("_loadRowCount is abstract");
+};
+
+
+/**
+ * Sets the row count.
+ * <p>
+ * Has to be called by {@link _loadRowCount()}.
+ *
+ * @param rowCount {int} the number of rows in this model or null if loading.
+ */
+qx.Proto._onRowCountLoaded = function(rowCount) {
+  this.debug("row count loaded: " + rowCount);
+  if (rowCount == null) {
+    rowCount = 0;
+  }
+  this._rowCount = rowCount;
+
+  // Inform the listeners
+  var data = { firstRow:0, lastRow:rowCount - 1, firstColumn:0, lastColumn:this.getColumnCount() - 1 };
+  this.dispatchEvent(new qx.event.type.DataEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, data), true);
+};
+
+
+/**
+ * Reloads the model and clears the local cache.
+ */
+qx.Proto.reloadData = function() {
+  this.clearCache();
+
+  // If there is currently a request on its way, then this request will bring
+  // obsolete data -> Ignore it
+  if (this._firstLoadingBlock != -1) {
+    this._ignoreCurrentRequest = true;
+  }
+
+  // NOTE: This will inform the listeners as soon as the new row count is known
+  this._loadRowCount();
+};
+
+
+/**
+ * Clears the cache.
+ */
+qx.Proto.clearCache = function() {
+  this._rowBlockCache = {};
+  this._rowBlockCount = 0;
+};
+
+
+// overridden
+qx.Proto.prefetchRows = function(firstRowIndex, lastRowIndex) {
+  // this.debug("Prefetch wanted: " + firstRowIndex + ".." + lastRowIndex);
+  if (this._firstLoadingBlock == -1) {
+    var blockSize = this.getBlockSize();
+    var totalBlockCount = Math.ceil(this._rowCount / blockSize);
+
+    // There is currently no request running -> Start a new one
+    // NOTE: We load one more block above and below to have a smooth
+    //       scrolling into the next block without blank cells
+    var firstBlock = parseInt(firstRowIndex / blockSize) - 1;
+    if (firstBlock < 0) {
+      firstBlock = 0;
+    }
+    var lastBlock = parseInt(lastRowIndex / blockSize) + 1;
+    if (lastBlock >= totalBlockCount) {
+      lastBlock = totalBlockCount - 1;
+    }
+
+    // Check which blocks we have to load
+    var firstBlockToLoad = -1;
+    var lastBlockToLoad = -1;
+    for (var block = firstBlock; block <= lastBlock; block++) {
+      if (this._rowBlockCache[block] == null || this._rowBlockCache[block].isDirty) {
+        // We don't have this block
+        if (firstBlockToLoad == -1) {
+          firstBlockToLoad = block;
+        }
+        lastBlockToLoad = block;
+      }
+    }
+
+    // Load the blocks
+    if (firstBlockToLoad != -1) {
+      this._firstRowToLoad = -1;
+      this._lastRowToLoad = -1;
+
+      this._firstLoadingBlock = firstBlockToLoad;
+
+      this.debug("Starting server request. rows: " + firstRowIndex + ".." + lastRowIndex + ", blocks: " + firstBlockToLoad + ".." + lastBlockToLoad);
+      this._loadRowData(firstBlockToLoad * blockSize, (lastBlockToLoad + 1) * blockSize - 1);
+    }
+  } else {
+    // There is already a request running -> Remember this request
+    // so it can be executed after the current one is finished.
+    this._firstRowToLoad = firstRowIndex;
+    this._lastRowToLoad = lastRowIndex;
+  }
+};
+
+
+/**
+ * Loads some row data from the server.
+ * <p>
+ * Implementing classes have to call {@link _onRowDataLoaded()} when the server
+ * response arrived. That method has to be called! Even when there was an error.
+ *
+ * @param firstRow {int} The index of the first row to load.
+ * @param lastRow {int} The index of the last row to load.
+ */
+qx.Proto._loadRowData = function(firstRow, lastRow) {
+  throw new Error("_loadRowCount is abstract");
+};
+
+
+/**
+ * Sets row data.
+ * <p>
+ * Has to be called by {@link _loadRowData()}.
+ *
+ * @param rowDataArr {Map[]} the loaded row data or null if there was an error.
+ */
+qx.Proto._onRowDataLoaded = function(rowDataArr) {
+  if (rowDataArr != null && ! this._ignoreCurrentRequest) {
+    var blockSize = this.getBlockSize();
+    var blockCount = Math.ceil(rowDataArr.length / blockSize);
+    if (blockCount == 1) {
+      // We got one block -> Use the rowData directly
+      this._setRowBlockData(this._firstLoadingBlock, rowDataArr);
+    } else {
+      // We got more than one block -> We've to split the rowData
+      for (var i = 0; i < blockCount; i++) {
+        var rowOffset = i * blockSize;
+        var blockRowData = [];
+        var mailCount = Math.min(blockSize, rowDataArr.length - rowOffset);
+        for (var row = 0; row < mailCount; row++) {
+          blockRowData.push(rowDataArr[rowOffset + row]);
+        }
+
+        this._setRowBlockData(this._firstLoadingBlock + i, blockRowData);
+      }
+    }
+    this.debug("Got server answer. blocks: " + this._firstLoadingBlock + ".." + (this._firstLoadingBlock + blockCount - 1) + ". mail count: " + rowDataArr.length + " block count:" + blockCount);
+
+    // Inform the listeners
+    var data = {
+      firstRow:this._firstLoadingBlock * blockSize,
+      lastRow:(this._firstLoadingBlock + blockCount + 1) * blockSize - 1,
+      firstColumn:0,
+      lastColumn:this.getColumnCount() - 1
+    };
+    this.dispatchEvent(new qx.event.type.DataEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, data), true);
+  }
+
+  // We're not loading any blocks any more
+  this._firstLoadingBlock = -1;
+  this._ignoreCurrentRequest = false;
+
+  // Check whether we have to start a new request
+  if (this._firstRowToLoad != -1) {
+    this.prefetchRows(this._firstRowToLoad, this._lastRowToLoad);
+  }
+};
+
+
+/**
+ * Sets the data of one block.
+ *
+ * @param block {int} the index of the block.
+ * @param rowDataArr {var[][]} the data to set.
+ */
+qx.Proto._setRowBlockData = function(block, rowDataArr) {
+  if (this._rowBlockCache[block] == null) {
+    // This is a new block -> Check whether we have to remove another block first
+    this._rowBlockCount++;
+
+    while (this._rowBlockCount > this.getMaxCachedBlockCount()) {
+      // Find the last recently used block
+      // NOTE: We never remove block 0 and 1
+      var lruBlock;
+      var minLru = this._lruCounter;
+      for (var currBlock in this._rowBlockCache) {
+        var currLru = this._rowBlockCache[currBlock].lru;
+        if (currLru < minLru && currBlock > 1) {
+          minLru = currLru;
+          lruBlock = currBlock;
+        }
+      }
+
+      // Remove that block
+      this.debug("Removing block: " + lruBlock + ". current LRU: " + this._lruCounter);
+      delete this._rowBlockCache[lruBlock];
+      this._rowBlockCount--;
+    }
+  }
+
+  this._rowBlockCache[block] = { lru:++this._lruCounter, rowDataArr:rowDataArr };
+};
+
+
+/**
+ * Removes a rows from the model.
+ *
+ * @param rowIndex {int} the index of the row to remove.
+ */
+qx.Proto.removeRow = function(rowIndex) {
+  if (this.getClearCacheOnRemove()) {
+    this.clearCache();
+
+    // Inform the listeners
+    var data = { firstRow:0, lastRow:rowCount - 1, firstColumn:0, lastColumn:this.getColumnCount() - 1 };
+    this.dispatchEvent(new qx.event.type.DataEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, data), true);
+  } else {
+    var blockSize = this.getBlockSize();
+    var blockCount = Math.ceil(this.getRowCount() / blockSize);
+    var startBlock = parseInt(rowIndex / blockSize);
+
+    // Remove the row and move the rows of all following blocks
+    for (var block = startBlock; block <= blockCount; block++) {
+      var blockData = this._rowBlockCache[block];
+      if (blockData != null) {
+        // Remove the row in the start block
+        // NOTE: In the other blocks the first row is removed
+        //       (This is the row that was)
+        var removeIndex = 0;
+        if (block == startBlock) {
+          removeIndex = rowIndex - block * blockSize;
+        }
+        blockData.rowDataArr.splice(removeIndex, 1);
+
+        if (block == blockCount - 1) {
+          // This is the last block
+          if (blockData.rowDataArr.length == 0) {
+            // It is empty now -> Remove it
+            delete this._rowBlockCache[block];
+          }
+        } else {
+          // Try to copy the first row of the next block to the end of this block
+          // so this block can stays clean
+          var nextBlockData = this._rowBlockCache[block + 1];
+          if (nextBlockData != null) {
+            blockData.rowDataArr.push(nextBlockData.rowDataArr[0]);
+          } else {
+            // There is no row to move -> Mark this block as dirty
+            blockData.isDirty = true;
+          }
+        }
+      }
+    }
+
+    if (this._rowCount != -1) {
+      this._rowCount--;
+    }
+
+    // Inform the listeners
+    if (this.hasEventListeners(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED)) {
+      var data = { firstRow:rowIndex, lastRow:this.getRowCount() - 1, firstColumn:0, lastColumn:this.getColumnCount() - 1 };
+      this.dispatchEvent(new qx.event.type.DataEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, data), true);
+    }
+  }
+};
+
+
+/**
+ * <p>See overridden method for details.</p>
+ *
+ * @param rowIndex {int} the model index of the row.
+ * @return {Object} Map containing a value for each column.
+ */
+qx.Proto.getRowData = function(rowIndex) {
+  var blockSize = this.getBlockSize();
+  var block = parseInt(rowIndex / blockSize);
+  var blockData = this._rowBlockCache[block];
+  if (blockData == null) {
+    // This block is not (yet) loaded
+    return null;
+  } else {
+    var rowData = blockData.rowDataArr[rowIndex - (block * blockSize)];
+
+    // Update the last recently used counter
+    if (blockData.lru != this._lruCounter) {
+      blockData.lru = ++this._lruCounter;
+    }
+
+    return rowData;
+  }
+};
+
+
+// overridden
+qx.Proto.getValue = function(columnIndex, rowIndex) {
+  var rowData = this.getRowData(rowIndex);
+  if (rowData == null) {
+    return null;
+  } else {
+    var columnId = this.getColumnId(columnIndex);
+    return rowData[columnId];
+  }
+};
+
+
+/**
+ * Sets whether a column is sortable.
+ *
+ * @param columnIndex {int} the column of which to set the sortable state.
+ * @param sortable {boolean} whether the column should be sortable.
+ */
+qx.Proto.setColumnSortable = function(columnIndex, sortable) {
+  if (sortable != this.isColumnSortable(columnIndex)) {
+    if (this._sortableColArr == null) {
+      this._sortableColArr = [];
+    }
+    this._sortableColArr[columnIndex] = sortable;
+
+    this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
+  }
+}
+
+
+// overridden
+qx.Proto.isColumnSortable = function(columnIndex) {
+  return this._sortableColArr ? (this._sortableColArr[columnIndex] == true) : false;
+}
+
+
+// overridden
+qx.Proto.sortByColumn = function(columnIndex, ascending) {
+  if (this._sortColumnIndex != columnIndex || this._sortAscending != ascending) {
+    this._sortColumnIndex = columnIndex;
+    this._sortAscending = ascending;
+
+    this.clearCache();
+
+    // Inform the listeners
+    this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
+  }
+};
+
+
+// overridden
+qx.Proto.getSortColumnIndex = function() {
+  return this._sortColumnIndex;
+}
+
+
+// overridden
+qx.Proto.isSortAscending = function() {
+  return this._sortAscending;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/SelectionManager.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/SelectionManager.js
new file mode 100644 (file)
index 0000000..715b0d9
--- /dev/null
@@ -0,0 +1,163 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * A selection manager. This is a helper class that handles all selection
+ * related events and updates a SelectionModel.
+ * <p>
+ * Widgets that support selection should use this manager. This way the only
+ * thing the widget has to do is mapping mouse or key events to indexes and
+ * call the corresponding handler method.
+ *
+ * @see SelectionModel
+ */
+qx.OO.defineClass("qx.ui.table.SelectionManager", qx.core.Object,
+function() {
+  qx.core.Object.call(this);
+});
+
+
+/**
+ * The selection model where to set the selection changes.
+ */
+qx.OO.addProperty({ name:"selectionModel", type:"object", instance:"qx.ui.table.SelectionModel" });
+
+
+/**
+ * Handles the mouse down event.
+ *
+ * @param index {int} the index the mouse is pointing at.
+ * @param evt {Map} the mouse event.
+ */
+qx.Proto.handleMouseDown = function(index, evt) {
+  if (evt.isLeftButtonPressed()) {
+    var selectionModel = this.getSelectionModel();
+    if (!selectionModel.isSelectedIndex(index)) {
+      // This index is not selected -> We react when the mouse is pressed (because of drag and drop)
+      this._handleSelectEvent(index, evt);
+      this._lastMouseDownHandled = true;
+    } else {
+      // This index is already selected -> We react when the mouse is released (because of drag and drop)
+      this._lastMouseDownHandled = false;
+    }
+  } else if (evt.isRightButtonPressed() && evt.getModifiers() == 0) {
+    var selectionModel = this.getSelectionModel();
+    if (!selectionModel.isSelectedIndex(index)) {
+      // This index is not selected -> Set the selection to this index
+      selectionModel.setSelectionInterval(index, index);
+    }
+  }
+}
+
+
+/**
+ * Handles the mouse up event.
+ *
+ * @param index {int} the index the mouse is pointing at.
+ * @param evt {Map} the mouse event.
+ */
+qx.Proto.handleMouseUp = function(index, evt) {
+  if (evt.isLeftButtonPressed() && !this._lastMouseDownHandled) {
+    this._handleSelectEvent(index, evt);
+  }
+}
+
+
+/**
+ * Handles the mouse click event.
+ *
+ * @param index {int} the index the mouse is pointing at.
+ * @param evt {Map} the mouse event.
+ */
+qx.Proto.handleClick = function(index, evt) {
+}
+
+
+/**
+ * Handles the key down event that is used as replacement for mouse clicks
+ * (Normally space).
+ *
+ * @param index {int} the index that is currently focused.
+ * @param evt {Map} the key event.
+ */
+qx.Proto.handleSelectKeyDown = function(index, evt) {
+  this._handleSelectEvent(index, evt);
+};
+
+
+/**
+ * Handles a key down event that moved the focus (E.g. up, down, home, end, ...).
+ *
+ * @param index {int} the index that is currently focused.
+ * @param evt {Map} the key event.
+ */
+qx.Proto.handleMoveKeyDown = function(index, evt) {
+  var selectionModel = this.getSelectionModel();
+  switch (evt.getModifiers()) {
+    case 0:
+      selectionModel.setSelectionInterval(index, index);
+      break;
+    case qx.event.type.DomEvent.SHIFT_MASK:
+      var anchor = selectionModel.getAnchorSelectionIndex();
+      if (anchor == -1) {
+        selectionModel.setSelectionInterval(index, index);
+      } else {
+        selectionModel.setSelectionInterval(anchor, index);
+      }
+      break;
+  }
+}
+
+
+/**
+ * Handles a select event.
+ *
+ * @param index {int} the index the event is pointing at.
+ * @param evt {Map} the mouse event.
+ */
+qx.Proto._handleSelectEvent = function(index, evt) {
+  var selectionModel = this.getSelectionModel();
+  if (evt.getShiftKey()) {
+    var leadIndex = selectionModel.getLeadSelectionIndex();
+    if (index != leadIndex || selectionModel.isSelectionEmpty()) {
+      // The lead selection index was changed
+      var anchorIndex = selectionModel.getAnchorSelectionIndex();
+      if (anchorIndex == -1) {
+          anchorIndex = index;
+      }
+      if (evt.isCtrlOrCommandPressed()) {
+        selectionModel.addSelectionInterval(anchorIndex, index);
+      } else {
+        selectionModel.setSelectionInterval(anchorIndex, index);
+      }
+    }
+  } else if (evt.isCtrlOrCommandPressed()) {
+    if (selectionModel.isSelectedIndex(index)) {
+      selectionModel.removeSelectionInterval(index, index);
+    } else {
+      selectionModel.addSelectionInterval(index, index);
+    }
+  } else {
+    selectionModel.setSelectionInterval(index, index);
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/SelectionModel.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/SelectionModel.js
new file mode 100644 (file)
index 0000000..fb0f6b7
--- /dev/null
@@ -0,0 +1,427 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * A selection model.
+ *
+ * @event changeSelection {qx.event.type.Event} Fired when the selection has
+ *        changed.
+ */
+qx.OO.defineClass("qx.ui.table.SelectionModel", qx.core.Target,
+function() {
+  qx.core.Target.call(this);
+
+  this._selectedRangeArr = [];
+  this._anchorSelectionIndex = -1;
+  this._leadSelectionIndex = -1;
+  this.hasBatchModeRefCount = 0;
+  this._hadChangeEventInBatchMode = false;
+});
+
+
+/** {int} The selection mode "none". Nothing can ever be selected. */
+qx.Class.NO_SELECTION = 1;
+
+/** {int} The selection mode "single". This mode only allows one selected item. */
+qx.Class.SINGLE_SELECTION = 2;
+
+/**
+ * (int) The selection mode "single interval". This mode only allows one
+ * continuous interval of selected items.
+ */
+qx.Class.SINGLE_INTERVAL_SELECTION = 3;
+
+/**
+ * (int) The selection mode "multiple interval". This mode only allows any
+ * selection.
+ */
+qx.Class.MULTIPLE_INTERVAL_SELECTION = 4;
+
+
+/**
+ * (int) the selection mode.
+ */
+qx.OO.addProperty({ name:"selectionMode", type:"number",
+  defaultValue:qx.Class.SINGLE_SELECTION,
+  allowNull:false,
+  possibleValues:[ qx.Class.NO_SELECTION,
+           qx.Class.SINGLE_SELECTION,
+           qx.Class.SINGLE_INTERVAL_SELECTION,
+           qx.Class.MULTIPLE_INTERVAL_SELECTION  ] });
+
+// selectionMode property modifier
+qx.Proto._modifySelectionMode = function(selectionMode) {
+  if (selectionMode == qx.ui.table.SelectionModel.NO_SELECTION) {
+    this.clearSelection();
+  }
+  return true;
+}
+
+
+/**
+ * <p>Activates / Deactivates batch mode. In batch mode, no change events will be thrown but
+ * will be collected instead. When batch mode is turned off again and any events have
+ * been collected, one event is thrown to inform the listeners.</p>
+ *
+ * <p>This method supports nested calling, i. e. batch mode can be turned more than once.
+ * In this case, batch mode will not end until it has been turned off once for each
+ * turning on.</p>
+ *
+ * @param batchMode {boolean} true to activate batch mode, false to deactivate
+ * @return {boolean} true if batch mode is active, false otherwise
+ * @throws Error if batch mode is turned off once more than it has been turned on
+ */
+qx.Proto.setBatchMode = function(batchMode) {
+  if (batchMode){
+    this.hasBatchModeRefCount += 1;
+  } else {
+    if (this.hasBatchModeRefCount == 0){
+      throw new Error("Try to turn off batch mode althoug it was not turned on.")
+    }
+    this.hasBatchModeRefCount -= 1;
+    if (this._hadChangeEventInBatchMode){
+      this._hadChangeEventInBatchMode = false;
+      this._fireChangeSelection();
+    }
+  }
+  return this.hasBatchMode();
+}
+
+
+/**
+ * <p>Returns whether batch mode is active. See setter for a description of batch mode.</p>
+ *
+ * @return {boolean} true if batch mode is active, false otherwise
+ */
+qx.Proto.hasBatchMode = function() {
+  return this.hasBatchModeRefCount > 0;
+}
+
+
+/**
+ * Returns the first argument of the last call to {@link #setSelectionInterval()},
+ * {@link #addSelectionInterval()} or {@link #removeSelectionInterval()}.
+ *
+ * @return {int} the ancor selection index.
+ */
+qx.Proto.getAnchorSelectionIndex = function() {
+  return this._anchorSelectionIndex;
+}
+
+
+/**
+ * Returns the second argument of the last call to {@link #setSelectionInterval()},
+ * {@link #addSelectionInterval()} or {@link #removeSelectionInterval()}.
+ *
+ * @return {int} the lead selection index.
+ */
+qx.Proto.getLeadSelectionIndex = function() {
+  return this._leadSelectionIndex;
+}
+
+
+/**
+ * Clears the selection.
+ */
+qx.Proto.clearSelection = function() {
+  if (! this.isSelectionEmpty()) {
+    this._clearSelection();
+    this._fireChangeSelection();
+  }
+}
+
+
+/**
+ * Returns whether the selection is empty.
+ *
+ * @return {boolean} whether the selection is empty.
+ */
+qx.Proto.isSelectionEmpty = function() {
+  return this._selectedRangeArr.length == 0;
+}
+
+
+/**
+ * Returns the number of selected items.
+ *
+ * @return {int} the number of selected items.
+ */
+qx.Proto.getSelectedCount = function() {
+  var selectedCount = 0;
+  for (var i = 0; i < this._selectedRangeArr.length; i++) {
+    var range = this._selectedRangeArr[i];
+    selectedCount += range.maxIndex - range.minIndex + 1;
+  }
+
+  return selectedCount;
+}
+
+
+/**
+ * Returns whether a index is selected.
+ *
+ * @param index {int} the index to check.
+ * @return {boolean} whether the index is selected.
+ */
+qx.Proto.isSelectedIndex = function(index) {
+  for (var i = 0; i < this._selectedRangeArr.length; i++) {
+    var range = this._selectedRangeArr[i];
+
+    if (index >= range.minIndex && index <= range.maxIndex) {
+      return true;
+    }
+  }
+
+  return false;
+}
+
+
+/**
+ * Returns the selected ranges as an array. Each array element has a
+ * <code>minIndex</code> and a <code>maxIndex</code> property.
+ *
+ * @return {Map[]} the selected ranges.
+ */
+qx.Proto.getSelectedRanges = function() {
+  // clone the selection array and the individual elements - this prevents the
+  // caller from messing with the internal model
+  var retVal = [];
+  for (var i = 0; i < this._selectedRangeArr.length; i++) {
+    retVal.push({minIndex: this._selectedRangeArr[i].minIndex,
+                 maxIndex: this._selectedRangeArr[i].maxIndex});
+  }
+  return retVal;
+}
+
+
+/**
+ * Calls a iterator function for each selected index.
+ * <p>
+ * Usage Example:
+ * <pre>
+ * var selectedRowData = [];
+ * mySelectionModel.iterateSelection(function(index) {
+ *   selectedRowData.push(myTableModel.getRowData(index));
+ * });
+ * </pre>
+ *
+ * @param iterator {Function} the function to call for each selected index.
+ *        Gets the current index as parameter.
+ * @param object {var ? null} the object to use when calling the handler.
+ *        (this object will be available via "this" in the iterator)
+ */
+qx.Proto.iterateSelection = function(iterator, object) {
+  for (var i = 0; i < this._selectedRangeArr.length; i++) {
+    for (var j = this._selectedRangeArr[i].minIndex; j <= this._selectedRangeArr[i].maxIndex; j++) {
+      iterator.call(object, j);
+    }
+  }
+};
+
+
+/**
+ * Sets the selected interval. This will clear the former selection.
+ *
+ * @param fromIndex {int} the first index of the selection (including).
+ * @param toIndex {int} the last index of the selection (including).
+ */
+qx.Proto.setSelectionInterval = function(fromIndex, toIndex) {
+  var SelectionModel = qx.ui.table.SelectionModel;
+
+  switch(this.getSelectionMode()) {
+    case SelectionModel.NO_SELECTION:
+      return;
+    case SelectionModel.SINGLE_SELECTION:
+      fromIndex = toIndex;
+      break;
+  }
+
+  this._clearSelection();
+  this._addSelectionInterval(fromIndex, toIndex);
+
+  this._fireChangeSelection();
+}
+
+
+/**
+ * Adds a selection interval to the current selection.
+ *
+ * @param fromIndex {int} the first index of the selection (including).
+ * @param toIndex {int} the last index of the selection (including).
+ */
+qx.Proto.addSelectionInterval = function(fromIndex, toIndex) {
+  var SelectionModel = qx.ui.table.SelectionModel;
+  switch (this.getSelectionMode()) {
+    case SelectionModel.NO_SELECTION:
+      return;
+    case SelectionModel.MULTIPLE_INTERVAL_SELECTION:
+      this._addSelectionInterval(fromIndex, toIndex);
+      this._fireChangeSelection();
+      break;
+    default:
+      this.setSelectionInterval(fromIndex, toIndex);
+      break;
+  }
+}
+
+
+/**
+ * Removes a interval from the current selection.
+ *
+ * @param fromIndex {int} the first index of the interval (including).
+ * @param toIndex {int} the last index of the interval (including).
+ */
+qx.Proto.removeSelectionInterval = function(fromIndex, toIndex) {
+  this._anchorSelectionIndex = fromIndex;
+  this._leadSelectionIndex = toIndex;
+
+  var minIndex = Math.min(fromIndex, toIndex);
+  var maxIndex = Math.max(fromIndex, toIndex);
+
+  // Crop the affected ranges
+  for (var i = 0; i < this._selectedRangeArr.length; i++) {
+    var range = this._selectedRangeArr[i];
+
+    if (range.minIndex > maxIndex) {
+      // We are done
+      break;
+    } else if (range.maxIndex >= minIndex) {
+      // This range is affected
+      var minIsIn = (range.minIndex >= minIndex) && (range.minIndex <= maxIndex);
+      var maxIsIn = (range.maxIndex >= minIndex) && (range.maxIndex <= maxIndex);
+
+      if (minIsIn && maxIsIn) {
+        // This range is removed completely
+        this._selectedRangeArr.splice(i, 1);
+
+        // Check this index another time
+        i--;
+      } else if (minIsIn) {
+        // The range is cropped from the left
+        range.minIndex = maxIndex + 1;
+      } else if (maxIsIn) {
+        // The range is cropped from the right
+        range.maxIndex = minIndex - 1;
+      } else {
+        // The range is split
+        var newRange = { minIndex:maxIndex + 1, maxIndex:range.maxIndex }
+        this._selectedRangeArr.splice(i + 1, 0, newRange);
+
+        range.maxIndex = minIndex - 1;
+
+        // We are done
+        break;
+      }
+    }
+  }
+
+  //this._dumpRanges();
+
+  this._fireChangeSelection();
+}
+
+
+/**
+ * Clears the selection, but doesn't inform the listeners.
+ */
+qx.Proto._clearSelection = function() {
+  this._selectedRangeArr = [];
+}
+
+
+/**
+ * Adds a selection interval to the current selection, but doesn't inform
+ * the listeners.
+ *
+ * @param fromIndex {int} the first index of the selection (including).
+ * @param toIndex {int} the last index of the selection (including).
+ */
+qx.Proto._addSelectionInterval = function(fromIndex, toIndex) {
+  this._anchorSelectionIndex = fromIndex;
+  this._leadSelectionIndex = toIndex;
+
+  var minIndex = Math.min(fromIndex, toIndex);
+  var maxIndex = Math.max(fromIndex, toIndex);
+
+  // Find the index where the new range should be inserted
+  var newRangeIndex = 0;
+  for (; newRangeIndex < this._selectedRangeArr.length; newRangeIndex++) {
+    var range = this._selectedRangeArr[newRangeIndex];
+    if (range.minIndex > minIndex) {
+      break;
+    }
+  }
+
+  // Add the new range
+  this._selectedRangeArr.splice(newRangeIndex, 0, { minIndex:minIndex, maxIndex:maxIndex });
+
+  // Merge overlapping ranges
+  var lastRange = this._selectedRangeArr[0];
+  for (var i = 1; i < this._selectedRangeArr.length; i++) {
+    var range = this._selectedRangeArr[i];
+
+    if (lastRange.maxIndex + 1 >= range.minIndex) {
+      // The ranges are overlapping -> merge them
+      lastRange.maxIndex = Math.max(lastRange.maxIndex, range.maxIndex);
+
+      // Remove the current range
+      this._selectedRangeArr.splice(i, 1);
+
+      // Check this index another time
+      i--;
+    } else {
+      lastRange = range;
+    }
+  }
+
+  //this._dumpRanges();
+}
+
+
+/**
+ * Logs the current ranges for debug perposes.
+ */
+qx.Proto._dumpRanges = function() {
+  var text = "Ranges:";
+  for (var i = 0; i < this._selectedRangeArr.length; i++) {
+    var range = this._selectedRangeArr[i];
+    text += " [" + range.minIndex + ".." + range.maxIndex + "]";
+  }
+  this.debug(text);
+}
+
+
+/**
+ * Fires the "changeSelection" event to all registered listeners. If the selection model
+ * currently is in batch mode, only one event will be thrown when batch mode is ended.
+ */
+qx.Proto._fireChangeSelection = function() {
+  //In batch mode, remember event but do not throw (yet)
+  if (this.hasBatchMode()){
+    this._hadChangeEventInBatchMode = true;
+
+  //If not in batch mode, throw event
+  } else if (this.hasEventListeners("changeSelection")) {
+    this.dispatchEvent(new qx.event.type.Event("changeSelection"), true);
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/SimpleTableModel.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/SimpleTableModel.js
new file mode 100644 (file)
index 0000000..ef6ef2f
--- /dev/null
@@ -0,0 +1,335 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * A simple table model that provides an API for changing the model data.
+ */
+qx.OO.defineClass("qx.ui.table.SimpleTableModel", qx.ui.table.AbstractTableModel,
+function() {
+  qx.ui.table.AbstractTableModel.call(this);
+
+  this._rowArr = [];
+  this._sortColumnIndex = -1;
+  this._sortAscending;
+
+  this._editableColArr = null;
+});
+
+
+/**
+ * <p>See overridden method for details.</p>
+ *
+ * @param rowIndex {int} the model index of the row.
+ * @return {Array} Array containing a value for each column.
+ */
+qx.Proto.getRowData = function(rowIndex) {
+  return this._rowArr[rowIndex];
+};
+
+
+/**
+ * Returns the data of one row as map containing the column IDs as key and the
+ * cell values as value.
+ *
+ * @param rowIndex {int} the model index of the row.
+ * @return {Map} a Map containing the column values.
+ */
+qx.Proto.getRowDataAsMap = function(rowIndex) {
+  var columnArr = this._rowArr[rowIndex];
+  var map = {};
+  for (var col = 0; col < this.getColumnCount(); col++) {
+    map[this.getColumnId(col)] = columnArr[col];
+  }
+  return map;
+};
+
+
+/**
+ * Sets all columns editable or not editable.
+ *
+ * @param editable {boolean} whether all columns are editable.
+ */
+qx.Proto.setEditable = function(editable) {
+  this._editableColArr = [];
+  for (var col = 0; col < this.getColumnCount(); col++) {
+    this._editableColArr[col] = editable;
+  }
+
+  this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
+}
+
+
+/**
+ * Sets whether a column is editable.
+ *
+ * @param columnIndex {int} the column of which to set the editable state.
+ * @param editable {boolean} whether the column should be editable.
+ */
+qx.Proto.setColumnEditable = function(columnIndex, editable) {
+  if (editable != this.isColumnEditable(columnIndex)) {
+    if (this._editableColArr == null) {
+      this._editableColArr = [];
+    }
+    this._editableColArr[columnIndex] = editable;
+
+    this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
+  }
+}
+
+
+// overridden
+qx.Proto.isColumnEditable = function(columnIndex) {
+  return this._editableColArr ? (this._editableColArr[columnIndex] == true) : false;
+}
+
+
+// overridden
+qx.Proto.isColumnSortable = function(columnIndex) {
+  return true;
+}
+
+
+// overridden
+qx.Proto.sortByColumn = function(columnIndex, ascending) {
+  // NOTE: We use different comperators for ascending and descending,
+  //     because comperators should be really fast.
+  var comperator;
+  if (ascending) {
+    comperator = function(row1, row2) {
+      var obj1 = row1[columnIndex];
+      var obj2 = row2[columnIndex];
+      return (obj1 > obj2) ? 1 : ((obj1 == obj2) ? 0 : -1);
+    }
+  } else {
+    comperator = function(row1, row2) {
+      var obj1 = row1[columnIndex];
+      var obj2 = row2[columnIndex];
+      return (obj1 < obj2) ? 1 : ((obj1 == obj2) ? 0 : -1);
+    }
+  }
+
+  this._rowArr.sort(comperator);
+
+  this._sortColumnIndex = columnIndex;
+  this._sortAscending = ascending;
+
+  this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
+}
+
+
+/**
+ * Clears the sorting.
+ */
+qx.Proto._clearSorting = function() {
+  if (this._sortColumnIndex != -1) {
+    this._sortColumnIndex = -1;
+    this._sortAscending = true;
+
+    this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
+  }
+}
+
+
+// overridden
+qx.Proto.getSortColumnIndex = function() {
+  return this._sortColumnIndex;
+}
+
+
+// overridden
+qx.Proto.isSortAscending = function() {
+  return this._sortAscending;
+}
+
+
+// overridden
+qx.Proto.getRowCount = function() {
+  return this._rowArr.length;
+}
+
+
+// overridden
+qx.Proto.getValue = function(columnIndex, rowIndex) {
+  if (rowIndex < 0 || rowIndex >= this._rowArr.length) {
+    throw new Error("this._rowArr out of bounds: " + rowIndex + " (0.." + this._rowArr.length + ")");
+  }
+
+  return this._rowArr[rowIndex][columnIndex];
+}
+
+
+// overridden
+qx.Proto.setValue = function(columnIndex, rowIndex, value) {
+  if (this._rowArr[rowIndex][columnIndex] != value) {
+    this._rowArr[rowIndex][columnIndex] = value;
+
+    // Inform the listeners
+    if (this.hasEventListeners(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED)) {
+      var data = { firstRow:rowIndex, lastRow:rowIndex,
+                   firstColumn:columnIndex, lastColumn:columnIndex }
+      this.dispatchEvent(new qx.event.type.DataEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, data), true);
+    }
+
+    if (columnIndex == this._sortColumnIndex) {
+      this._clearSorting();
+    }
+  }
+}
+
+
+/**
+ * Sets the whole data in a bulk.
+ *
+ * @param rowArr {var[][]} An array containing an array for each row. Each
+ *        row-array contains the values in that row in the order of the columns
+ *        in this model.
+ */
+qx.Proto.setData = function(rowArr) {
+  this._rowArr = rowArr;
+
+  // Inform the listeners
+  if (this.hasEventListeners(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED)) {
+    this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED);
+  }
+
+  this._clearSorting();
+}
+
+
+/**
+ * Returns the data of this model.
+ * <p>
+ * Warning: Do not alter this array! If you want to change the data use
+ * {@link #setData}, {@link #setDataAsMapArray} or {@link #setValue} instead.
+ *
+ * @return {var[][]} An array containing an array for each row. Each
+ *         row-array contains the values in that row in the order of the columns
+ *         in this model.
+ */
+qx.Proto.getData = function() {
+  return this._rowArr;
+};
+
+
+/**
+ * Sets the whole data in a bulk.
+ *
+ * @param mapArr {Map[]} An array containing a map for each row. Each
+ *        row-map contains the column IDs as key and the cell values as value.
+ */
+qx.Proto.setDataAsMapArray = function(mapArr) {
+  this.setData(this._mapArray2RowArr(mapArr));
+};
+
+
+/**
+ * Adds some rows to the model.
+ * <p>
+ * Warning: The given array will be altered!
+ *
+ * @param rowArr {var[][]} An array containing an array for each row. Each
+ *        row-array contains the values in that row in the order of the columns
+ *        in this model.
+ * @param startIndex {int ? null} The index where to insert the new rows. If null,
+ *        the rows are appended to the end.
+ */
+qx.Proto.addRows = function(rowArr, startIndex) {
+  if (startIndex == null) {
+    startIndex = this._rowArr.length;
+  }
+
+  // Prepare the rowArr so it can be used for apply
+  rowArr.splice(0, 0, startIndex, 0);
+
+  // Insert the new rows
+  Array.prototype.splice.apply(this._rowArr, rowArr);
+
+  // Inform the listeners
+  if (this.hasEventListeners(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED)) {
+    var data = { firstRow:startIndex, lastRow:this._rowArr.length - 1, firstColumn:0, lastColumn:this.getColumnCount() - 1 };
+    this.dispatchEvent(new qx.event.type.DataEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, data), true);
+  }
+
+  this._clearSorting();
+};
+
+
+/**
+ * Adds some rows to the model.
+ * <p>
+ * Warning: The given array (mapArr) will be altered!
+ *
+ * @param mapArr {Map[]} An array containing a map for each row. Each
+ *        row-map contains the column IDs as key and the cell values as value.
+ * @param startIndex {int ? null} The index where to insert the new rows. If null,
+ *        the rows are appended to the end.
+ */
+qx.Proto.addRowsAsMapArray = function(mapArr, startIndex) {
+  this.addRows(this._mapArray2RowArr(mapArr), startIndex);
+};
+
+
+/**
+ * Removes some rows from the model.
+ *
+ * @param startIndex {int} the index of the first row to remove.
+ * @param howMany {int} the number of rows to remove.
+ */
+qx.Proto.removeRows = function(startIndex, howMany) {
+  this._rowArr.splice(startIndex, howMany);
+
+  // Inform the listeners
+  if (this.hasEventListeners(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED)) {
+    var data = { firstRow:startIndex, lastRow:this._rowArr.length - 1, firstColumn:0, lastColumn:this.getColumnCount() - 1 };
+    this.dispatchEvent(new qx.event.type.DataEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, data), true);
+  }
+
+  this._clearSorting();
+};
+
+
+/**
+ * Creates an array of maps to an array of arrays.
+ *
+ * @param mapArr {Map[]} An array containing a map for each row. Each
+ *        row-map contains the column IDs as key and the cell values as value.
+ * @return {var[][]} An array containing an array for each row. Each
+ *         row-array contains the values in that row in the order of the columns
+ *         in this model.
+ */
+qx.Proto._mapArray2RowArr = function(mapArr) {
+  var rowCount = mapArr.length;
+  var columnCount = this.getColumnCount();
+  var dataArr = new Array(rowCount);
+  var columnArr;
+  var j;
+  for (var i = 0; i < rowCount; ++i) {
+    columnArr = new Array(columnCount);
+    for (var j = 0; j < columnCount; ++j) {
+      columnArr[j] = mapArr[i][this.getColumnId(j)];
+    }
+    dataArr[i] = columnArr;
+  }
+
+  return dataArr;
+};
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/Table.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/Table.js
new file mode 100644 (file)
index 0000000..360662e
--- /dev/null
@@ -0,0 +1,1062 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+#require(qx.ui.table.DefaultDataRowRenderer)
+
+************************************************************************ */
+
+/**
+ * A table.
+ *
+ * @param tableModel {qx.ui.table.TableModel} The table
+ *    model to read the data from.
+ */
+qx.OO.defineClass("qx.ui.table.Table", qx.ui.layout.VerticalBoxLayout,
+function(tableModel) {
+  qx.ui.layout.VerticalBoxLayout.call(this);
+
+  // Create the child widgets
+  this._scrollerParent = new qx.ui.layout.HorizontalBoxLayout;
+  this._scrollerParent.setDimension("100%", "1*");
+  this._scrollerParent.setSpacing(1);
+
+  this._statusBar = new qx.ui.basic.Label;
+  this._statusBar.setAppearance("table-focus-statusbar");
+  this._statusBar.setDimension("100%", "auto");
+
+  this.add(this._scrollerParent, this._statusBar);
+
+  this._columnVisibilityBt = new qx.ui.toolbar.Button(null, "widget/table/selectColumnOrder.png");
+  this._columnVisibilityBt.addEventListener("execute", this._onColumnVisibilityBtExecuted, this);
+
+  // Create the models
+  this._selectionManager = new qx.ui.table.SelectionManager;
+
+  this.setSelectionModel(new qx.ui.table.SelectionModel);
+  this.setTableColumnModel(new qx.ui.table.TableColumnModel);
+  this.setTableModel(tableModel);
+
+  // Update the status bar
+  this._updateStatusBar();
+
+  // create the main meta column
+  this.setMetaColumnCounts([ -1 ]);
+
+  // Make focusable
+  this.setTabIndex(1);
+  this.addEventListener("keydown", this._onkeydown);
+  this.addEventListener("keypress", this._onkeypress);
+  this.addEventListener("changeFocused", this._onFocusChanged);
+
+  this._focusedCol = 0;
+  this._focusedRow = 0;
+});
+
+
+/** The default row renderer to use when {@link #dataRowRenderer} is null. */
+qx.Class.DEFAULT_DATA_ROW_RENDERER = new qx.ui.table.DefaultDataRowRenderer();
+
+
+/** The selection model. */
+qx.OO.addProperty({ name:"selectionModel", type:"object", instance : "qx.ui.table.SelectionModel" });
+
+/** The table model. */
+qx.OO.addProperty({ name:"tableModel", type:"object", instance : "qx.ui.table.TableModel" });
+
+/** The table column model. */
+qx.OO.addProperty({ name:"tableColumnModel", type:"object", instance : "qx.ui.table.TableColumnModel" });
+
+/** The height of the table rows. */
+qx.OO.addProperty({ name:"rowHeight", type:"number", defaultValue:15 });
+
+/** Whether to show the status bar */
+qx.OO.addProperty({ name:"statusBarVisible", type:"boolean", defaultValue:true });
+
+/** Whether to show the column visibility button */
+qx.OO.addProperty({ name:"columnVisibilityButtonVisible", type:"boolean", defaultValue:true });
+
+/**
+ * {int[]} The number of columns per meta column. If the last array entry is -1,
+ * this meta column will get the remaining columns.
+ */
+qx.OO.addProperty({ name:"metaColumnCounts", type:"object" });
+
+/**
+ * Whether the focus should moved when the mouse is moved over a cell. If false
+ * the focus is only moved on mouse clicks.
+ */
+qx.OO.addProperty({ name:"focusCellOnMouseMove", type:"boolean", defaultValue:false });
+
+/**
+ * Whether the table should keep the first visible row complete. If set to false,
+ * the first row may be rendered partial, depending on the vertical scroll value.
+ */
+qx.OO.addProperty({ name:"keepFirstVisibleRowComplete", type:"boolean", defaultValue:true });
+
+/**
+ * Whether the table cells should be updated when only the selection or the
+ * focus changed. This slows down the table update but allows to react on a
+ * changed selection or a changed focus in a cell renderer.
+ */
+qx.OO.addProperty({ name:"alwaysUpdateCells", type:"boolean", defaultValue:false });
+
+/** The height of the header cells. */
+qx.OO.addProperty({ name:"headerCellHeight", type:"number", defaultValue:16, allowNull:false });
+
+/** The renderer to use for styling the rows. */
+qx.OO.addProperty({ name:"dataRowRenderer", type:"object", instance:"qx.ui.table.DataRowRenderer", defaultValue:qx.Class.DEFAULT_DATA_ROW_RENDERER, allowNull:false });
+
+
+// property modifier
+qx.Proto._modifySelectionModel = function(propValue, propOldValue, propData) {
+  this._selectionManager.setSelectionModel(propValue);
+
+  if (propOldValue != null) {
+    propOldValue.removeEventListener("changeSelection", this._onSelectionChanged, this);
+  }
+  propValue.addEventListener("changeSelection", this._onSelectionChanged, this);
+
+  return true;
+}
+
+
+// property modifier
+qx.Proto._modifyTableModel = function(propValue, propOldValue, propData) {
+  this.getTableColumnModel().init(propValue.getColumnCount());
+
+  if (propOldValue != null) {
+    propOldValue.removeEventListener(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED, this._onTableModelMetaDataChanged, this);
+    propOldValue.removeEventListener(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, this._onTableModelDataChanged, this);
+  }
+  propValue.addEventListener(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED, this._onTableModelMetaDataChanged, this);
+  propValue.addEventListener(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, this._onTableModelDataChanged, this);
+
+  return true;
+}
+
+
+// property modifier
+qx.Proto._modifyTableColumnModel = function(propValue, propOldValue, propData) {
+  if (propOldValue != null) {
+    propOldValue.removeEventListener("visibilityChanged", this._onColVisibilityChanged, this);
+    propOldValue.removeEventListener("widthChanged", this._onColWidthChanged, this);
+    propOldValue.removeEventListener("orderChanged", this._onColOrderChanged, this);
+  }
+  propValue.addEventListener("visibilityChanged", this._onColVisibilityChanged, this);
+  propValue.addEventListener("widthChanged", this._onColWidthChanged, this);
+  propValue.addEventListener("orderChanged", this._onColOrderChanged, this);
+
+  return true;
+};
+
+
+// property modifier
+qx.Proto._modifyStatusBarVisible = function(propValue, propOldValue, propData) {
+  this._statusBar.setDisplay(propValue);
+
+  if (propValue) {
+    this._updateStatusBar();
+  }
+  return true;
+};
+
+
+// property modifier
+qx.Proto._modifyColumnVisibilityButtonVisible = function(propValue, propOldValue, propData) {
+  this._columnVisibilityBt.setDisplay(propValue);
+
+  return true;
+};
+
+
+// property modifier
+qx.Proto._modifyMetaColumnCounts = function(propValue, propOldValue, propData) {
+  var metaColumnCounts = propValue;
+  var scrollerArr = this._getPaneScrollerArr();
+
+  // Remove the panes not needed any more
+  this._cleanUpMetaColumns(metaColumnCounts.length);
+
+  // Update the old panes
+  var leftX = 0;
+  for (var i = 0; i < scrollerArr.length; i++) {
+    var paneScroller = scrollerArr[i];
+    var paneModel = paneScroller.getTablePaneModel();
+    paneModel.setFirstColumnX(leftX);
+    paneModel.setMaxColumnCount(metaColumnCounts[i]);
+    leftX += metaColumnCounts[i];
+  }
+
+  // Add the new panes
+  if (metaColumnCounts.length > scrollerArr.length) {
+    var selectionModel = this.getSelectionModel();
+    var tableModel = this.getTableModel();
+    var columnModel = this.getTableColumnModel();
+
+    for (var i = scrollerArr.length; i < metaColumnCounts.length; i++) {
+      var paneModel = new qx.ui.table.TablePaneModel(columnModel);
+      paneModel.setFirstColumnX(leftX);
+      paneModel.setMaxColumnCount(metaColumnCounts[i]);
+      leftX += metaColumnCounts[i];
+
+      var paneScroller = new qx.ui.table.TablePaneScroller(this);
+      paneScroller.setTablePaneModel(paneModel);
+
+      // Register event listener for vertical scrolling
+      paneScroller.addEventListener("changeScrollY", this._onScrollY, this);
+
+      this._scrollerParent.add(paneScroller);
+    }
+  }
+
+  // Update all meta columns
+  for (var i = 0; i < scrollerArr.length; i++) {
+    var paneScroller = scrollerArr[i];
+    var isLast = (i == (scrollerArr.length - 1));
+
+    // Set the right header height
+    paneScroller.getHeader().setHeight(this.getHeaderCellHeight());
+
+    // Put the _columnVisibilityBt in the top right corner of the last meta column
+    paneScroller.setTopRightWidget(isLast ? this._columnVisibilityBt : null);
+  }
+
+  this._updateScrollerWidths();
+  this._updateScrollBarVisibility();
+
+  return true;
+}
+
+
+// property modifier
+qx.Proto._modifyFocusCellOnMouseMove = function(propValue, propOldValue, propData) {
+  var scrollerArr = this._getPaneScrollerArr();
+  for (var i = 0; i < scrollerArr.length; i++) {
+    scrollerArr[i].setFocusCellOnMouseMove(propValue);
+  }
+  return true;
+};
+
+
+// property modifier
+qx.Proto._modifyKeepFirstVisibleRowComplete = function(propValue, propOldValue, propData) {
+  var scrollerArr = this._getPaneScrollerArr();
+  for (var i = 0; i < scrollerArr.length; i++) {
+    scrollerArr[i]._onKeepFirstVisibleRowCompleteChanged();
+  }
+  return true;
+};
+
+
+// property modifier
+qx.Proto._modifyHeaderCellHeight = function(propValue, propOldValue, propData) {
+  var scrollerArr = this._getPaneScrollerArr();
+  for (var i = 0; i < scrollerArr.length; i++) {
+    scrollerArr[i].getHeader().setHeight(propValue);
+  }
+  return true;
+};
+
+
+/**
+ * Returns the selection manager.
+ *
+ * @return {SelectionManager} the selection manager.
+ */
+qx.Proto._getSelectionManager = function() {
+  return this._selectionManager;
+};
+
+
+/**
+ * Returns an array containing all TablePaneScrollers in this table.
+ *
+ * @return {TablePaneScroller[]} all TablePaneScrollers in this table.
+ */
+qx.Proto._getPaneScrollerArr = function() {
+  return this._scrollerParent.getChildren();
+}
+
+
+/**
+ * Returns a TablePaneScroller of this table.
+ *
+ * @param metaColumn {int} the meta column to get the TablePaneScroller for.
+ * @return {TablePaneScroller} the TablePaneScroller.
+ */
+qx.Proto.getPaneScroller = function(metaColumn) {
+  return this._getPaneScrollerArr()[metaColumn];
+}
+
+
+/**
+ * Cleans up the meta columns.
+ *
+ * @param fromMetaColumn {int} the first meta column to clean up. All following
+ *    meta columns will be cleaned up, too. All previous meta columns will
+ *    stay unchanged. If 0 all meta columns will be cleaned up.
+ */
+qx.Proto._cleanUpMetaColumns = function(fromMetaColumn) {
+  var scrollerArr = this._getPaneScrollerArr();
+  if (scrollerArr != null) {
+    for (var i = scrollerArr.length - 1; i >= fromMetaColumn; i--) {
+      var paneScroller = scrollerArr[i];
+      paneScroller.removeEventListener("changeScrollY", this._onScrollY, this);
+      this._scrollerParent.remove(paneScroller);
+      paneScroller.dispose();
+    }
+  }
+}
+
+
+/**
+ * Event handler. Called when the selection has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onSelectionChanged = function(evt) {
+  var scrollerArr = this._getPaneScrollerArr();
+  for (var i = 0; i < scrollerArr.length; i++) {
+    scrollerArr[i]._onSelectionChanged(evt);
+  }
+
+  this._updateStatusBar();
+}
+
+
+/**
+ * Event handler. Called when the table model meta data has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onTableModelMetaDataChanged = function(evt) {
+  var scrollerArr = this._getPaneScrollerArr();
+  for (var i = 0; i < scrollerArr.length; i++) {
+    scrollerArr[i]._onTableModelMetaDataChanged(evt);
+  }
+
+  this._updateStatusBar();
+}
+
+
+/**
+ * Event handler. Called when the table model data has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onTableModelDataChanged = function(evt) {
+  var scrollerArr = this._getPaneScrollerArr();
+  for (var i = 0; i < scrollerArr.length; i++) {
+    scrollerArr[i]._onTableModelDataChanged(evt);
+  }
+
+  var rowCount = this.getTableModel().getRowCount();
+  if (rowCount != this._lastRowCount) {
+    this._lastRowCount = rowCount;
+
+    this._updateScrollBarVisibility();
+    this._updateStatusBar();
+  }
+};
+
+
+/**
+ * Event handler. Called when a TablePaneScroller has been scrolled vertically.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onScrollY = function(evt) {
+  if (! this._internalChange) {
+    this._internalChange = true;
+
+    // Set the same scroll position to all meta columns
+    var scrollerArr = this._getPaneScrollerArr();
+    for (var i = 0; i < scrollerArr.length; i++) {
+      scrollerArr[i].setScrollY(evt.getData());
+    }
+
+    this._internalChange = false;
+  }
+}
+
+
+/**
+ * Event handler. Called when a key was pressed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onkeydown = function(evt) {
+  var identifier = evt.getKeyIdentifier();
+
+  var consumed = false;
+  var oldFocusedRow = this._focusedRow;
+  if (this.isEditing()) {
+    // Editing mode
+    if (evt.getModifiers() == 0) {
+      consumed = true;
+      switch (identifier) {
+        case "Enter":
+          this.stopEditing();
+          var oldFocusedRow = this._focusedRow;
+          this.moveFocusedCell(0, 1);
+          if (this._focusedRow != oldFocusedRow) {
+            this.startEditing();
+          }
+          break;
+        case "Escape":
+          this.cancelEditing();
+          this.focus();
+          break;
+        default:
+          consumed = false;
+          break;
+      }
+    }
+  } else {
+    // No editing mode
+
+    // Handle keys that are independant from the modifiers
+    consumed = true;
+    switch (identifier) {
+      case "Home":
+        this.setFocusedCell(this._focusedCol, 0, true);
+        break;
+      case "End":
+        var rowCount = this.getTableModel().getRowCount();
+        this.setFocusedCell(this._focusedCol, rowCount - 1, true);
+        break;
+      default:
+        consumed = false;
+        break;
+    }
+
+    // Handle keys that depend on modifiers
+    if (evt.getModifiers() == 0) {
+      consumed = true;
+      switch (identifier) {
+        case "F2":
+        case "Enter":
+          this.startEditing();
+          break;
+        default:
+          consumed = false;
+          break;
+      }
+    } else if (evt.getCtrlKey()) {
+      consumed = true;
+      switch (identifier) {
+        case "A": // Ctrl + A
+          var rowCount = this.getTableModel().getRowCount();
+          if (rowCount > 0) {
+            this.getSelectionModel().setSelectionInterval(0, rowCount - 1);
+          }
+          break;
+        default:
+          consumed = false;
+          break;
+      }
+    }
+  }
+
+  if (oldFocusedRow != this._focusedRow) {
+    // The focus moved -> Let the selection manager handle this event
+    this._selectionManager.handleMoveKeyDown(this._focusedRow, evt);
+  }
+
+  if (consumed) {
+    evt.preventDefault();
+    evt.stopPropagation();
+  }
+};
+
+
+qx.Proto._onkeypress = function(evt)
+{
+  if (this.isEditing()) { return }
+  // No editing mode
+  var oldFocusedRow = this._focusedRow;
+  var consumed = true;
+
+  // Handle keys that are independant from the modifiers
+  var identifier = evt.getKeyIdentifier();
+  switch (identifier) {
+    case "Space":
+      this._selectionManager.handleSelectKeyDown(this._focusedRow, evt);
+      break;
+
+    case "Left":
+      this.moveFocusedCell(-1, 0);
+      break;
+
+    case "Right":
+      this.moveFocusedCell(1, 0);
+      break;
+
+    case "Up":
+      this.moveFocusedCell(0, -1);
+      break;
+
+    case "Down":
+      this.moveFocusedCell(0, 1);
+      break;
+
+    case "PageUp":
+    case "PageDown":
+      var scroller = this.getPaneScroller(0);
+      var pane = scroller.getTablePane();
+      var rowCount = pane.getVisibleRowCount() - 1;
+      var rowHeight = this.getRowHeight();
+      var direction = (identifier == "PageUp") ? -1 : 1;
+      scroller.setScrollY(scroller.getScrollY() + direction * rowCount * rowHeight);
+      this.moveFocusedCell(0, direction * rowCount);
+      break;
+
+    default:
+      consumed = false;
+  }
+  if (oldFocusedRow != this._focusedRow) {
+    // The focus moved -> Let the selection manager handle this event
+    this._selectionManager.handleMoveKeyDown(this._focusedRow, evt);
+  }
+
+  if (consumed) {
+    evt.preventDefault();
+    evt.stopPropagation();
+  }
+};
+
+
+/**
+ * Event handler. Called when the table gets the focus.
+ */
+qx.Proto._onFocusChanged = function(evt) {
+  var scrollerArr = this._getPaneScrollerArr();
+  for (var i = 0; i < scrollerArr.length; i++) {
+    scrollerArr[i]._onFocusChanged(evt);
+  }
+};
+
+
+/**
+ * Event handler. Called when the visibility of a column has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onColVisibilityChanged = function(evt) {
+  var scrollerArr = this._getPaneScrollerArr();
+  for (var i = 0; i < scrollerArr.length; i++) {
+    scrollerArr[i]._onColVisibilityChanged(evt);
+  }
+
+  this._updateScrollerWidths();
+  this._updateScrollBarVisibility();
+}
+
+
+/**
+ * Event handler. Called when the width of a column has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onColWidthChanged = function(evt) {
+  var scrollerArr = this._getPaneScrollerArr();
+  for (var i = 0; i < scrollerArr.length; i++) {
+    scrollerArr[i]._onColWidthChanged(evt);
+  }
+
+  this._updateScrollerWidths();
+  this._updateScrollBarVisibility();
+}
+
+
+/**
+ * Event handler. Called when the column order has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onColOrderChanged = function(evt) {
+  var scrollerArr = this._getPaneScrollerArr();
+  for (var i = 0; i < scrollerArr.length; i++) {
+    scrollerArr[i]._onColOrderChanged(evt);
+  }
+
+  // A column may have been moved between meta columns
+  this._updateScrollerWidths();
+  this._updateScrollBarVisibility();
+}
+
+
+/**
+ * Gets the TablePaneScroller at a certain x position in the page. If there is
+ * no TablePaneScroller at this postion, null is returned.
+ *
+ * @param pageX {int} the position in the page to check (in pixels).
+ * @return {TablePaneScroller} the TablePaneScroller or null.
+ *
+ * @see TablePaneScrollerPool
+ */
+qx.Proto.getTablePaneScrollerAtPageX = function(pageX) {
+  var metaCol = this._getMetaColumnAtPageX(pageX);
+  return (metaCol != -1) ? this.getPaneScroller(metaCol) : null;
+}
+
+
+/**
+ * Sets the currently focused cell.
+ *
+ * @param col {int} the model index of the focused cell's column.
+ * @param row {int} the model index of the focused cell's row.
+ * @param scrollVisible {boolean ? false} whether to scroll the new focused cell
+ *        visible.
+ *
+ * @see TablePaneScrollerPool
+ */
+qx.Proto.setFocusedCell = function(col, row, scrollVisible) {
+  if (!this.isEditing() && (col != this._focusedCol || row != this._focusedRow)) {
+    this._focusedCol = col;
+    this._focusedRow = row;
+
+    var scrollerArr = this._getPaneScrollerArr();
+    for (var i = 0; i < scrollerArr.length; i++) {
+      scrollerArr[i].setFocusedCell(col, row);
+    }
+
+    if (scrollVisible) {
+      this.scrollCellVisible(col, row);
+    }
+  }
+}
+
+
+/**
+ * Returns the column of the currently focused cell.
+ *
+ * @return {int} the model index of the focused cell's column.
+ */
+qx.Proto.getFocusedColumn = function() {
+  return this._focusedCol;
+};
+
+
+/**
+ * Returns the row of the currently focused cell.
+ *
+ * @return {int} the model index of the focused cell's column.
+ */
+qx.Proto.getFocusedRow = function() {
+  return this._focusedRow;
+};
+
+
+/**
+ * Moves the focus.
+ *
+ * @param deltaX {int} The delta by which the focus should be moved on the x axis.
+ * @param deltaY {int} The delta by which the focus should be moved on the y axis.
+ */
+qx.Proto.moveFocusedCell = function(deltaX, deltaY) {
+  var col = this._focusedCol;
+  var row = this._focusedRow;
+
+  if (deltaX != 0) {
+    var columnModel = this.getTableColumnModel();
+    var x = columnModel.getVisibleX(col);
+    var colCount = columnModel.getVisibleColumnCount();
+    x = qx.lang.Number.limit(x + deltaX, 0, colCount - 1);
+    col = columnModel.getVisibleColumnAtX(x);
+  }
+
+  if (deltaY != 0) {
+    var tableModel = this.getTableModel();
+    row = qx.lang.Number.limit(row + deltaY, 0, tableModel.getRowCount() - 1);
+  }
+
+  this.setFocusedCell(col, row, true);
+}
+
+
+/**
+ * Scrolls a cell visible.
+ *
+ * @param col {int} the model index of the column the cell belongs to.
+ * @param row {int} the model index of the row the cell belongs to.
+ */
+qx.Proto.scrollCellVisible = function(col, row) {
+  var columnModel = this.getTableColumnModel();
+  var x = columnModel.getVisibleX(col);
+
+  var metaColumn = this._getMetaColumnAtColumnX(x);
+  if (metaColumn != -1) {
+    this.getPaneScroller(metaColumn).scrollCellVisible(col, row);
+  }
+}
+
+
+/**
+ * Returns whether currently a cell is editing.
+ *
+ * @return whether currently a cell is editing.
+ */
+qx.Proto.isEditing = function() {
+  if (this._focusedCol != null) {
+    var x = this.getTableColumnModel().getVisibleX(this._focusedCol);
+    var metaColumn = this._getMetaColumnAtColumnX(x);
+    return this.getPaneScroller(metaColumn).isEditing();
+  }
+}
+
+
+/**
+ * Starts editing the currently focused cell. Does nothing if already editing
+ * or if the column is not editable.
+ *
+ * @return {boolean} whether editing was started
+ */
+qx.Proto.startEditing = function() {
+  if (this._focusedCol != null) {
+    var x = this.getTableColumnModel().getVisibleX(this._focusedCol);
+    var metaColumn = this._getMetaColumnAtColumnX(x);
+    return this.getPaneScroller(metaColumn).startEditing();
+  }
+  return false;
+}
+
+
+/**
+ * Stops editing and writes the editor's value to the model.
+ */
+qx.Proto.stopEditing = function() {
+  if (this._focusedCol != null) {
+    var x = this.getTableColumnModel().getVisibleX(this._focusedCol);
+    var metaColumn = this._getMetaColumnAtColumnX(x);
+    this.getPaneScroller(metaColumn).stopEditing();
+  }
+}
+
+
+/**
+ * Stops editing without writing the editor's value to the model.
+ */
+qx.Proto.cancelEditing = function() {
+  if (this._focusedCol != null) {
+    var x = this.getTableColumnModel().getVisibleX(this._focusedCol);
+    var metaColumn = this._getMetaColumnAtColumnX(x);
+    this.getPaneScroller(metaColumn).cancelEditing();
+  }
+}
+
+
+/**
+ * Gets the meta column at a certain x position in the page. If there is no
+ * meta column at this postion, -1 is returned.
+ *
+ * @param pageX {int} the position in the page to check (in pixels).
+ * @return {int} the index of the meta column or -1.
+ */
+qx.Proto._getMetaColumnAtPageX = function(pageX) {
+  var scrollerArr = this._getPaneScrollerArr();
+  for (var i = 0; i < scrollerArr.length; i++) {
+    var elem = scrollerArr[i].getElement();
+    if (pageX >= qx.dom.Location.getPageBoxLeft(elem)
+      && pageX <= qx.dom.Location.getPageBoxRight(elem))
+    {
+      return i;
+    }
+  }
+
+  return -1;
+}
+
+
+/**
+ * Returns the meta column a column is shown in. If the column is not shown at
+ * all, -1 is returned.
+ *
+ * @param visXPos {int} the visible x position of the column.
+ * @return {int} the meta column the column is shown in.
+ */
+qx.Proto._getMetaColumnAtColumnX = function(visXPos) {
+  var metaColumnCounts = this.getMetaColumnCounts();
+  var rightXPos = 0;
+  for (var i = 0; i < metaColumnCounts.length; i++) {
+    var counts = metaColumnCounts[i];
+    rightXPos += counts;
+
+    if (counts == -1 || visXPos < rightXPos) {
+      return i;
+    }
+  }
+
+  return -1;
+}
+
+
+/**
+ * Updates the text shown in the status bar.
+ */
+qx.Proto._updateStatusBar = function() {
+  if (this.getStatusBarVisible()) {
+    var selectedRowCount = this.getSelectionModel().getSelectedCount();
+    var rowCount = this.getTableModel().getRowCount();
+
+    var text;
+    if (selectedRowCount == 0) {
+      text = rowCount + ((rowCount == 1) ? " row" : " rows");
+    } else {
+      text = selectedRowCount + " of " + rowCount
+        + ((rowCount == 1) ? " row" : " rows") + " selected";
+    }
+    this._statusBar.setHtml(text);
+  }
+}
+
+
+/**
+ * Updates the widths of all scrollers.
+ */
+qx.Proto._updateScrollerWidths = function() {
+/*  no longer needed, per Til, and removing it does not appear to add problems.
+ *  qx.ui.core.Widget.flushGlobalQueues();
+ */
+
+  // Give all scrollers except for the last one the wanted width
+  // (The last one has a flex with)
+  var scrollerArr = this._getPaneScrollerArr();
+  for (var i = 0; i < scrollerArr.length; i++) {
+    var isLast = (i == (scrollerArr.length - 1));
+    var width = isLast ? "1*" : scrollerArr[i].getTablePaneModel().getTotalWidth();
+    scrollerArr[i].setWidth(width);
+  }
+}
+
+
+/**
+ * Updates the visibility of the scrollbars in the meta columns.
+ */
+qx.Proto._updateScrollBarVisibility = function() {
+  if (this.isSeeable()) {
+    var horBar = qx.ui.table.TablePaneScroller.HORIZONTAL_SCROLLBAR;
+    var verBar = qx.ui.table.TablePaneScroller.VERTICAL_SCROLLBAR;
+    var scrollerArr = this._getPaneScrollerArr();
+
+    // Check which scroll bars are needed
+    var horNeeded = false;
+    var verNeeded = false;
+    for (var i = 0; i < scrollerArr.length; i++) {
+      var isLast = (i == (scrollerArr.length - 1));
+
+      // Only show the last vertical scrollbar
+      var bars = scrollerArr[i].getNeededScrollBars(horNeeded, !isLast);
+
+      if (bars & horBar) {
+        horNeeded = true;
+      }
+      if (isLast && (bars & verBar)) {
+        verNeeded = true;
+      }
+    }
+
+    // Set the needed scrollbars
+    for (var i = 0; i < scrollerArr.length; i++) {
+      var isLast = (i == (scrollerArr.length - 1));
+
+      // Only show the last vertical scrollbar
+      scrollerArr[i].setHorizontalScrollBarVisible(horNeeded);
+      scrollerArr[i].setVerticalScrollBarVisible(isLast && verNeeded);
+    }
+  }
+}
+
+
+/**
+ * Event handler. Called when the column visibiliy button was executed.
+ */
+qx.Proto._onColumnVisibilityBtExecuted = function() {
+  if ((this._columnVisibilityMenuCloseTime == null)
+    || (new Date().getTime() > this._columnVisibilityMenuCloseTime + 200))
+  {
+    this._toggleColumnVisibilityMenu();
+  }
+}
+
+
+/**
+ * Toggels the visibility of the menu used to change the visibility of columns.
+ */
+qx.Proto._toggleColumnVisibilityMenu = function() {
+  if (this._columnVisibilityMenu == null || !this._columnVisibilityMenu.isSeeable()) {
+    // Show the menu
+
+    // Create the new menu
+    var menu = new qx.ui.menu.Menu;
+
+    menu.addEventListener("disappear", function(evt) {
+      this._columnVisibilityMenuCloseTime = new Date().getTime();
+    }, this);
+
+    var tableModel = this.getTableModel();
+    var columnModel = this.getTableColumnModel();
+    for (var x = 0; x < columnModel.getOverallColumnCount(); x++) {
+      var col = columnModel.getOverallColumnAtX(x);
+      var visible = columnModel.isColumnVisible(col);
+      var cmd = { col:col }
+      var bt = new qx.ui.menu.CheckBox(tableModel.getColumnName(col), null, visible);
+
+      var handler = this._createColumnVisibilityCheckBoxHandler(col);
+      bt._handler = handler;
+      bt.addEventListener("execute", handler, this);
+
+      menu.add(bt);
+    }
+
+    menu.setParent(this.getTopLevelWidget());
+
+    this._columnVisibilityMenu = menu;
+
+    // Show the menu
+    var btElem = this._columnVisibilityBt.getElement();
+    menu.setRestrictToPageOnOpen(false);
+    menu.setTop(qx.dom.Location.getClientBoxBottom(btElem));
+    menu.setLeft(-1000);
+
+    // NOTE: We have to show the menu in a timeout, otherwise it won't be shown
+    //       at all.
+    window.setTimeout(function() {
+      menu.show();
+      qx.ui.core.Widget.flushGlobalQueues();
+
+      menu.setLeft(qx.dom.Location.getClientBoxRight(btElem) - menu.getOffsetWidth());
+      qx.ui.core.Widget.flushGlobalQueues();
+    }, 0);
+  } else {
+    // hide the menu
+    menu.hide();
+    this._cleanupColumnVisibilityMenu();
+  }
+}
+
+
+/**
+ * Cleans up the column visibility menu.
+ */
+qx.Proto._cleanupColumnVisibilityMenu = function() {
+  if (this._columnVisibilityMenu != null && ! this._columnVisibilityMenu.getDisposed()) {
+    this._columnVisibilityMenu.dispose();
+    this._columnVisibilityMenu = null;
+  }
+}
+
+
+/**
+ * Creates a handler for a check box of the column visibility menu.
+ *
+ * @param col {int} the model index of column to create the handler for.
+ */
+qx.Proto._createColumnVisibilityCheckBoxHandler = function(col) {
+  return function(evt) {
+    var columnModel = this.getTableColumnModel();
+    columnModel.setColumnVisible(col, !columnModel.isColumnVisible(col));
+  }
+}
+
+
+/**
+ * Sets the width of a column.
+ *
+ * @param col {int} the model index of column.
+ * @param width {int} the new width in pixels.
+ */
+qx.Proto.setColumnWidth = function(col, width) {
+  this.getTableColumnModel().setColumnWidth(col, width);
+}
+
+
+// overridden
+qx.Proto._changeInnerWidth = function(newValue, oldValue) {
+  var self = this;
+  window.setTimeout(function() {
+    self._updateScrollBarVisibility();
+    qx.ui.core.Widget.flushGlobalQueues();
+  }, 0);
+
+  return qx.ui.layout.VerticalBoxLayout.prototype._changeInnerWidth.call(this, newValue, oldValue);
+}
+
+
+// overridden
+qx.Proto._changeInnerHeight = function(newValue, oldValue) {
+  var self = this;
+  window.setTimeout(function() {
+    self._updateScrollBarVisibility();
+    qx.ui.core.Widget.flushGlobalQueues();
+  }, 0);
+
+  return qx.ui.layout.VerticalBoxLayout.prototype._changeInnerHeight.call(this, newValue, oldValue);
+}
+
+
+// overridden
+qx.Proto._afterAppear = function() {
+  qx.ui.layout.VerticalBoxLayout.prototype._afterAppear.call(this);
+
+  this._updateScrollBarVisibility();
+}
+
+
+// overridden
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if (this._tableModel) {
+    this._tableModel.removeEventListener(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED, this._onTableModelMetaDataChanged, this);
+  }
+
+  this._columnVisibilityBt.removeEventListener("execute", this._onColumnVisibilityBtExecuted, this);
+  this._columnVisibilityBt.dispose();
+
+  this._cleanupColumnVisibilityMenu();
+
+  this._cleanUpMetaColumns(0);
+
+  var selectionModel = this.getSelectionModel();
+  if (selectionModel != null) {
+    selectionModel.removeEventListener("changeSelection", this._onSelectionChanged, this);
+  }
+
+  var tableModel = this.getTableModel();
+  if (tableModel != null) {
+    tableModel.removeEventListener(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED, this._onTableModelMetaDataChanged, this);
+    tableModel.removeEventListener(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, this._onTableModelDataChanged, this);
+  }
+
+  var tableColumnModel = this.getTableColumnModel();
+  if (tableColumnModel) {
+    tableColumnModel.removeEventListener("visibilityChanged", this._onColVisibilityChanged, this);
+    tableColumnModel.removeEventListener("widthChanged", this._onColWidthChanged, this);
+    tableColumnModel.removeEventListener("orderChanged", this._onColOrderChanged, this);
+  }
+
+  this.removeEventListener("keydown", this._onkeydown);
+  this.removeEventListener("keypress", this._onkeypress);
+
+  return qx.ui.layout.VerticalBoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TableColumnModel.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TableColumnModel.js
new file mode 100644 (file)
index 0000000..334187a
--- /dev/null
@@ -0,0 +1,399 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+// These are needed because of their instantiation at bottom. I don't think this
+// is a good idea. (wpbasti)
+#require(qx.ui.table.DefaultHeaderCellRenderer)
+#require(qx.ui.table.DefaultDataCellRenderer)
+#require(qx.ui.table.TextFieldCellEditorFactory)
+
+************************************************************************ */
+
+/**
+ * A model that contains all meta data about columns, such as width, renderers,
+ * visibility and order.
+ *
+ * @event widthChanged {qx.event.type.DataEvent} Fired when the width of a
+ *        column has changed. The data property of the event is a map having the
+ *        following attributes:
+ *        <ul>
+ *        <li>col: The model index of the column the width of which has changed.</li>
+ *        <li>newWidth: The new width of the column in pixels.</li>
+ *        <li>oldWidth: The old width of the column in pixels.</li>
+ *        </ul>
+ * @event visibilityChangedPre {qx.event.type.DataEvent} Fired when the
+ *        visibility of a column has changed. This event is equal to
+ *        "visibilityChanged", but is fired right before.
+ * @event visibilityChanged {qx.event.type.DataEvent} Fired when the
+ *        visibility of a column has changed. The data property of the
+ *        event is a map having the following attributes:
+ *        <ul>
+ *        <li>col: The model index of the column the visibility of which has changed.</li>
+ *        <li>visible: Whether the column is now visible.</li>
+ *        </ul>
+ * @event orderChanged {qx.event.type.DataEvent} Fired when the column order
+ *        has changed. The data property of the
+ *        event is a map having the following attributes:
+ *        <ul>
+ *        <li>col: The model index of the column that was moved.</li>
+ *        <li>fromOverXPos: The old overall x position of the column.</li>
+ *        <li>toOverXPos: The new overall x position of the column.</li>
+ *        </ul>
+ *
+ * @see com.ptvag.webcomponent.ui.table.TableModel
+ */
+qx.OO.defineClass("qx.ui.table.TableColumnModel", qx.core.Target,
+function() {
+  qx.core.Target.call(this);
+});
+
+
+/**
+ * Initializes the column model.
+ *
+ * @param colCount {int} the number of columns the model should have.
+ */
+qx.Proto.init = function(colCount) {
+  this._columnDataArr = [];
+
+  var width = qx.ui.table.TableColumnModel.DEFAULT_WIDTH;
+  var headerRenderer = qx.ui.table.TableColumnModel.DEFAULT_HEADER_RENDERER;
+  var dataRenderer = qx.ui.table.TableColumnModel.DEFAULT_DATA_RENDERER;
+  var editorFactory = qx.ui.table.TableColumnModel.DEFAULT_EDITOR_FACTORY;
+  this._overallColumnArr = [];
+  this._visibleColumnArr = [];
+  for (var col = 0; col < colCount; col++) {
+    this._columnDataArr[col] = { width:width, headerRenderer:headerRenderer,
+      dataRenderer:dataRenderer, editorFactory:editorFactory }
+    this._overallColumnArr[col] = col;
+    this._visibleColumnArr[col] = col;
+  }
+
+  this._colToXPosMap = null;
+}
+
+
+/**
+ * Sets the width of a column.
+ *
+ * @param col {int} the model index of the column.
+ * @param width {int} the new width the column should get in pixels.
+ */
+qx.Proto.setColumnWidth = function(col, width) {
+  var oldWidth = this._columnDataArr[col].width;
+  if (oldWidth != width) {
+    this._columnDataArr[col].width = width;
+    if (this.hasEventListeners("widthChanged")) {
+      var data = { col:col, newWidth:width, oldWidth:oldWidth }
+      this.dispatchEvent(new qx.event.type.DataEvent("widthChanged", data), true);
+    }
+  }
+}
+
+
+/**
+ * Returns the width of a column.
+ *
+ * @param col {int} the model index of the column.
+ * @return {int} the width of the column in pixels.
+ */
+qx.Proto.getColumnWidth = function(col) {
+  return this._columnDataArr[col].width;
+}
+
+
+/**
+ * Sets the header renderer of a column.
+ *
+ * @param col {int} the model index of the column.
+ * @param renderer {HeaderCellRenderer} the new header renderer the column
+ *    should get.
+ */
+qx.Proto.setHeaderCellRenderer = function(col, renderer) {
+  this._columnDataArr[col].headerRenderer = renderer;
+}
+
+
+/**
+ * Returns the header renderer of a column.
+ *
+ * @param col {int} the model index of the column.
+ * @return {HeaderCellRenderer} the header renderer of the column.
+ */
+qx.Proto.getHeaderCellRenderer = function(col) {
+  return this._columnDataArr[col].headerRenderer;
+}
+
+
+/**
+ * Sets the data renderer of a column.
+ *
+ * @param col {int} the model index of the column.
+ * @param renderer {DataCellRenderer} the new data renderer the column should get.
+ */
+qx.Proto.setDataCellRenderer = function(col, renderer) {
+  this._columnDataArr[col].dataRenderer = renderer;
+}
+
+
+/**
+ * Returns the data renderer of a column.
+ *
+ * @param col {int} the model index of the column.
+ * @return {DataCellRenderer} the data renderer of the column.
+ */
+qx.Proto.getDataCellRenderer = function(col) {
+  return this._columnDataArr[col].dataRenderer;
+}
+
+
+/**
+ * Sets the cell editor factory of a column.
+ *
+ * @param col {int} the model index of the column.
+ * @param factory {CellEditorFactory} the new cell editor factory the column should get.
+ */
+qx.Proto.setCellEditorFactory = function(col, factory) {
+  this._columnDataArr[col].editorFactory = factory;
+}
+
+
+/**
+ * Returns the cell editor factory of a column.
+ *
+ * @param col {int} the model index of the column.
+ * @return {CellEditorFactory} the cell editor factory of the column.
+ */
+qx.Proto.getCellEditorFactory = function(col) {
+  return this._columnDataArr[col].editorFactory;
+}
+
+
+/**
+ * Returns the map that translates model indexes to x positions.
+ * <p>
+ * The returned map contains for a model index (int) a map having two
+ * properties: overX (the overall x position of the column, int) and
+ * visX (the visible x position of the column, int). visX is missing for
+ * hidden columns.
+ *
+ * @return the "column to x postion" map.
+ */
+qx.Proto._getColToXPosMap = function() {
+  if (this._colToXPosMap == null) {
+    this._colToXPosMap = {};
+    for (var overX = 0; overX < this._overallColumnArr.length; overX++) {
+      var col = this._overallColumnArr[overX];
+      this._colToXPosMap[col] = { overX:overX }
+    }
+    for (var visX = 0; visX < this._visibleColumnArr.length; visX++) {
+      var col = this._visibleColumnArr[visX];
+      this._colToXPosMap[col].visX = visX;
+    }
+  }
+  return this._colToXPosMap;
+}
+
+
+/**
+ * Returns the number of visible columns.
+ *
+ * @return {int} the number of visible columns.
+ */
+qx.Proto.getVisibleColumnCount = function() {
+  return this._visibleColumnArr.length;
+}
+
+
+/**
+ * Returns the model index of a column at a certain visible x position.
+ *
+ * @param visXPos {int} the visible x position of the column.
+ * @return {int} the model index of the column.
+ */
+qx.Proto.getVisibleColumnAtX = function(visXPos) {
+  return this._visibleColumnArr[visXPos];
+}
+
+
+/**
+ * Returns the visible x position of a column.
+ *
+ * @param col {int} the model index of the column.
+ * @return {int} the visible x position of the column.
+ */
+qx.Proto.getVisibleX = function(col) {
+  return this._getColToXPosMap()[col].visX;
+}
+
+
+/**
+ * Returns the overall number of columns (including hidden columns).
+ *
+ * @return {int} the overall number of columns.
+ */
+qx.Proto.getOverallColumnCount = function() {
+  return this._overallColumnArr.length;
+}
+
+
+/**
+ * Returns the model index of a column at a certain overall x position.
+ *
+ * @param overXPos {int} the overall x position of the column.
+ * @return {int} the model index of the column.
+ */
+qx.Proto.getOverallColumnAtX = function(overXPos) {
+  return this._overallColumnArr[overXPos];
+}
+
+
+/**
+ * Returns the overall x position of a column.
+ *
+ * @param col {int} the model index of the column.
+ * @return {int} the overall x position of the column.
+ */
+qx.Proto.getOverallX = function(col) {
+  return this._getColToXPosMap()[col].overX;
+}
+
+
+/**
+ * Returns whether a certain column is visible.
+ *
+ * @param col {int} the model index of the column.
+ * @return {boolean} whether the column is visible.
+ */
+qx.Proto.isColumnVisible = function(col) {
+  return (this._getColToXPosMap()[col].visX != null);
+}
+
+
+/**
+ * Sets whether a certain column is visible.
+ *
+ * @param col {int} the model index of the column.
+ * @param visible {boolean} whether the column should be visible.
+ */
+qx.Proto.setColumnVisible = function(col, visible) {
+  if (visible != this.isColumnVisible(col)) {
+    if (visible) {
+      var colToXPosMap = this._getColToXPosMap();
+
+      var overX = colToXPosMap[col].overX;
+      if (overX == null) {
+        throw new Error("Showing column failed: " + col
+          + ". The column is not added to this TablePaneModel.");
+      }
+
+      // get the visX of the next visible column after the column to show
+      var nextVisX;
+      for (var x = overX + 1; x < this._overallColumnArr.length; x++) {
+        var currCol = this._overallColumnArr[x];
+        var currVisX = colToXPosMap[currCol].visX;
+        if (currVisX != null) {
+          nextVisX = currVisX;
+          break;
+        }
+      }
+
+      // If there comes no visible column any more, then show the column
+      // at the end
+      if (nextVisX == null) {
+        nextVisX = this._visibleColumnArr.length;
+      }
+
+      // Add the column to the visible columns
+      this._visibleColumnArr.splice(nextVisX, 0, col);
+    } else {
+      var visX = this.getVisibleX(col);
+      this._visibleColumnArr.splice(visX, 1);
+    }
+
+    // Invalidate the _colToXPosMap
+    this._colToXPosMap = null;
+
+    // Inform the listeners
+    if (! this._internalChange) {
+      if (this.hasEventListeners("visibilityChangedPre")) {
+        var data = { col:col, visible:visible }
+        this.dispatchEvent(new qx.event.type.DataEvent("visibilityChangedPre", data), true);
+      }
+      if (this.hasEventListeners("visibilityChanged")) {
+        var data = { col:col, visible:visible }
+        this.dispatchEvent(new qx.event.type.DataEvent("visibilityChanged", data), true);
+      }
+    }
+
+    //this.debug("setColumnVisible col:"+col+",visible:"+visible+",this._overallColumnArr:"+this._overallColumnArr+",this._visibleColumnArr:"+this._visibleColumnArr);
+  }
+}
+
+
+/**
+ * Moves a column.
+ *
+ * @param fromOverXPos {int} the overall x postion of the column to move.
+ * @param toOverXPos {int} the overall x postion of where the column should be
+ *    moved to.
+ */
+qx.Proto.moveColumn = function(fromOverXPos, toOverXPos) {
+  this._internalChange = true;
+
+  var col = this._overallColumnArr[fromOverXPos];
+  var visible = this.isColumnVisible(col);
+
+  if (visible) {
+    this.setColumnVisible(col, false);
+  }
+
+  this._overallColumnArr.splice(fromOverXPos, 1);
+  this._overallColumnArr.splice(toOverXPos, 0, col);
+
+  // Invalidate the _colToXPosMap
+  this._colToXPosMap = null;
+
+  if (visible) {
+    this.setColumnVisible(col, true);
+  }
+
+  this._internalChange = false;
+
+  // Inform the listeners
+  if (this.hasEventListeners("orderChanged")) {
+    var data = { col:col, fromOverXPos:fromOverXPos, toOverXPos:toOverXPos }
+    this.dispatchEvent(new qx.event.type.DataEvent("orderChanged", data), true);
+  }
+}
+
+
+/** {int} the default width of a column in pixels. */
+qx.Class.DEFAULT_WIDTH = 100;
+
+/** {DefaultDataCellRenderer} the default header cell renderer. */
+qx.Class.DEFAULT_HEADER_RENDERER = new qx.ui.table.DefaultHeaderCellRenderer;
+
+/** {DefaultDataCellRenderer} the default data cell renderer. */
+qx.Class.DEFAULT_DATA_RENDERER = new qx.ui.table.DefaultDataCellRenderer;
+
+/** {TextFieldCellEditorFactory} the default editor factory. */
+qx.Class.DEFAULT_EDITOR_FACTORY = new qx.ui.table.TextFieldCellEditorFactory;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TableModel.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TableModel.js
new file mode 100644 (file)
index 0000000..6bf4a55
--- /dev/null
@@ -0,0 +1,243 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * The data model of a table.
+ *
+ * @event dataChanged {qx.event.type.DataEvent} Fired when the table data changed
+ *        (the stuff shown in the table body). The data property of the event
+ *        may be null or a map having the following attributes:
+ *        <ul>
+ *        <li>firstRow: The index of the first row that has changed.</li>
+ *        <li>lastRow: The index of the last row that has changed.</li>
+ *        <li>firstColumn: The model index of the first column that has changed.</li>
+ *        <li>lastColumn: The model index of the last column that has changed.</li>
+ *        </ul>
+ * @event metaDataChanged {qx.event.type.Event} Fired when the meta data changed
+ *        (the stuff shown in the table header).
+ */
+qx.OO.defineClass("qx.ui.table.TableModel", qx.core.Target,
+function() {
+  qx.core.Target.call(this);
+});
+
+
+/**
+ * Returns the number of rows in the model.
+ *
+ * @return {int} the number of rows.
+ */
+qx.Proto.getRowCount = function() {
+  throw new Error("getRowCount is abstract");
+}
+
+
+/**
+ * <p>Returns the data of one row. This function may be overriden by models which hold
+ * all data of a row in one object. By using this function, clients have a way of
+ * quickly retrieving the entire row data.</p>
+ *
+ * <p><b>Important:</b>Models which do not have their row data accessible in one object
+ * may return null.</p>
+ *
+ * @param rowIndex {int} the model index of the row.
+ * @return {Object} the row data as an object or null if the model does not support row data
+ *                  objects. The details on the object returned are determined by the model
+ *                  implementation only.
+ */
+qx.Proto.getRowData = function(rowIndex) {
+  return null;
+}
+
+
+/**
+ * Returns the number of columns in the model.
+ *
+ * @return {int} the number of columns.
+ */
+qx.Proto.getColumnCount = function() {
+  throw new Error("getColumnCount is abstract");
+}
+
+
+/**
+ * Returns the ID of column. The ID may be used to identify columns
+ * independent from their index in the model. E.g. for being aware of added
+ * columns when saving the width of a column.
+ *
+ * @param columnIndex {int} the index of the column.
+ * @return {string} the ID of the column.
+ */
+qx.Proto.getColumnId = function(columnIndex) {
+  throw new Error("getColumnId is abstract");
+}
+
+
+/**
+ * Returns the index of a column.
+ *
+ * @param columnId {string} the ID of the column.
+ * @return {int} the index of the column.
+ */
+qx.Proto.getColumnIndexById = function(columnId) {
+  throw new Error("getColumnIndexById is abstract");
+}
+
+
+/**
+ * Returns the name of a column. This name will be shown to the user in the
+ * table header.
+ *
+ * @param columnIndex {int} the index of the column.
+ * @return {string} the name of the column.
+ */
+qx.Proto.getColumnName = function(columnIndex) {
+  throw new Error("getColumnName is abstract");
+}
+
+
+/**
+ * Returns whether a column is editable.
+ *
+ * @param columnIndex {int} the column to check.
+ * @return {boolean} whether the column is editable.
+ */
+qx.Proto.isColumnEditable = function(columnIndex) {
+  return false;
+}
+
+
+/**
+ * Returns whether a column is sortable.
+ *
+ * @param columnIndex {int} the column to check.
+ * @return {boolean} whether the column is sortable.
+ */
+qx.Proto.isColumnSortable = function(columnIndex) {
+  return false;
+}
+
+
+/**
+ * Sorts the model by a column.
+ *
+ * @param columnIndex {int} the column to sort by.
+ * @param ascending {boolean} whether to sort ascending.
+ */
+qx.Proto.sortByColumn = function(columnIndex, ascending) {
+}
+
+
+/**
+ * Returns the column index the model is sorted by. If the model is not sorted
+ * -1 is returned.
+ *
+ * @return {int} the column index the model is sorted by.
+ */
+qx.Proto.getSortColumnIndex = function() {
+  return -1;
+}
+
+
+/**
+ * Returns whether the model is sorted ascending.
+ *
+ * @return {boolean} whether the model is sorted ascending.
+ */
+qx.Proto.isSortAscending = function() {
+  return true;
+}
+
+
+/**
+ * Prefetches some rows. This is a hint to the model that the specified rows
+ * will be read soon.
+ *
+ * @param firstRowIndex {int} the index of first row.
+ * @param lastRowIndex {int} the index of last row.
+ */
+qx.Proto.prefetchRows = function(firstRowIndex, lastRowIndex) {
+}
+
+
+/**
+ * Returns a cell value by column index.
+ *
+ * @param columnIndex {int} the index of the column.
+ * @param rowIndex {int} the index of the row.
+ * @return {var} The value of the cell.
+ * @see #getValueById{}
+ */
+qx.Proto.getValue = function(columnIndex, rowIndex) {
+  throw new Error("getValue is abstract");
+}
+
+
+/**
+ * Returns a cell value by column ID.
+ * <p>
+ * Whenever you have the choice, use {@link #getValue()} instead,
+ * because this should be faster.
+ *
+ * @param columnId {string} the ID of the column.
+ * @param rowIndex {int} the index of the row.
+ * @return {var} the value of the cell.
+ */
+qx.Proto.getValueById = function(columnId, rowIndex) {
+  return this.getValue(this.getColumnIndexById(columnId), rowIndex);
+}
+
+
+/**
+ * Sets a cell value by column index.
+ *
+ * @param columnIndex {int} The index of the column.
+ * @param rowIndex {int} the index of the row.
+ * @param value {var} The new value.
+ * @see #setValueById{}
+ */
+qx.Proto.setValue = function(columnIndex, rowIndex, value) {
+  throw new Error("setValue is abstract");
+}
+
+
+/**
+ * Sets a cell value by column ID.
+ * <p>
+ * Whenever you have the choice, use {@link #setValue()} instead,
+ * because this should be faster.
+ *
+ * @param columnId {string} The ID of the column.
+ * @param rowIndex {int} The index of the row.
+ * @param value {var} The new value.
+ */
+qx.Proto.setValueById = function(columnId, rowIndex, value) {
+  return this.setValue(this.getColumnIndexById(columnId), rowIndex, value);
+}
+
+
+/** {string} The type of the event fired when the data changed. */
+qx.Class.EVENT_TYPE_DATA_CHANGED = "dataChanged";
+
+/** {string} The type of the event fired when the meta data changed. */
+qx.Class.EVENT_TYPE_META_DATA_CHANGED = "metaDataChanged";
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePane.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePane.js
new file mode 100644 (file)
index 0000000..41db2ab
--- /dev/null
@@ -0,0 +1,486 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * The table pane that shows a certain section from a table. This class handles
+ * the display of the data part of a table and is therefore the base for virtual
+ * scrolling.
+ *
+ * @param paneScroller {TablePaneScroller} the TablePaneScroller the header belongs to.
+ */
+qx.OO.defineClass("qx.ui.table.TablePane", qx.ui.basic.Terminator,
+function(paneScroller) {
+  qx.ui.basic.Terminator.call(this);
+
+  this._paneScroller = paneScroller;
+
+  this.debug("USE_ARRAY_JOIN:" + qx.ui.table.TablePane.USE_ARRAY_JOIN + ", USE_TABLE:" + qx.ui.table.TablePane.USE_TABLE);
+
+  this._lastColCount = 0;
+  this._lastRowCount = 0;
+});
+
+/** The index of the first row to show. */
+qx.OO.addProperty({ name:"firstVisibleRow", type:"number", defaultValue:0 });
+
+/** The number of rows to show. */
+qx.OO.addProperty({ name:"visibleRowCount", type:"number", defaultValue:0 });
+
+
+// property modifier
+qx.Proto._modifyFirstVisibleRow = function(propValue, propOldValue, propData) {
+  this._updateContent();
+  return true;
+}
+
+
+// property modifier
+qx.Proto._modifyVisibleRowCount = function(propValue, propOldValue, propData) {
+  this._updateContent();
+  return true;
+}
+
+
+// overridden
+qx.Proto._afterAppear = function() {
+  qx.ui.basic.Terminator.prototype._afterAppear.call(this);
+
+  if (this._updateWantedWhileInvisible) {
+    // We are visible now and an update was wanted while we were invisible
+    // -> Do the update now
+    this._updateContent();
+    this._updateWantedWhileInvisible = false;
+  }
+};
+
+
+/**
+ * Returns the TablePaneScroller this pane belongs to.
+ *
+ * @return {TablePaneScroller} the TablePaneScroller.
+ */
+qx.Proto.getPaneScroller = function() {
+  return this._paneScroller;
+};
+
+
+/**
+ * Returns the table this pane belongs to.
+ *
+ * @return {Table} the table.
+ */
+qx.Proto.getTable = function() {
+  return this._paneScroller.getTable();
+};
+
+
+/**
+ * Sets the currently focused cell.
+ *
+ * @param col {int} the model index of the focused cell's column.
+ * @param row {int} the model index of the focused cell's row.
+ * @param massUpdate {boolean ? false} Whether other updates are planned as well.
+ *        If true, no repaint will be done.
+ */
+qx.Proto.setFocusedCell = function(col, row, massUpdate) {
+  if (col != this._focusedCol || row != this._focusedRow) {
+    var oldCol = this._focusedCol;
+    var oldRow = this._focusedRow;
+    this._focusedCol = col;
+    this._focusedRow = row;
+
+    // Update the focused row background
+    if (row != oldRow && !massUpdate) {
+      // NOTE: Only the old and the new row need update
+      this._updateContent(false, oldRow, true);
+      this._updateContent(false, row, true);
+    }
+  }
+}
+
+
+/**
+ * Event handler. Called when the selection has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onSelectionChanged = function(evt) {
+  this._updateContent(false, null, true);
+}
+
+
+/**
+ * Event handler. Called when the table gets or looses the focus.
+ */
+qx.Proto._onFocusChanged = function(evt) {
+  this._updateContent(false, null, true);
+};
+
+
+/**
+ * Event handler. Called when the width of a column has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onColWidthChanged = function(evt) {
+  this._updateContent(true);
+}
+
+
+/**
+ * Event handler. Called the column order has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onColOrderChanged = function(evt) {
+  this._updateContent(true);
+}
+
+
+/**
+ * Event handler. Called when the pane model has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onPaneModelChanged = function(evt) {
+  this._updateContent(true);
+}
+
+
+/**
+ * Event handler. Called when the table model data has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onTableModelDataChanged = function(evt) {
+  var data = evt.getData ? evt.getData() : null;
+
+  var firstRow = this.getFirstVisibleRow();
+  var rowCount = this.getVisibleRowCount();
+  if (data == null || data.lastRow == -1
+    || data.lastRow >= firstRow && data.firstRow < firstRow + rowCount)
+  {
+    // The change intersects this pane
+    this._updateContent();
+  }
+}
+
+
+/**
+ * Event handler. Called when the table model meta data has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onTableModelMetaDataChanged = function(evt) {
+  this._updateContent();
+}
+
+
+/**
+ * Updates the content of the pane.
+ *
+ * @param completeUpdate {boolean ? false} if true a complete update is performed.
+ *    On a complete update all cell widgets are recreated.
+ * @param onlyRow {int ? null} if set only the specified row will be updated.
+ * @param onlySelectionOrFocusChanged {boolean ? false} if true, cell values won't
+ *        be updated. Only the row background will.
+ */
+qx.Proto._updateContent = function(completeUpdate, onlyRow,
+  onlySelectionOrFocusChanged)
+{
+  if (! this.isSeeable()) {
+    this._updateWantedWhileInvisible = true;
+    return;
+  }
+
+  if (qx.ui.table.TablePane.USE_ARRAY_JOIN) {
+    this._updateContent_array_join(completeUpdate, onlyRow, onlySelectionOrFocusChanged);
+  } else {
+    this._updateContent_orig(completeUpdate, onlyRow, onlySelectionOrFocusChanged);
+  }
+}
+
+
+qx.Proto._updateContent_array_join = function(completeUpdate, onlyRow,
+  onlySelectionOrFocusChanged)
+{
+  var TablePane = qx.ui.table.TablePane;
+
+  var table = this.getTable();
+
+  var selectionModel = table.getSelectionModel();
+  var tableModel = table.getTableModel();
+  var columnModel = table.getTableColumnModel();
+  var paneModel = this.getPaneScroller().getTablePaneModel();
+  var rowRenderer = table.getDataRowRenderer();
+
+  var colCount = paneModel.getColumnCount();
+  var rowHeight = table.getRowHeight();
+
+  var firstRow = this.getFirstVisibleRow();
+  var rowCount = this.getVisibleRowCount();
+  var modelRowCount = tableModel.getRowCount();
+  if (firstRow + rowCount > modelRowCount) {
+    rowCount = Math.max(0, modelRowCount - firstRow);
+  }
+
+  var cellInfo = { table:table };
+  cellInfo.styleHeight = rowHeight;
+
+  var htmlArr = [];
+  var rowWidth = paneModel.getTotalWidth();
+
+  if (TablePane.USE_TABLE) {
+    htmlArr.push('<table cellspacing\="0" cellpadding\="0" style\="table-layout:fixed;font-family:\'Segoe UI\', Corbel, Calibri, Tahoma, \'Lucida Sans Unicode\', sans-serif;font-size:11px;width:');
+    htmlArr.push(rowWidth);
+    htmlArr.push('px"><colgroup>');
+
+    for (var x = 0; x < colCount; x++) {
+      var col = paneModel.getColumnAtX(x);
+
+      htmlArr.push();
+      htmlArr.push(columnModel.getColumnWidth(col));
+      htmlArr.push('"/>');
+    }
+
+    htmlArr.push('</colgroup><tbody>');
+  }
+
+  tableModel.prefetchRows(firstRow, firstRow + rowCount - 1);
+  for (var y = 0; y < rowCount; y++) {
+    var row = firstRow + y;
+
+    cellInfo.row = row;
+    cellInfo.selected = selectionModel.isSelectedIndex(row);
+    cellInfo.focusedRow = (this._focusedRow == row);
+    cellInfo.rowData = tableModel.getRowData(row);
+
+    // Update this row
+    if (TablePane.USE_TABLE) {
+      htmlArr.push('<tr style\="height:');
+      htmlArr.push(rowHeight);
+    } else {
+      htmlArr.push('<div style\="position:absolute;font-family:\'Segoe UI\', Corbel, Calibri, Tahoma, \'Lucida Sans Unicode\', sans-serif;font-size:11px;left:0px;top:');
+      htmlArr.push(y * rowHeight);
+      htmlArr.push('px;width:');
+      htmlArr.push(rowWidth);
+      htmlArr.push('px;height:');
+      htmlArr.push(rowHeight);
+      htmlArr.push('px;background-color:');
+    }
+
+    rowRenderer._createRowStyle_array_join(cellInfo, htmlArr);
+
+    htmlArr.push('">');
+
+    var left = 0;
+    for (var x = 0; x < colCount; x++) {
+      var col = paneModel.getColumnAtX(x);
+      cellInfo.xPos = x;
+      cellInfo.col = col;
+      cellInfo.editable = tableModel.isColumnEditable(col);
+      cellInfo.focusedCol = (this._focusedCol == col);
+      cellInfo.value = tableModel.getValue(col, row);
+      var cellWidth = columnModel.getColumnWidth(col);
+
+      cellInfo.styleLeft = left;
+      cellInfo.styleWidth = cellWidth;
+
+      var cellRenderer = columnModel.getDataCellRenderer(col);
+      cellRenderer.createDataCellHtml_array_join(cellInfo, htmlArr);
+
+      left += cellWidth;
+    }
+
+    if (TablePane.USE_TABLE) {
+      htmlArr.push('</tr>');
+    } else {
+      htmlArr.push('</div>');
+    }
+  }
+
+  if (TablePane.USE_TABLE) {
+    htmlArr.push('</tbody></table>');
+  }
+
+  var elem = this.getElement();
+  // this.debug(">>>" + htmlArr.join("") + "<<<")
+  elem.innerHTML = htmlArr.join("");
+
+  this.setHeight(rowCount * rowHeight);
+
+  this._lastColCount = colCount;
+  this._lastRowCount = rowCount;
+}
+
+
+qx.Proto._updateContent_orig = function(completeUpdate, onlyRow,
+  onlySelectionOrFocusChanged)
+{
+  var TablePane = qx.ui.table.TablePane;
+
+  var table = this.getTable();
+
+  var alwaysUpdateCells = table.getAlwaysUpdateCells();
+
+  var selectionModel = table.getSelectionModel();
+  var tableModel = table.getTableModel();
+  var columnModel = table.getTableColumnModel();
+  var paneModel = this.getPaneScroller().getTablePaneModel();
+  var rowRenderer = table.getDataRowRenderer();
+
+  var colCount = paneModel.getColumnCount();
+  var rowHeight = table.getRowHeight();
+
+  var firstRow = this.getFirstVisibleRow();
+  var rowCount = this.getVisibleRowCount();
+  var modelRowCount = tableModel.getRowCount();
+  if (firstRow + rowCount > modelRowCount) {
+    rowCount = Math.max(0, modelRowCount - firstRow);
+  }
+
+  // Remove the rows that are not needed any more
+  if (completeUpdate || this._lastRowCount > rowCount) {
+    var firstRowToRemove = completeUpdate ? 0 : rowCount;
+    this._cleanUpRows(firstRowToRemove);
+  }
+
+  if (TablePane.USE_TABLE) {
+    throw new Error("Combination of USE_TABLE==true and USE_ARRAY_JOIN==false is not yet implemented");
+  }
+
+  var elem = this.getElement();
+  var childNodes = elem.childNodes;
+  var cellInfo = { table:table };
+  tableModel.prefetchRows(firstRow, firstRow + rowCount - 1);
+  for (var y = 0; y < rowCount; y++) {
+    var row = firstRow + y;
+    if ((onlyRow != null) && (row != onlyRow)) {
+      continue;
+    }
+
+    cellInfo.row = row;
+    cellInfo.selected = selectionModel.isSelectedIndex(row);
+    cellInfo.focusedRow = (this._focusedRow == row);
+    cellInfo.rowData = tableModel.getRowData(row);
+
+    // Update this row
+    var rowElem;
+    var recyleRowElem;
+    if (y < childNodes.length) {
+      rowElem = childNodes[y];
+      recyleRowElem = true
+    } else {
+      var rowElem = document.createElement("div");
+
+      //rowElem.style.position = "relative";
+      rowElem.style.position = "absolute";
+      rowElem.style.left = "0px";
+      rowElem.style.top = (y * rowHeight) + "px";
+
+      rowElem.style.height = rowHeight + "px";
+      rowElem.style.fontFamily = TablePane.CONTENT_ROW_FONT_FAMILY;
+      rowElem.style.fontSize = TablePane.CONTENT_ROW_FONT_SIZE;
+      elem.appendChild(rowElem);
+      recyleRowElem = false;
+    }
+
+    rowRenderer.updateDataRowElement(cellInfo, rowElem);
+
+    if (alwaysUpdateCells || !recyleRowElem || !onlySelectionOrFocusChanged) {
+      var html = "";
+      var left = 0;
+      for (var x = 0; x < colCount; x++) {
+        var col = paneModel.getColumnAtX(x);
+        cellInfo.xPos = x;
+        cellInfo.col = col;
+        cellInfo.editable = tableModel.isColumnEditable(col);
+        cellInfo.focusedCol = (this._focusedCol == col);
+        cellInfo.value = tableModel.getValue(col, row);
+        var width = columnModel.getColumnWidth(col);
+        cellInfo.style = 'position:absolute;left:' + left
+          + 'px;top:0px;width:' + width
+          + 'px; height:' + rowHeight + "px";
+
+        var cellRenderer = columnModel.getDataCellRenderer(col);
+        if (recyleRowElem) {
+          var cellElem = rowElem.childNodes[x];
+          cellRenderer.updateDataCellElement(cellInfo, cellElem);
+        } else {
+          html += cellRenderer.createDataCellHtml(cellInfo);
+        }
+
+        left += width;
+      }
+      if (! recyleRowElem) {
+        rowElem.style.width = left + "px";
+        rowElem.innerHTML = html;
+      }
+    }
+  }
+
+  this.setHeight(rowCount * rowHeight);
+
+  this._lastColCount = colCount;
+  this._lastRowCount = rowCount;
+}
+
+
+/**
+ * Cleans up the row widgets.
+ *
+ * @param firstRowToRemove {int} the visible index of the first row to clean up.
+ *    All following rows will be cleaned up, too.
+ */
+qx.Proto._cleanUpRows = function(firstRowToRemove) {
+  var elem = this.getElement();
+  if (elem) {
+    var childNodes = this.getElement().childNodes;
+    var paneModel = this.getPaneScroller().getTablePaneModel();
+    var colCount = paneModel.getColumnCount();
+    for (var y = childNodes.length - 1; y >= firstRowToRemove; y--) {
+      elem.removeChild(childNodes[y]);
+    }
+  }
+}
+
+
+// overridden
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  this._cleanUpRows(0);
+
+  return qx.ui.basic.Terminator.prototype.dispose.call(this);
+}
+
+
+qx.Class.USE_ARRAY_JOIN = false;
+qx.Class.USE_TABLE = false;
+
+
+qx.Class.CONTENT_ROW_FONT_FAMILY = '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif';
+qx.Class.CONTENT_ROW_FONT_SIZE = "11px";
+
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePaneHeader.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePaneHeader.js
new file mode 100644 (file)
index 0000000..6579502
--- /dev/null
@@ -0,0 +1,276 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * Shows the header of a table.
+ *
+ * @param paneScroller {TablePaneScroller} the TablePaneScroller the header belongs to.
+ */
+qx.OO.defineClass("qx.ui.table.TablePaneHeader", qx.ui.layout.HorizontalBoxLayout,
+function(paneScroller) {
+  qx.ui.layout.HorizontalBoxLayout.call(this);
+
+  this._paneScroller = paneScroller;
+});
+
+
+/**
+ * Returns the TablePaneScroller this header belongs to.
+ *
+ * @return {TablePaneScroller} the TablePaneScroller.
+ */
+qx.Proto.getPaneScroller = function() {
+  return this._paneScroller;
+};
+
+
+/**
+ * Returns the table this header belongs to.
+ *
+ * @return {Table} the table.
+ */
+qx.Proto.getTable = function() {
+  return this._paneScroller.getTable();
+};
+
+
+/**
+ * Event handler. Called when the width of a column has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onColWidthChanged = function(evt) {
+  var data = evt.getData();
+  this.setColumnWidth(data.col, data.newWidth);
+}
+
+
+/**
+ * Event handler. Called the column order has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onColOrderChanged = function(evt) {
+  this._updateContent(true);
+}
+
+
+/**
+ * Event handler. Called when the pane model has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onPaneModelChanged = function(evt) {
+  this._updateContent(true);
+}
+
+
+/**
+ * Event handler. Called when the table model meta data has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onTableModelMetaDataChanged = function(evt) {
+  this._updateContent();
+}
+
+
+/**
+ * Sets the column width. This overrides the width from the column model.
+ *
+ * @param col {int} the column to change the width for.
+ * @param width {int} the new width.
+ */
+qx.Proto.setColumnWidth = function(col, width) {
+  var x = this.getPaneScroller().getTablePaneModel().getX(col);
+  var children = this.getChildren();
+  if (children[x] != null) {
+    children[x].setWidth(width);
+  }
+}
+
+
+/**
+ * Sets the column the mouse is currently over.
+ *
+ * @param col {int} the model index of the column the mouse is currently over or
+ *    null if the mouse is over no column.
+ */
+qx.Proto.setMouseOverColumn = function(col) {
+  if (col != this._lastMouseOverColumn) {
+    var paneModel = this.getPaneScroller().getTablePaneModel();
+    var children = this.getChildren();
+
+    if (this._lastMouseOverColumn != null) {
+      var widget = children[paneModel.getX(this._lastMouseOverColumn)];
+      if (widget != null) {
+        widget.removeState("mouseover");
+      }
+    }
+    if (col != null) {
+      children[paneModel.getX(col)].addState("mouseover");
+    }
+
+    this._lastMouseOverColumn = col;
+  }
+}
+
+
+/**
+ * Shows the feedback shown while a column is moved by the user.
+ *
+ * @param col {int} the model index of the column to show the move feedback for.
+ * @param x {int} the x position the left side of the feeback should have
+ *    (in pixels, relative to the left side of the header).
+ */
+qx.Proto.showColumnMoveFeedback = function(col, x) {
+  var elem = this.getElement();
+  if (this._moveFeedback == null) {
+    var xPos = this.getPaneScroller().getTablePaneModel().getX(col);
+    var cellWidget = this.getChildren()[xPos];
+
+    // Create the feedback
+    // Workaround: Since a cloned widget throws an exception when it is
+    //       added to another component we have to create a new one
+    //       using the renderer
+    //this._moveFeedback = cellWidget.clone();
+    var tableModel = this.getTable().getTableModel();
+    var columnModel = this.getTable().getTableColumnModel();
+    var cellInfo = { xPos:xPos, col:col, name:tableModel.getColumnName(col) }
+    var cellRenderer = columnModel.getHeaderCellRenderer(col);
+    this._moveFeedback = cellRenderer.createHeaderCell(cellInfo);
+
+    // Configure the feedback
+    with (this._moveFeedback) {
+      setWidth(cellWidget.getBoxWidth());
+      setHeight(cellWidget.getBoxHeight());
+      setZIndex(1000000);
+      setOpacity(0.8);
+      setTop(qx.dom.Location.getClientBoxTop(elem));
+    }
+    this.getTopLevelWidget().add(this._moveFeedback);
+  }
+
+  this._moveFeedback.setLeft(qx.dom.Location.getClientBoxLeft(elem) + x);
+}
+
+
+/**
+ * Hides the feedback shown while a column is moved by the user.
+ */
+qx.Proto.hideColumnMoveFeedback = function() {
+  if (this._moveFeedback != null) {
+    this.getTopLevelWidget().remove(this._moveFeedback);
+    this._moveFeedback.dispose();
+    this._moveFeedback = null;
+  }
+}
+
+
+/**
+ * Returns whether the column move feedback is currently shown.
+ */
+qx.Proto.isShowingColumnMoveFeedback = function() {
+  return this._moveFeedback != null;
+}
+
+
+/**
+ * Updates the content of the header.
+ *
+ * @param completeUpdate {boolean} if true a complete update is performed. On a
+ *    complete update all header widgets are recreated.
+ */
+qx.Proto._updateContent = function(completeUpdate) {
+  var tableModel = this.getTable().getTableModel();
+  var columnModel = this.getTable().getTableColumnModel();
+  var paneModel = this.getPaneScroller().getTablePaneModel();
+
+  var children = this.getChildren();
+  var oldColCount = children.length;
+  var colCount = paneModel.getColumnCount();
+
+  var sortedColum = tableModel.getSortColumnIndex();
+
+  // Remove all widgets on the complete update
+  if (completeUpdate) {
+    this._cleanUpCells();
+  }
+
+  // Update the header
+  var cellInfo = {};
+  cellInfo.sortedAscending = tableModel.isSortAscending();
+  for (var x = 0; x < colCount; x++) {
+    var col = paneModel.getColumnAtX(x);
+
+    var colWidth = columnModel.getColumnWidth(col);
+
+    // TODO: Get real cell renderer
+    var cellRenderer = columnModel.getHeaderCellRenderer(col);
+
+    cellInfo.xPos = x;
+    cellInfo.col = col;
+    cellInfo.name = tableModel.getColumnName(col);
+    cellInfo.editable = tableModel.isColumnEditable(col);
+    cellInfo.sorted = (col == sortedColum);
+
+    // Get the cached widget
+    var cachedWidget = children[x];
+
+    // Create or update the widget
+    if (cachedWidget == null) {
+      // We have no cached widget -> create it
+      cachedWidget = cellRenderer.createHeaderCell(cellInfo);
+      cachedWidget.set({ width:colWidth, height:"100%" });
+
+      this.add(cachedWidget);
+    } else {
+      // This widget already created before -> recycle it
+      cellRenderer.updateHeaderCell(cellInfo, cachedWidget);
+    }
+  }
+}
+
+
+/**
+ * Cleans up all header cells.
+ */
+qx.Proto._cleanUpCells = function() {
+  var children = this.getChildren();
+  for (var x = children.length - 1; x >= 0; x--) {
+    var cellWidget = children[x];
+    //this.debug("disposed:" + cellWidget.getDisposed() + ",has parent: " + (cellWidget.getParent() != null) + ",x:"+x);
+    this.remove(cellWidget);
+    cellWidget.dispose();
+  }
+}
+
+
+// overridden
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePaneModel.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePaneModel.js
new file mode 100644 (file)
index 0000000..d53da59
--- /dev/null
@@ -0,0 +1,179 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * The model of a table pane. This model works as proxy to a
+ * {@link TableColumnModel} and manages the visual order of the columns shown in
+ * a {@link TablePane}.
+ *
+ * @param tableColumnModel {TableColumnModel} The TableColumnModel of which this
+ *    model is the proxy.
+ *
+ * @event modelChanged {qx.event.type.Event} Fired when the model changed.
+ */
+qx.OO.defineClass("qx.ui.table.TablePaneModel", qx.core.Target,
+function(tableColumnModel) {
+  qx.core.Target.call(this);
+
+  tableColumnModel.addEventListener("visibilityChangedPre", this._onColVisibilityChanged, this);
+
+  this._tableColumnModel = tableColumnModel;
+});
+
+
+/** The visible x position of the first column this model should contain. */
+qx.OO.addProperty({ name : "firstColumnX", type : "number", defaultValue : 0 });
+
+/**
+ * The maximum number of columns this model should contain. If -1 this model will
+ * contain all remaining columns.
+ */
+qx.OO.addProperty({ name : "maxColumnCount", type : "number", defaultValue : -1 });
+
+
+// property modifier
+qx.Proto._modifyFirstColumnX = function(propValue, propOldValue, propData) {
+  this._columnCount = null;
+  this.createDispatchEvent(qx.ui.table.TablePaneModel.EVENT_TYPE_MODEL_CHANGED);
+  return true;
+}
+
+
+// property modifier
+qx.Proto._modifyMaxColumnCount = function(propValue, propOldValue, propData) {
+  this._columnCount = null;
+  this.createDispatchEvent(qx.ui.table.TablePaneModel.EVENT_TYPE_MODEL_CHANGED);
+  return true;
+}
+
+
+/**
+ * Event handler. Called when the visibility of a column has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onColVisibilityChanged = function(evt) {
+  this._columnCount = null;
+
+  // TODO: Check whether the column is in this model (This is a little bit
+  //     tricky, because the column could _have been_ in this model, but is
+  //     not in it after the change)
+  this.createDispatchEvent(qx.ui.table.TablePaneModel.EVENT_TYPE_MODEL_CHANGED);
+}
+
+
+/**
+ * Returns the number of columns in this model.
+ *
+ * @return {int} the number of columns in this model.
+ */
+qx.Proto.getColumnCount = function() {
+  if (this._columnCount == null) {
+    var firstX = this.getFirstColumnX();
+    var maxColCount = this.getMaxColumnCount();
+    var totalColCount = this._tableColumnModel.getVisibleColumnCount();
+
+    if (maxColCount == -1 || (firstX + maxColCount) > totalColCount) {
+      this._columnCount = totalColCount - firstX;
+    } else {
+      this._columnCount = maxColCount;
+    }
+  }
+  return this._columnCount;
+}
+
+
+/**
+ * Returns the model index of the column at the position <code>xPos</code>.
+ *
+ * @param xPos {int} the x postion in the table pane of the column.
+ * @return {int} the model index of the column.
+ */
+qx.Proto.getColumnAtX = function(xPos) {
+  var firstX = this.getFirstColumnX();
+  return this._tableColumnModel.getVisibleColumnAtX(firstX + xPos);
+}
+
+
+/**
+ * Returns the x position of the column <code>col</code>.
+ *
+ * @param col {int} the model index of the column.
+ * @return {int} the x postion in the table pane of the column.
+ */
+qx.Proto.getX = function(col) {
+  var firstX = this.getFirstColumnX();
+  var maxColCount = this.getMaxColumnCount();
+
+  var x = this._tableColumnModel.getVisibleX(col) - firstX;
+  if (x >= 0 && (maxColCount == -1 || x < maxColCount)) {
+    return x;
+  } else {
+    return -1;
+  }
+}
+
+
+/**
+ * Gets the position of the left side of a column (in pixels, relative to the
+ * left side of the table pane).
+ * <p>
+ * This value corresponds to the sum of the widths of all columns left of the
+ * column.
+ *
+ * @param col {int} the model index of the column.
+ * @return the position of the left side of the column.
+ */
+qx.Proto.getColumnLeft = function(col) {
+  var left = 0;
+  var colCount = this.getColumnCount();
+  for (var x = 0; x < colCount; x++) {
+    var currCol = this.getColumnAtX(x);
+    if (currCol == col) {
+      return left;
+    }
+
+    left += this._tableColumnModel.getColumnWidth(currCol);
+  }
+  return -1;
+}
+
+
+/**
+ * Returns the total width of all columns in the model.
+ *
+ * @return {int} the total width of all columns in the model.
+ */
+qx.Proto.getTotalWidth = function() {
+  var totalWidth = 0;
+  var colCount = this.getColumnCount();
+  for (var x = 0; x < colCount; x++) {
+    var col = this.getColumnAtX(x);
+    totalWidth += this._tableColumnModel.getColumnWidth(col);
+  }
+  return totalWidth;
+}
+
+
+/** {string} The type of the event fired when the model changed. */
+qx.Class.EVENT_TYPE_MODEL_CHANGED = "modelChanged";
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePaneScroller.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePaneScroller.js
new file mode 100644 (file)
index 0000000..d6f7773
--- /dev/null
@@ -0,0 +1,1331 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * Shows a whole meta column. This includes a {@link TablePaneHeader},
+ * a {@link TablePane} and the needed scroll bars. This class handles the
+ * virtual scrolling and does all the mouse event handling.
+ *
+ * @param table {Table} the table the scroller belongs to.
+ */
+qx.OO.defineClass("qx.ui.table.TablePaneScroller", qx.ui.layout.VerticalBoxLayout,
+function(table) {
+  qx.ui.layout.VerticalBoxLayout.call(this);
+
+  this._table = table;
+
+  // init scrollbars
+  this._verScrollBar = new qx.ui.core.ScrollBar(false);
+  this._horScrollBar = new qx.ui.core.ScrollBar(true);
+
+  var scrollBarWidth = this._verScrollBar.getPreferredBoxWidth();
+
+  this._verScrollBar.setWidth("auto");
+  this._horScrollBar.setHeight("auto");
+  this._horScrollBar.setPaddingRight(scrollBarWidth);
+  //this._verScrollBar.setMergeEvents(true);
+
+  this._horScrollBar.addEventListener("changeValue", this._onScrollX, this);
+  this._verScrollBar.addEventListener("changeValue", this._onScrollY, this);
+
+  // init header
+  this._header = new qx.ui.table.TablePaneHeader(this);
+  this._header.set({ width:"auto", height:"auto" });
+
+  this._headerClipper = new qx.ui.layout.CanvasLayout;
+  with (this._headerClipper) {
+    setDimension("1*", "auto");
+    setOverflow("hidden");
+    add(this._header);
+  }
+
+  this._spacer = new qx.ui.basic.Terminator;
+  this._spacer.setWidth(scrollBarWidth);
+
+  this._top = new qx.ui.layout.HorizontalBoxLayout;
+  with (this._top) {
+    setHeight("auto");
+    add(this._headerClipper, this._spacer);
+  }
+
+  // init pane
+  this._tablePane = new qx.ui.table.TablePane(this);
+  this._tablePane.set({ width:"auto", height:"auto" });
+
+  this._focusIndicator = new qx.ui.layout.HorizontalBoxLayout;
+  this._focusIndicator.setAppearance("table-focus-indicator");
+  this._focusIndicator.hide();
+
+  // Workaround: If the _focusIndicator has no content if always gets a too
+  //       high hight in IE.
+  var dummyContent = new qx.ui.basic.Terminator;
+  dummyContent.setWidth(0);
+  this._focusIndicator.add(dummyContent);
+
+  this._paneClipper = new qx.ui.layout.CanvasLayout;
+  with (this._paneClipper) {
+    setWidth("1*");
+    setOverflow("hidden");
+    add(this._tablePane, this._focusIndicator);
+    addEventListener("mousewheel", this._onmousewheel, this);
+  }
+
+  // add all child widgets
+  var scrollerBody = new qx.ui.layout.HorizontalBoxLayout;
+  scrollerBody.setHeight("1*");
+  scrollerBody.add(this._paneClipper, this._verScrollBar);
+
+  this.add(this._top, scrollerBody, this._horScrollBar);
+
+  // init event handlers
+  this.addEventListener("mousemove", this._onmousemove, this);
+  this.addEventListener("mousedown", this._onmousedown, this);
+  this.addEventListener("mouseup",   this._onmouseup,   this);
+  this.addEventListener("click",     this._onclick,     this);
+  this.addEventListener("dblclick",  this._ondblclick,  this);
+  this.addEventListener("mouseout",  this._onmouseout,  this);
+});
+
+/** Whether to show the horizontal scroll bar */
+qx.OO.addProperty({ name:"horizontalScrollBarVisible", type:"boolean", defaultValue:true });
+
+/** Whether to show the vertical scroll bar */
+qx.OO.addProperty({ name:"verticalScrollBarVisible", type:"boolean", defaultValue:true });
+
+/** The table pane model. */
+qx.OO.addProperty({ name:"tablePaneModel", type:"object", instance:"qx.ui.table.TablePaneModel" });
+
+/** The current position of the the horizontal scroll bar. */
+qx.OO.addProperty({ name:"scrollX", type:"number", allowNull:false, defaultValue:0 });
+
+/** The current position of the the vertical scroll bar. */
+qx.OO.addProperty({ name:"scrollY", type:"number", allowNull:false, defaultValue:0 });
+
+/**
+ * Whether column resize should be live. If false, during resize only a line is
+ * shown and the real resize happens when the user releases the mouse button.
+ */
+qx.OO.addProperty({ name:"liveResize", type:"boolean", defaultValue:false });
+
+/**
+ * Whether the focus should moved when the mouse is moved over a cell. If false
+ * the focus is only moved on mouse clicks.
+ */
+qx.OO.addProperty({ name:"focusCellOnMouseMove", type:"boolean", defaultValue:false });
+
+
+// property modifier
+qx.Proto._modifyHorizontalScrollBarVisible = function(propValue, propOldValue, propData) {
+  // Workaround: We can't use setDisplay, because the scroll bar needs its
+  //       correct height in order to check its value. When using
+  //       setDisplay(false) the height isn't relayouted any more
+  if (propValue) {
+    this._horScrollBar.setHeight("auto");
+  } else {
+    this._horScrollBar.setHeight(0);
+  }
+  this._horScrollBar.setVisibility(propValue);
+
+  // NOTE: We have to flush the queues before updating the content so the new
+  //     layout has been applied and _updateContent is able to work with
+  //     correct values.
+  qx.ui.core.Widget.flushGlobalQueues();
+  this._updateContent();
+
+  return true;
+}
+
+
+// property modifier
+qx.Proto._modifyVerticalScrollBarVisible = function(propValue, propOldValue, propData) {
+  // Workaround: See _modifyHorizontalScrollBarVisible
+  if (propValue) {
+    this._verScrollBar.setWidth("auto");
+  } else {
+    this._verScrollBar.setWidth(0);
+  }
+  this._verScrollBar.setVisibility(propValue);
+
+  var scrollBarWidth = propValue ? this._verScrollBar.getPreferredBoxWidth() : 0;
+  this._horScrollBar.setPaddingRight(scrollBarWidth);
+  this._spacer.setWidth(scrollBarWidth);
+
+  return true;
+}
+
+
+// property modifier
+qx.Proto._modifyTablePaneModel = function(propValue, propOldValue, propData) {
+  if (propOldValue != null) {
+    propOldValue.removeEventListener("modelChanged", this._onPaneModelChanged, this);
+  }
+  propValue.addEventListener("modelChanged", this._onPaneModelChanged, this);
+
+  return true;
+}
+
+
+// property modifier
+qx.Proto._modifyScrollX = function(propValue, propOldValue, propData) {
+  this._horScrollBar.setValue(propValue);
+  return true;
+}
+
+
+// property modifier
+qx.Proto._modifyScrollY = function(propValue, propOldValue, propData) {
+  this._verScrollBar.setValue(propValue);
+  return true;
+}
+
+
+/**
+ * Returns the table this scroller belongs to.
+ *
+ * @return {Table} the table.
+ */
+qx.Proto.getTable = function() {
+  return this._table;
+};
+
+
+/**
+ * Event handler. Called when the visibility of a column has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onColVisibilityChanged = function(evt) {
+  this._updateHorScrollBarMaximum();
+  this._updateFocusIndicator();
+}
+
+
+/**
+ * Event handler. Called when the width of a column has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onColWidthChanged = function(evt) {
+  this._header._onColWidthChanged(evt);
+  this._tablePane._onColWidthChanged(evt);
+
+  var data = evt.getData();
+  var paneModel = this.getTablePaneModel();
+  var x = paneModel.getX(data.col);
+  if (x != -1) {
+    // The change was in this scroller
+    this._updateHorScrollBarMaximum();
+    this._updateFocusIndicator();
+  }
+}
+
+
+/**
+ * Event handler. Called when the column order has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onColOrderChanged = function(evt) {
+  this._header._onColOrderChanged(evt);
+  this._tablePane._onColOrderChanged(evt);
+
+  this._updateHorScrollBarMaximum();
+}
+
+
+/**
+ * Event handler. Called when the table model has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onTableModelDataChanged = function(evt) {
+  this._tablePane._onTableModelDataChanged(evt);
+
+  var rowCount = this.getTable().getTableModel().getRowCount();
+  if (rowCount != this._lastRowCount) {
+    this._lastRowCount = rowCount;
+
+    this._updateVerScrollBarMaximum();
+    if (this.getFocusedRow() >= rowCount) {
+      if (rowCount == 0) {
+        this.setFocusedCell(null, null);
+      } else {
+        this.setFocusedCell(this.getFocusedColumn(), rowCount - 1);
+      }
+    }
+  }
+}
+
+
+/**
+ * Event handler. Called when the selection has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onSelectionChanged = function(evt) {
+  this._tablePane._onSelectionChanged(evt);
+};
+
+
+/**
+ * Event handler. Called when the table gets or looses the focus.
+ */
+qx.Proto._onFocusChanged = function(evt) {
+  this._focusIndicator.setState("tableHasFocus", this.getTable().getFocused());
+
+  this._tablePane._onFocusChanged(evt);
+};
+
+
+/**
+ * Event handler. Called when the table model meta data has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onTableModelMetaDataChanged = function(evt) {
+  this._header._onTableModelMetaDataChanged(evt);
+  this._tablePane._onTableModelMetaDataChanged(evt);
+};
+
+
+/**
+ * Event handler. Called when the pane model has changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onPaneModelChanged = function(evt) {
+  this._header._onPaneModelChanged(evt);
+  this._tablePane._onPaneModelChanged(evt);
+};
+
+
+/**
+ * Updates the maximum of the horizontal scroll bar, so it corresponds to the
+ * total width of the columns in the table pane.
+ */
+qx.Proto._updateHorScrollBarMaximum = function() {
+  this._horScrollBar.setMaximum(this.getTablePaneModel().getTotalWidth());
+}
+
+
+/**
+ * Updates the maximum of the vertical scroll bar, so it corresponds to the
+ * number of rows in the table.
+ */
+qx.Proto._updateVerScrollBarMaximum = function() {
+  var rowCount = this.getTable().getTableModel().getRowCount();
+  var rowHeight = this.getTable().getRowHeight();
+
+  if (this.getTable().getKeepFirstVisibleRowComplete()) {
+    this._verScrollBar.setMaximum((rowCount + 1) * rowHeight);
+  } else {
+    this._verScrollBar.setMaximum(rowCount * rowHeight);
+  }
+}
+
+
+/**
+ * Event handler. Called when the table property "keepFirstVisibleRowComplete"
+ * changed.
+ */
+qx.Proto._onKeepFirstVisibleRowCompleteChanged = function() {
+  this._updateVerScrollBarMaximum();
+  this._updateContent();
+};
+
+
+// overridden
+qx.Proto._changeInnerHeight = function(newValue, oldValue) {
+  // The height has changed -> Update content
+  this._postponedUpdateContent();
+
+  return qx.ui.layout.VerticalBoxLayout.prototype._changeInnerHeight.call(this, newValue, oldValue);
+}
+
+
+// overridden
+qx.Proto._afterAppear = function() {
+  qx.ui.layout.VerticalBoxLayout.prototype._afterAppear.call(this);
+
+  var self = this;
+  this.getElement().onselectstart = qx.util.Return.returnFalse;
+
+  this._updateContent();
+  this._header._updateContent();
+  this._updateHorScrollBarMaximum();
+  this._updateVerScrollBarMaximum();
+}
+
+
+/**
+ * Event handler. Called when the horizontal scroll bar moved.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onScrollX = function(evt) {
+  // Workaround: See _updateContent
+  this._header.setLeft(-evt.getData());
+
+  this._paneClipper.setScrollLeft(evt.getData());
+  this.setScrollX(evt.getData());
+}
+
+
+/**
+ * Event handler. Called when the vertical scroll bar moved.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onScrollY = function(evt) {
+  this._postponedUpdateContent();
+  this.setScrollY(evt.getData());
+}
+
+
+/**
+ * Event handler. Called when the user moved the mouse wheel.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onmousewheel = function(evt) {
+  this._verScrollBar.setValue(this._verScrollBar.getValue()
+    - evt.getWheelDelta() * this.getTable().getRowHeight());
+
+  // Update the focus
+  if (this._lastMousePageX && this.getFocusCellOnMouseMove()) {
+    this._focusCellAtPagePos(this._lastMousePageX, this._lastMousePageY);
+  }
+}
+
+
+/**
+ * Event handler. Called when the user moved the mouse.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onmousemove = function(evt) {
+  var tableModel = this.getTable().getTableModel();
+  var columnModel = this.getTable().getTableColumnModel();
+
+  var useResizeCursor = false;
+  var mouseOverColumn = null;
+
+  var pageX = evt.getPageX();
+  var pageY = evt.getPageY();
+
+  // Workaround: In onmousewheel the event has wrong coordinates for pageX
+  //       and pageY. So we remember the last move event.
+  this._lastMousePageX = pageX;
+  this._lastMousePageY = pageY;
+
+  if (this._resizeColumn != null) {
+    // We are currently resizing -> Update the position
+    var minColumnWidth = qx.ui.table.TablePaneScroller.MIN_COLUMN_WIDTH;
+    var newWidth = Math.max(minColumnWidth, this._lastResizeWidth + pageX - this._lastResizeMousePageX);
+
+    if (this.getLiveResize()) {
+      columnModel.setColumnWidth(this._resizeColumn, newWidth);
+    } else {
+      this._header.setColumnWidth(this._resizeColumn, newWidth);
+
+      var paneModel = this.getTablePaneModel();
+      this._showResizeLine(paneModel.getColumnLeft(this._resizeColumn) + newWidth);
+    }
+
+    useResizeCursor = true;
+    this._lastResizeMousePageX += newWidth - this._lastResizeWidth;
+    this._lastResizeWidth = newWidth;
+  } else if (this._moveColumn != null) {
+    // We are moving a column
+
+    // Check whether we moved outside the click tolerance so we can start
+    // showing the column move feedback
+    // (showing the column move feedback prevents the onclick event)
+    var clickTolerance = qx.ui.table.TablePaneScroller.CLICK_TOLERANCE;
+    if (this._header.isShowingColumnMoveFeedback()
+      || pageX > this._lastMoveMousePageX + clickTolerance
+      || pageX < this._lastMoveMousePageX - clickTolerance)
+    {
+      this._lastMoveColPos += pageX - this._lastMoveMousePageX;
+
+      this._header.showColumnMoveFeedback(this._moveColumn, this._lastMoveColPos);
+
+      // Get the responsible scroller
+      var targetScroller = this._table.getTablePaneScrollerAtPageX(pageX);
+      if (this._lastMoveTargetScroller && this._lastMoveTargetScroller != targetScroller) {
+        this._lastMoveTargetScroller.hideColumnMoveFeedback();
+      }
+      if (targetScroller != null) {
+        this._lastMoveTargetX = targetScroller.showColumnMoveFeedback(pageX);
+      } else {
+        this._lastMoveTargetX = null;
+      }
+
+      this._lastMoveTargetScroller = targetScroller;
+      this._lastMoveMousePageX = pageX;
+    }
+  } else {
+    // This is a normal mouse move
+    var row = this._getRowForPagePos(pageX, pageY);
+    if (row == -1) {
+      // The mouse is over the header
+      var resizeCol = this._getResizeColumnForPageX(pageX);
+      if (resizeCol != -1) {
+        // The mouse is over a resize region -> Show the right cursor
+        useResizeCursor = true;
+      } else {
+        var col = this._getColumnForPageX(pageX);
+        if (col != null && tableModel.isColumnSortable(col)) {
+          mouseOverColumn = col;
+        }
+      }
+    } else if (row != null) {
+      // The mouse is over the data -> update the focus
+      if (this.getFocusCellOnMouseMove()) {
+        this._focusCellAtPagePos(pageX, pageY);
+      }
+    }
+  }
+
+  // Workaround: Setting the cursor to the right widget doesn't work
+  //this._header.setCursor(useResizeCursor ? "e-resize" : null);
+  this.getTopLevelWidget().setGlobalCursor(useResizeCursor ? qx.ui.table.TablePaneScroller.CURSOR_RESIZE_HORIZONTAL : null);
+
+  this._header.setMouseOverColumn(mouseOverColumn);
+}
+
+
+/**
+ * Event handler. Called when the user pressed a mouse button.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onmousedown = function(evt) {
+  var tableModel = this.getTable().getTableModel();
+  var columnModel = this.getTable().getTableColumnModel();
+
+  var pageX = evt.getPageX();
+  var pageY = evt.getPageY();
+  var row = this._getRowForPagePos(pageX, pageY);
+  if (row == -1) {
+    // mouse is in header
+    var resizeCol = this._getResizeColumnForPageX(pageX);
+    if (resizeCol != -1) {
+      // The mouse is over a resize region -> Start resizing
+      this._resizeColumn = resizeCol;
+      this._lastResizeMousePageX = pageX;
+      this._lastResizeWidth = columnModel.getColumnWidth(this._resizeColumn);
+      this.setCapture(true);
+    } else {
+      // The mouse is not in a resize region
+      var col = this._getColumnForPageX(pageX);
+      if (col != null) {
+        // Prepare column moving
+        this._moveColumn = col;
+        this._lastMoveMousePageX = pageX;
+        this._lastMoveColPos = this.getTablePaneModel().getColumnLeft(col);
+        this.setCapture(true);
+      }
+    }
+  } else if (row != null) {
+    // The mouse is over the data -> update the focus
+    if (! this.getFocusCellOnMouseMove()) {
+      this._focusCellAtPagePos(pageX, pageY);
+    }
+
+    this.getTable()._getSelectionManager().handleMouseDown(row, evt);
+  }
+}
+
+
+/**
+ * Event handler. Called when the user released a mouse button.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onmouseup = function(evt) {
+  var columnModel = this.getTable().getTableColumnModel();
+  var paneModel = this.getTablePaneModel();
+
+  if (this._resizeColumn != null) {
+    // We are currently resizing -> Finish resizing
+    if (! this.getLiveResize()) {
+      this._hideResizeLine();
+      columnModel.setColumnWidth(this._resizeColumn, this._lastResizeWidth);
+    }
+
+    this._resizeColumn = null;
+    this.setCapture(false);
+
+    this.getTopLevelWidget().setGlobalCursor(null);
+  } else if (this._moveColumn != null) {
+    // We are moving a column -> Drop the column
+    this._header.hideColumnMoveFeedback();
+    if (this._lastMoveTargetScroller) {
+      this._lastMoveTargetScroller.hideColumnMoveFeedback();
+    }
+
+    if (this._lastMoveTargetX != null) {
+      var fromVisXPos = paneModel.getFirstColumnX() + paneModel.getX(this._moveColumn);
+      var toVisXPos = this._lastMoveTargetX;
+      if (toVisXPos != fromVisXPos && toVisXPos != fromVisXPos + 1) {
+        // The column was really moved to another position
+        // (and not moved before or after itself, which is a noop)
+
+        // Translate visible positions to overall positions
+        var fromCol = columnModel.getVisibleColumnAtX(fromVisXPos);
+        var toCol   = columnModel.getVisibleColumnAtX(toVisXPos);
+        var fromOverXPos = columnModel.getOverallX(fromCol);
+        var toOverXPos = (toCol != null) ? columnModel.getOverallX(toCol) : columnModel.getOverallColumnCount();
+
+        if (toOverXPos > fromOverXPos) {
+          // Don't count the column itself
+          toOverXPos--;
+        }
+
+        // Move the column
+        columnModel.moveColumn(fromOverXPos, toOverXPos);
+      }
+    }
+
+    this._moveColumn = null;
+    this._lastMoveTargetX = null;
+    this.setCapture(false);
+  } else {
+    // This is a normal mouse up
+    var row = this._getRowForPagePos(evt.getPageX(), evt.getPageY());
+    if (row != -1 && row != null) {
+      this.getTable()._getSelectionManager().handleMouseUp(row, evt);
+    }
+  }
+}
+
+
+/**
+ * Event handler. Called when the user clicked a mouse button.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onclick = function(evt) {
+  var tableModel = this.getTable().getTableModel();
+
+  var pageX = evt.getPageX();
+  var pageY = evt.getPageY();
+  var row = this._getRowForPagePos(pageX, pageY);
+  if (row == -1) {
+    // mouse is in header
+    var resizeCol = this._getResizeColumnForPageX(pageX);
+    if (resizeCol == -1) {
+      // mouse is not in a resize region
+      var col = this._getColumnForPageX(pageX);
+      if (col != null && tableModel.isColumnSortable(col)) {
+        // Sort that column
+        var sortCol = tableModel.getSortColumnIndex();
+        var ascending = (col != sortCol) ? true : !tableModel.isSortAscending();
+
+        tableModel.sortByColumn(col, ascending);
+        this.getTable().getSelectionModel().clearSelection();
+      }
+    }
+  } else if (row != null) {
+    this.getTable()._getSelectionManager().handleClick(row, evt);
+  }
+}
+
+
+/**
+ * Event handler. Called when the user double clicked a mouse button.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._ondblclick = function(evt) {
+  if (! this.isEditing()) {
+    this._focusCellAtPagePos(evt.getPageX(), evt.getPageY());
+    this.startEditing();
+  }
+}
+
+
+/**
+ * Event handler. Called when the mouse moved out.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onmouseout = function(evt) {
+  /*
+  // Workaround: See _onmousemove
+  this._lastMousePageX = null;
+  this._lastMousePageY = null;
+  */
+
+  // Reset the resize cursor when the mouse leaves the header
+  // If currently a column is resized then do nothing
+  // (the cursor will be reset on mouseup)
+  if (this._resizeColumn == null) {
+    this.getTopLevelWidget().setGlobalCursor(null);
+  }
+
+  this._header.setMouseOverColumn(null);
+}
+
+
+/**
+ * Shows the resize line.
+ *
+ * @param x {int} the position where to show the line (in pixels, relative to
+ *    the left side of the pane).
+ */
+qx.Proto._showResizeLine = function(x) {
+  var resizeLine = this._resizeLine;
+  if (resizeLine == null) {
+    resizeLine = new qx.ui.basic.Terminator;
+    resizeLine.setBackgroundColor("#D6D5D9");
+    resizeLine.setWidth(3);
+    this._paneClipper.add(resizeLine);
+    qx.ui.core.Widget.flushGlobalQueues();
+
+    this._resizeLine = resizeLine;
+  }
+
+  resizeLine._applyRuntimeLeft(x - 2); // -1 for the width
+  resizeLine._applyRuntimeHeight(this._paneClipper.getBoxHeight() + this._paneClipper.getScrollTop());
+
+  this._resizeLine.removeStyleProperty("visibility");
+}
+
+
+/**
+ * Hides the resize line.
+ */
+qx.Proto._hideResizeLine = function() {
+  this._resizeLine.setStyleProperty("visibility", "hidden");
+}
+
+
+/**
+ * Shows the feedback shown while a column is moved by the user.
+ *
+ * @param pageX {int} the x position of the mouse in the page (in pixels).
+ * @return {int} the visible x position of the column in the whole table.
+ */
+qx.Proto.showColumnMoveFeedback = function(pageX) {
+  var paneModel = this.getTablePaneModel();
+  var columnModel = this.getTable().getTableColumnModel();
+  var paneLeftX = qx.dom.Location.getClientBoxLeft(this._tablePane.getElement());
+  var colCount = paneModel.getColumnCount();
+
+  var targetXPos = 0;
+  var targetX = 0;
+  var currX = paneLeftX;
+  for (var xPos = 0; xPos < colCount; xPos++) {
+    var col = paneModel.getColumnAtX(xPos);
+    var colWidth = columnModel.getColumnWidth(col);
+
+    if (pageX < currX + colWidth / 2) {
+      break;
+    }
+
+    currX += colWidth;
+    targetXPos = xPos + 1;
+    targetX = currX - paneLeftX;
+  }
+
+  // Ensure targetX is visible
+  var clipperLeftX = qx.dom.Location.getClientBoxLeft(this._paneClipper.getElement());
+  var clipperWidth = this._paneClipper.getBoxWidth();
+  var scrollX = clipperLeftX - paneLeftX;
+  // NOTE: +2/-1 because of feedback width
+  targetX = qx.lang.Number.limit(targetX, scrollX + 2, scrollX + clipperWidth - 1);
+
+  this._showResizeLine(targetX);
+
+  // Return the overall target x position
+  return paneModel.getFirstColumnX() + targetXPos;
+}
+
+
+/**
+ * Hides the feedback shown while a column is moved by the user.
+ */
+qx.Proto.hideColumnMoveFeedback = function() {
+  this._hideResizeLine();
+}
+
+
+/**
+ * Sets the focus to the cell that's located at the page position
+ * <code>pageX</code>/<code>pageY</code>. If there is no cell at that position,
+ * nothing happens.
+ *
+ * @param pageX {int} the x position in the page (in pixels).
+ * @param pageY {int} the y position in the page (in pixels).
+ */
+qx.Proto._focusCellAtPagePos = function(pageX, pageY) {
+  var row = this._getRowForPagePos(pageX, pageY);
+  if (row != -1 && row != null) {
+    // The mouse is over the data -> update the focus
+    var col = this._getColumnForPageX(pageX);
+    if (col != null) {
+      this._table.setFocusedCell(col, row);
+    }
+  }
+}
+
+
+/**
+ * Sets the currently focused cell.
+ *
+ * @param col {int} the model index of the focused cell's column.
+ * @param row {int} the model index of the focused cell's row.
+ */
+qx.Proto.setFocusedCell = function(col, row) {
+  if (!this.isEditing()) {
+    this._tablePane.setFocusedCell(col, row, this._updateContentPlanned);
+
+    this._focusedCol = col;
+    this._focusedRow = row;
+
+    // Move the focus indicator
+    if (! this._updateContentPlanned) {
+      this._updateFocusIndicator();
+    }
+  }
+}
+
+
+/**
+ * Returns the column of currently focused cell.
+ *
+ * @return {int} the model index of the focused cell's column.
+ */
+qx.Proto.getFocusedColumn = function() {
+  return this._focusedCol;
+};
+
+
+/**
+ * Returns the row of currently focused cell.
+ *
+ * @return {int} the model index of the focused cell's column.
+ */
+qx.Proto.getFocusedRow = function() {
+  return this._focusedRow;
+};
+
+
+/**
+ * Scrolls a cell visible.
+ *
+ * @param col {int} the model index of the column the cell belongs to.
+ * @param row {int} the model index of the row the cell belongs to.
+ */
+qx.Proto.scrollCellVisible = function(col, row) {
+  var paneModel = this.getTablePaneModel();
+  var xPos = paneModel.getX(col);
+
+  if (xPos != -1) {
+    var columnModel = this.getTable().getTableColumnModel();
+
+    var colLeft = paneModel.getColumnLeft(col);
+    var colWidth = columnModel.getColumnWidth(col);
+    var rowHeight = this.getTable().getRowHeight();
+    var rowTop = row * rowHeight;
+
+    var scrollX = this.getScrollX();
+    var scrollY = this.getScrollY();
+    var viewWidth = this._paneClipper.getBoxWidth();
+    var viewHeight = this._paneClipper.getBoxHeight();
+
+    // NOTE: We don't use qx.lang.Number.limit, because min should win if max < min
+    var minScrollX = Math.min(colLeft, colLeft + colWidth - viewWidth);
+    var maxScrollX = colLeft;
+    this.setScrollX(Math.max(minScrollX, Math.min(maxScrollX, scrollX)));
+
+    var minScrollY = rowTop + rowHeight - viewHeight;
+    if (this.getTable().getKeepFirstVisibleRowComplete()) {
+      minScrollY += rowHeight - 1;
+    }
+    var maxScrollY = rowTop;
+    this.setScrollY(Math.max(minScrollY, Math.min(maxScrollY, scrollY)));
+  }
+}
+
+
+/**
+ * Returns whether currently a cell is editing.
+ *
+ * @return whether currently a cell is editing.
+ */
+qx.Proto.isEditing = function() {
+  return this._cellEditor != null;
+}
+
+
+/**
+ * Starts editing the currently focused cell. Does nothing if already editing
+ * or if the column is not editable.
+ *
+ * @return {boolean} whether editing was started
+ */
+qx.Proto.startEditing = function() {
+  var tableModel = this.getTable().getTableModel();
+  var col   = this._focusedCol;
+
+  if (!this.isEditing() && (col != null) && tableModel.isColumnEditable(col)) {
+    var row   = this._focusedRow;
+    var xPos  = this.getTablePaneModel().getX(col);
+    var value = tableModel.getValue(col, row);
+
+    this._cellEditorFactory = this.getTable().getTableColumnModel().getCellEditorFactory(col);
+    var cellInfo = { col:col, row:row, xPos:xPos, value:value }
+    this._cellEditor = this._cellEditorFactory.createCellEditor(cellInfo);
+    this._cellEditor.set({ width:"100%", height:"100%" });
+
+    this._focusIndicator.add(this._cellEditor);
+    this._focusIndicator.addState("editing");
+
+    this._cellEditor.addEventListener("changeFocused", this._onCellEditorFocusChanged, this);
+
+    // Workaround: Calling focus() directly has no effect
+    var editor = this._cellEditor;
+    window.setTimeout(function() {
+      editor.focus();
+    }, 0);
+
+    return true;
+  }
+
+  return false;
+}
+
+
+/**
+ * Stops editing and writes the editor's value to the model.
+ */
+qx.Proto.stopEditing = function() {
+  this.flushEditor();
+  this.cancelEditing();
+}
+
+
+/**
+ * Writes the editor's value to the model.
+ */
+qx.Proto.flushEditor = function() {
+  if (this.isEditing()) {
+    var value = this._cellEditorFactory.getCellEditorValue(this._cellEditor);
+    this.getTable().getTableModel().setValue(this._focusedCol, this._focusedRow, value);
+
+    this._table.focus();
+  }
+}
+
+
+/**
+ * Stops editing without writing the editor's value to the model.
+ */
+qx.Proto.cancelEditing = function() {
+  if (this.isEditing()) {
+    this._focusIndicator.remove(this._cellEditor);
+    this._focusIndicator.removeState("editing");
+    this._cellEditor.dispose();
+
+    this._cellEditor.removeEventListener("changeFocused", this._onCellEditorFocusChanged, this);
+    this._cellEditor = null;
+    this._cellEditorFactory = null;
+  }
+}
+
+
+/**
+ * Event handler. Called when the focused state of the cell editor changed.
+ *
+ * @param evt {Map} the event.
+ */
+qx.Proto._onCellEditorFocusChanged = function(evt) {
+  if (!this._cellEditor.getFocused()) {
+    this.stopEditing();
+  }
+}
+
+
+/**
+ * Returns the model index of the column the mouse is over or null if the mouse
+ * is not over a column.
+ *
+ * @param pageX {int} the x position of the mouse in the page (in pixels).
+ * @return {int} the model index of the column the mouse is over.
+ */
+qx.Proto._getColumnForPageX = function(pageX) {
+  var headerLeftX = qx.dom.Location.getClientBoxLeft(this._header.getElement());
+
+  var columnModel = this.getTable().getTableColumnModel();
+  var paneModel = this.getTablePaneModel();
+  var colCount = paneModel.getColumnCount();
+  var currX = headerLeftX;
+  for (var x = 0; x < colCount; x++) {
+    var col = paneModel.getColumnAtX(x);
+    var colWidth = columnModel.getColumnWidth(col);
+    currX += colWidth;
+
+    if (pageX < currX) {
+      return col;
+    }
+  }
+
+  return null;
+}
+
+
+/**
+ * Returns the model index of the column that should be resized when dragging
+ * starts here. Returns -1 if the mouse is in no resize region of any column.
+ *
+ * @param pageX {int} the x position of the mouse in the page (in pixels).
+ * @return {int} the column index.
+ */
+qx.Proto._getResizeColumnForPageX = function(pageX) {
+  var headerLeftX = qx.dom.Location.getClientBoxLeft(this._header.getElement());
+
+  var columnModel = this.getTable().getTableColumnModel();
+  var paneModel = this.getTablePaneModel();
+  var colCount = paneModel.getColumnCount();
+  var currX = headerLeftX;
+  var regionRadius = qx.ui.table.TablePaneScroller.RESIZE_REGION_RADIUS;
+  for (var x = 0; x < colCount; x++) {
+    var col = paneModel.getColumnAtX(x);
+    var colWidth = columnModel.getColumnWidth(col);
+    currX += colWidth;
+
+    if (pageX >= (currX - regionRadius) && pageX <= (currX + regionRadius)) {
+      return col;
+    }
+  }
+
+  return -1;
+}
+
+
+/**
+ * Returns the model index of the row the mouse is currently over. Returns -1 if
+ * the mouse is over the header. Returns null if the mouse is not over any
+ * column.
+ *
+ * @param pageX {int} the mouse x position in the page.
+ * @param pageY {int} the mouse y position in the page.
+ * @return {int} the model index of the row the mouse is currently over.
+ */
+qx.Proto._getRowForPagePos = function(pageX, pageY) {
+  var paneClipperElem = this._paneClipper.getElement();
+  var paneClipperLeftX = qx.dom.Location.getClientBoxLeft(paneClipperElem);
+  var paneClipperRightX = qx.dom.Location.getClientBoxRight(paneClipperElem);
+  if (pageX < paneClipperLeftX || pageX > paneClipperRightX) {
+    // There was no cell or header cell hit
+    return null;
+  }
+
+  var paneClipperTopY = qx.dom.Location.getClientBoxTop(paneClipperElem);
+  var paneClipperBottomY = qx.dom.Location.getClientBoxBottom(paneClipperElem);
+  if (pageY >= paneClipperTopY && pageY <= paneClipperBottomY) {
+    // This event is in the pane -> Get the row
+    var rowHeight = this.getTable().getRowHeight();
+
+    var scrollY = this._verScrollBar.getValue();
+    if (this.getTable().getKeepFirstVisibleRowComplete()) {
+      scrollY = Math.floor(scrollY / rowHeight) * rowHeight;
+    }
+
+    var tableY = scrollY + pageY - paneClipperTopY;
+    var row = Math.floor(tableY / rowHeight);
+
+    var rowCount = this.getTable().getTableModel().getRowCount();
+    return (row < rowCount) ? row : null;
+  }
+
+  var headerElem = this._headerClipper.getElement();
+  if (pageY >= qx.dom.Location.getClientBoxTop(headerElem)
+    && pageY <= qx.dom.Location.getClientBoxBottom(headerElem)
+    && pageX <= qx.dom.Location.getClientBoxRight(headerElem))
+  {
+    // This event is in the pane -> Return -1 for the header
+    return -1;
+  }
+
+  return null;
+}
+
+
+/**
+ * Sets the widget that should be shown in the top right corner.
+ * <p>
+ * The widget will not be disposed, when this table scroller is disposed. So the
+ * caller has to dispose it.
+ *
+ * @param widget {qx.ui.core.Widget} The widget to set. May be null.
+ */
+qx.Proto.setTopRightWidget = function(widget) {
+  var oldWidget = this._topRightWidget;
+  if (oldWidget != null) {
+    this._top.remove(oldWidget);
+  }
+
+  if (widget != null) {
+    this._top.remove(this._spacer);
+    this._top.add(widget);
+  } else if (oldWidget != null) {
+    this._top.add(this._spacer);
+  }
+
+  this._topRightWidget = widget;
+}
+
+
+/**
+ * Returns the header.
+ *
+ * @return {TablePaneHeader} the header.
+ */
+qx.Proto.getHeader = function() {
+  return this._header;
+}
+
+
+/**
+ * Returns the table pane.
+ *
+ * @return {TablePane} the table pane.
+ */
+qx.Proto.getTablePane = function() {
+  return this._tablePane;
+}
+
+
+/**
+ * Returns which scrollbars are needed.
+ *
+ * @param forceHorizontal {boolean ? false} Whether to show the horizontal
+ *    scrollbar always.
+ * @param preventVertical {boolean ? false} Whether tp show the vertical scrollbar
+ *    never.
+ * @return {int} which scrollbars are needed. This may be any combination of
+ *    {@link #HORIZONTAL_SCROLLBAR} or {@link #VERTICAL_SCROLLBAR}
+ *    (combined by OR).
+ */
+qx.Proto.getNeededScrollBars = function(forceHorizontal, preventVertical) {
+  var barWidth = this._verScrollBar.getPreferredBoxWidth();
+
+  // Get the width and height of the view (without scroll bars)
+  var viewWidth = this._paneClipper.getInnerWidth();
+  if (this.getVerticalScrollBarVisible()) {
+    viewWidth += barWidth;
+  }
+  var viewHeight = this._paneClipper.getInnerHeight();
+  if (this.getHorizontalScrollBarVisible()) {
+    viewHeight += barWidth;
+  }
+
+  // Get the (virtual) width and height of the pane
+  var paneWidth = this.getTablePaneModel().getTotalWidth();
+  var paneHeight = this.getTable().getRowHeight() * this.getTable().getTableModel().getRowCount();
+
+  // Check which scrollbars are needed
+  var horNeeded = false;
+  var verNeeded = false;
+  if (paneWidth > viewWidth) {
+    horNeeded = true;
+    if (paneHeight > viewHeight - barWidth) {
+      verNeeded = true;
+    }
+  } else if (paneHeight > viewHeight) {
+    verNeeded = true;
+    if (!preventVertical && (paneWidth > viewWidth - barWidth)) {
+      horNeeded = true;
+    }
+  }
+
+  // Create the mask
+  var horBar = qx.ui.table.TablePaneScroller.HORIZONTAL_SCROLLBAR;
+  var verBar = qx.ui.table.TablePaneScroller.VERTICAL_SCROLLBAR;
+  return ((forceHorizontal || horNeeded) ? horBar : 0)
+     | ((preventVertical || !verNeeded) ? 0 : verBar);
+}
+
+
+/**
+ * Does a postponed update of the content.
+ *
+ * @see #_updateContent
+ */
+qx.Proto._postponedUpdateContent = function() {
+  if (! this._updateContentPlanned) {
+    var self = this;
+    window.setTimeout(function() {
+      self._updateContent();
+      self._updateContentPlanned = false;
+      qx.ui.core.Widget.flushGlobalQueues();
+    }, 0);
+    this._updateContentPlanned = true;
+  }
+}
+
+
+/**
+ * Updates the content. Sets the right section the table pane should show and
+ * does the scrolling.
+ */
+qx.Proto._updateContent = function() {
+  var paneHeight = this._paneClipper.getInnerHeight();
+  var scrollX = this._horScrollBar.getValue();
+  var scrollY = this._verScrollBar.getValue();
+  var rowHeight = this.getTable().getRowHeight();
+
+  var firstRow = Math.floor(scrollY / rowHeight);
+  var oldFirstRow = this._tablePane.getFirstVisibleRow();
+  this._tablePane.setFirstVisibleRow(firstRow);
+
+  var rowCount = Math.ceil(paneHeight / rowHeight);
+  var paneOffset = 0;
+  if (! this.getTable().getKeepFirstVisibleRowComplete()) {
+    // NOTE: We don't consider paneOffset, because this may cause alternating
+    //       adding and deleting of one row when scolling. Instead we add one row
+    //       in every case.
+    rowCount++;
+    paneOffset = scrollY % rowHeight;
+  }
+  this._tablePane.setVisibleRowCount(rowCount);
+
+  if (firstRow != oldFirstRow) {
+    this._updateFocusIndicator();
+  }
+
+  // Workaround: We can't use scrollLeft for the header because IE
+  //       automatically scrolls the header back, when a column is
+  //       resized.
+  this._header.setLeft(-scrollX);
+  this._paneClipper.setScrollLeft(scrollX);
+  this._paneClipper.setScrollTop(paneOffset);
+
+  //this.debug("paneHeight:"+paneHeight+",rowHeight:"+rowHeight+",firstRow:"+firstRow+",rowCount:"+rowCount+",paneOffset:"+paneOffset);
+}
+
+
+/**
+ * Updates the location and the visibility of the focus indicator.
+ */
+qx.Proto._updateFocusIndicator = function() {
+  if (this._focusedCol == null) {
+    this._focusIndicator.hide();
+  } else {
+    var xPos = this.getTablePaneModel().getX(this._focusedCol);
+    if (xPos == -1) {
+      this._focusIndicator.hide();
+    } else {
+      var columnModel = this.getTable().getTableColumnModel();
+      var paneModel = this.getTablePaneModel();
+
+      var firstRow = this._tablePane.getFirstVisibleRow();
+      var rowHeight = this.getTable().getRowHeight();
+
+      this._focusIndicator.setHeight(rowHeight + 3);
+      this._focusIndicator.setWidth(columnModel.getColumnWidth(this._focusedCol) + 3);
+      this._focusIndicator.setTop((this._focusedRow - firstRow) * rowHeight - 2);
+      this._focusIndicator.setLeft(paneModel.getColumnLeft(this._focusedCol) - 2);
+
+      this._focusIndicator.show();
+    }
+  }
+}
+
+
+// overridden
+qx.Proto.dispose = function() {
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if (this.getElement() != null) {
+    this.getElement().onselectstart = null;
+  }
+
+  this._verScrollBar.dispose();
+  this._horScrollBar.dispose();
+  this._header.dispose();
+  this._headerClipper.dispose();
+  this._spacer.dispose();
+  this._top.dispose();
+  this._tablePane.dispose();
+  this._paneClipper.dispose();
+
+  if (this._resizeLine != null) {
+    this._resizeLine.dispose();
+  }
+
+  this.removeEventListener("mousemove", this._onmousemove, this);
+  this.removeEventListener("mousedown", this._onmousedown, this);
+  this.removeEventListener("mouseup", this._onmouseup, this);
+  this.removeEventListener("click", this._onclick, this);
+  this.removeEventListener("dblclick", this._ondblclick, this);
+  this.removeEventListener("mouseout", this._onmouseout, this);
+
+  var tablePaneModel = this.getTablePaneModel();
+  if (tablePaneModel != null) {
+    tablePaneModel.removeEventListener("modelChanged", this._onPaneModelChanged, this);
+  }
+
+  return qx.ui.layout.VerticalBoxLayout.prototype.dispose.call(this);
+}
+
+
+/** {int} The minimum width a colum could get in pixels. */
+qx.Class.MIN_COLUMN_WIDTH = 10;
+
+/** {int} The radius of the resize region in pixels. */
+qx.Class.RESIZE_REGION_RADIUS = 5;
+
+/**
+ * (int) The number of pixels the mouse may move between mouse down and mouse up
+ * in order to count as a click.
+ */
+qx.Class.CLICK_TOLERANCE = 5;
+
+/**
+ * (int) The mask for the horizontal scroll bar.
+ * May be combined with {@link #VERTICAL_SCROLLBAR}.
+ *
+ * @see #getNeededScrollBars
+ */
+qx.Class.HORIZONTAL_SCROLLBAR = 1;
+
+/**
+ * (int) The mask for the vertical scroll bar.
+ * May be combined with {@link #HORIZONTAL_SCROLLBAR}.
+ *
+ * @see #getNeededScrollBars
+ */
+qx.Class.VERTICAL_SCROLLBAR = 2;
+
+/**
+ * (string) The correct value for the CSS style attribute "cursor" for the
+ * horizontal resize cursor.
+ */
+qx.Class.CURSOR_RESIZE_HORIZONTAL = (qx.sys.Client.getInstance().isGecko() && (qx.sys.Client.getInstance().getMajor() > 1 || qx.sys.Client.getInstance().getMinor() >= 8)) ? "ew-resize" : "e-resize";
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TextFieldCellEditorFactory.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TextFieldCellEditorFactory.js
new file mode 100644 (file)
index 0000000..6878ce7
--- /dev/null
@@ -0,0 +1,58 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_table)
+
+************************************************************************ */
+
+/**
+ * A cell editor factory creating text fields.
+ */
+qx.OO.defineClass("qx.ui.table.TextFieldCellEditorFactory", qx.ui.table.CellEditorFactory,
+function() {
+  qx.ui.table.CellEditorFactory.call(this);
+});
+
+
+// overridden
+qx.Proto.createCellEditor = function(cellInfo) {
+  var cellEditor = new qx.ui.form.TextField;
+  cellEditor.setAppearance("table-editor-textfield");
+  cellEditor.originalValue = cellInfo.value;
+  cellEditor.setValue("" + cellInfo.value);
+
+  cellEditor.addEventListener("appear", function() {
+    this.selectAll();
+  });
+
+  return cellEditor;
+}
+
+
+// overridden
+qx.Proto.getCellEditorValue = function(cellEditor) {
+  // Workaround: qx.ui.form.TextField.getValue() delivers the old value, so we use the
+  //             value property of the DOM element directly
+  var value = cellEditor.getElement().value;
+
+  if (typeof cellEditor.originalValue == "number") {
+    value = parseFloat(value);
+  }
+  return value;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/Button.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/Button.js
new file mode 100644 (file)
index 0000000..a231960
--- /dev/null
@@ -0,0 +1,47 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_toolbar)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.toolbar.Button", qx.ui.form.Button,
+function(vText, vIcon, vIconWidth, vIconHeight, vFlash)
+{
+  qx.ui.form.Button.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
+
+  // Omit focus
+  this.setTabIndex(-1);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "toolbar-button" });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onkeydown = qx.util.Return.returnTrue;
+qx.Proto._onkeyup = qx.util.Return.returnTrue;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/CheckBox.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/CheckBox.js
new file mode 100644 (file)
index 0000000..781a8bc
--- /dev/null
@@ -0,0 +1,86 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_toolbar)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.toolbar.CheckBox", qx.ui.toolbar.Button,
+function(vText, vIcon, vChecked)
+{
+  qx.ui.toolbar.Button.call(this, vText, vIcon);
+
+  if (qx.util.Validation.isValid(vChecked)) {
+    this.setChecked(vChecked);
+  }
+});
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "checked", type : "boolean", defaultValue : false, getAlias:"isChecked" });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyChecked = function(propValue, propOldValue, propData)
+{
+  propValue ? this.addState("checked") : this.removeState("checked");
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENTS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmouseup = function(e)
+{
+  this.setCapture(false);
+
+  if (!this.hasState("abandoned"))
+  {
+    this.addState("over");
+    this.setChecked(!this.getChecked());
+    this.execute();
+  }
+
+  this.removeState("abandoned");
+  this.removeState("pressed");
+
+  e.stopPropagation();
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/MenuButton.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/MenuButton.js
new file mode 100644 (file)
index 0000000..a06c26f
--- /dev/null
@@ -0,0 +1,258 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_toolbar)
+#module(ui_menu)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.toolbar.MenuButton", qx.ui.toolbar.Button,
+function(vText, vMenu, vIcon, vIconWidth, vIconHeight, vFlash)
+{
+  qx.ui.toolbar.Button.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
+
+  if (qx.util.Validation.isValidObject(vMenu)) {
+    this.setMenu(vMenu);
+  }
+
+  /*
+  this._menuButton = new qx.ui.basic.Image("widget/arrows/down_small.gif");
+  this._menuButton.setAnonymous(true);
+  this.addAtEnd(this._menuButton);
+  */
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "menu", type : "object", instance : "qx.ui.menu.Menu" });
+qx.OO.addProperty({ name : "direction", type : "string", allowNull : false, possibleValues : [ "up", "down" ], defaultValue : "down" });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getParentToolBar = function()
+{
+  var vParent = this.getParent();
+
+  if (vParent instanceof qx.ui.toolbar.Part) {
+    vParent = vParent.getParent();
+  }
+
+  return vParent instanceof qx.ui.toolbar.ToolBar ? vParent : null;
+}
+
+qx.Proto._showMenu = function(vFromKeyEvent)
+{
+  var vMenu = this.getMenu();
+
+  if (vMenu)
+  {
+    // Caching common stuff
+    var vMenuParent = vMenu.getParent();
+    var vMenuParentElement = vMenuParent.getElement();
+    var vButtonElement = this.getElement();
+    var vButtonHeight = qx.dom.Dimension.getBoxHeight(vButtonElement);
+
+    // Apply X-Location
+    var vMenuParentLeft = qx.dom.Location.getPageBoxLeft(vMenuParentElement);
+    var vButtonLeft = qx.dom.Location.getPageBoxLeft(vButtonElement);
+
+    vMenu.setLeft(vButtonLeft - vMenuParentLeft);
+
+    // Apply Y-Location
+    switch(this.getDirection())
+    {
+      case "up":
+        var vBodyHeight = qx.dom.Dimension.getInnerHeight(document.body);
+        var vMenuParentBottom = qx.dom.Location.getPageBoxBottom(vMenuParentElement);
+        var vButtonBottom = qx.dom.Location.getPageBoxBottom(vButtonElement);
+
+        vMenu.setBottom(vButtonHeight + (vBodyHeight - vButtonBottom) - (vBodyHeight - vMenuParentBottom));
+        vMenu.setTop(null);
+        break;
+
+      case "down":
+        var vButtonTop = qx.dom.Location.getPageBoxTop(vButtonElement);
+
+        vMenu.setTop(vButtonTop + vButtonHeight);
+        vMenu.setBottom(null);
+        break;
+    }
+
+    this.addState("pressed");
+
+    // If this show is called from a key event occured, we want to highlight
+    // the first menubutton inside.
+    if (vFromKeyEvent) {
+      vMenu.setHoverItem(vMenu.getFirstActiveChild());
+    }
+
+    vMenu.show();
+  }
+}
+
+qx.Proto._hideMenu = function()
+{
+  var vMenu = this.getMenu();
+
+  if (vMenu) {
+    vMenu.hide();
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyMenu = function(propValue, propOldValue, propData)
+{
+  if (propOldValue)
+  {
+    propOldValue.setOpener(null);
+
+    propOldValue.removeEventListener("appear", this._onmenuappear, this);
+    propOldValue.removeEventListener("disappear", this._onmenudisappear, this);
+  }
+
+  if (propValue)
+  {
+    propValue.setOpener(this);
+
+    propValue.addEventListener("appear", this._onmenuappear, this);
+    propValue.addEventListener("disappear", this._onmenudisappear, this);
+  }
+
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENTS: MOUSE
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmousedown = function(e)
+{
+  if (e.getTarget() != this || !e.isLeftButtonPressed()) {
+    return;
+  }
+
+  this.hasState("pressed") ? this._hideMenu() : this._showMenu();
+}
+
+qx.Proto._onmouseup = function(e) {}
+
+qx.Proto._onmouseout = function(e)
+{
+  if (e.getTarget() != this) {
+    return;
+  }
+
+  this.removeState("over");
+}
+
+qx.Proto._onmouseover = function(e)
+{
+  var vToolBar = this.getParentToolBar();
+
+  if (vToolBar)
+  {
+    var vMenu = this.getMenu();
+
+    switch(vToolBar.getOpenMenu())
+    {
+      case null:
+      case vMenu:
+        break;
+
+      default:
+        // hide other menus
+        qx.manager.object.MenuManager.getInstance().update();
+
+        // show this menu
+        this._showMenu();
+    }
+  }
+
+  return qx.ui.toolbar.Button.prototype._onmouseover.call(this, e);
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENTS: MENU
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmenuappear = function(e)
+{
+  var vToolBar = this.getParentToolBar();
+
+  if (!vToolBar) {
+    return;
+  }
+
+  var vMenu = this.getMenu();
+
+  vToolBar.setOpenMenu(vMenu);
+}
+
+qx.Proto._onmenudisappear = function(e)
+{
+  var vToolBar = this.getParentToolBar();
+
+  if (!vToolBar) {
+    return;
+  }
+
+  var vMenu = this.getMenu();
+
+  if (vToolBar.getOpenMenu() == vMenu) {
+    vToolBar.setOpenMenu(null);
+  }
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/Part.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/Part.js
new file mode 100644 (file)
index 0000000..292a904
--- /dev/null
@@ -0,0 +1,82 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_toolbar)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.toolbar.Part", qx.ui.layout.HorizontalBoxLayout,
+function()
+{
+  qx.ui.layout.HorizontalBoxLayout.call(this);
+
+  this._handle = new qx.ui.toolbar.PartHandle;
+  this.add(this._handle);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "toolbar-part" });
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CLONE
+---------------------------------------------------------------------------
+*/
+
+// Omit recursive cloning of qx.ui.toolbar.PartHandle
+qx.Proto._cloneRecursive = function(cloneInstance)
+{
+  var vChildren = this.getChildren();
+  var vLength = vChildren.length;
+
+  for (var i=0; i<vLength; i++) {
+    if (!(vChildren[i] instanceof qx.ui.toolbar.PartHandle)) {
+      cloneInstance.add(vChildren[i].clone(true));
+    }
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  if (this._handle)
+  {
+    this._handle.dispose();
+    this._handle = null;
+  }
+
+  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/PartHandle.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/PartHandle.js
new file mode 100644 (file)
index 0000000..4e50692
--- /dev/null
@@ -0,0 +1,35 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_toolbar)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.toolbar.PartHandle", qx.ui.layout.CanvasLayout,
+function()
+{
+  qx.ui.layout.CanvasLayout.call(this);
+
+  var l = new qx.ui.basic.Terminator;
+  l.setAppearance("toolbar-part-handle-line");
+  this.add(l);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "toolbar-part-handle" });
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/RadioButton.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/RadioButton.js
new file mode 100644 (file)
index 0000000..fd222a2
--- /dev/null
@@ -0,0 +1,116 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_toolbar)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.toolbar.RadioButton", qx.ui.toolbar.CheckBox,
+function(vText, vIcon, vChecked) {
+  qx.ui.toolbar.CheckBox.call(this, vText, vIcon, vChecked);
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  The assigned qx.manager.selection.RadioManager which handles the switching between registered buttons
+*/
+qx.OO.addProperty({ name : "manager", type : "object", instance : "qx.manager.selection.RadioManager", allowNull : true });
+
+/*!
+  The name of the radio group. All the radio elements in a group (registered by the same manager)
+  have the same name (and could have a different value).
+*/
+qx.OO.addProperty({ name : "name", type : "string" });
+
+/*!
+  Prohibit the deselction of the checked radio button when clicked on it.
+*/
+qx.OO.addProperty({ name : "disableUncheck", type : "boolean", defaultValue : false });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyChecked = function(propValue, propOldValue, propData)
+{
+  qx.ui.toolbar.CheckBox.prototype._modifyChecked.call(this, propValue, propOldValue, propData);
+
+  var vManager = this.getManager();
+  if (vManager) {
+    vManager.handleItemChecked(this, propValue);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyManager = function(propValue, propOldValue, propData)
+{
+  if (propOldValue) {
+    propOldValue.remove(this);
+  }
+
+  if (propValue) {
+    propValue.add(this);
+  }
+
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENTS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmouseup = function(e)
+{
+  this.setCapture(false);
+
+  if (!this.hasState("abandoned"))
+  {
+    this.addState("over");
+    this.setChecked(this.getDisableUncheck() || !this.getChecked());
+    this.execute();
+  }
+
+  this.removeState("abandoned");
+  this.removeState("pressed");
+
+  e.stopPropagation();
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/Separator.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/Separator.js
new file mode 100644 (file)
index 0000000..61c07ee
--- /dev/null
@@ -0,0 +1,35 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_toolbar)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.toolbar.Separator", qx.ui.layout.CanvasLayout,
+function()
+{
+  qx.ui.layout.CanvasLayout.call(this);
+
+  var l = new qx.ui.basic.Terminator;
+  l.setAppearance("toolbar-separator-line");
+  this.add(l);
+});
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "toolbar-separator" });
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/ToolBar.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/ToolBar.js
new file mode 100644 (file)
index 0000000..c3ada9e
--- /dev/null
@@ -0,0 +1,242 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_toolbar)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.toolbar.ToolBar", qx.ui.layout.HorizontalBoxLayout,
+function()
+{
+  qx.ui.layout.HorizontalBoxLayout.call(this);
+
+  this.addEventListener("keypress", this._onkeypress);
+});
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "openMenu", type : "object", instance : "qx.ui.menu.Menu" });
+
+/*!
+  Appearance of the widget
+*/
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "toolbar" });
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getAllButtons = function()
+{
+  var vChildren = this.getChildren();
+  var vLength = vChildren.length;
+  var vDeepChildren = [];
+  var vCurrent;
+
+  for (var i=0; i<vLength; i++)
+  {
+    vCurrent = vChildren[i];
+
+    if (vCurrent instanceof qx.ui.toolbar.MenuButton)
+    {
+      vDeepChildren.push(vCurrent);
+    }
+    else if (vCurrent instanceof qx.ui.toolbar.Part)
+    {
+      vDeepChildren = vDeepChildren.concat(vCurrent.getChildren());
+    }
+  }
+
+  return vDeepChildren;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENTS
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Wraps key events to target functions
+*/
+qx.Proto._onkeypress = function(e)
+{
+  switch(e.getKeyIdentifier())
+  {
+    case "Left":
+      return this._onkeypress_left();
+
+    case "Right":
+      return this._onkeypress_right();
+  }
+}
+
+qx.Proto._onkeypress_left = function()
+{
+  var vMenu = this.getOpenMenu();
+  if (!vMenu) {
+    return;
+  }
+
+  var vOpener = vMenu.getOpener();
+  if (!vOpener) {
+    return;
+  }
+
+  var vChildren = this.getAllButtons();
+  var vChildrenLength = vChildren.length;
+  var vIndex = vChildren.indexOf(vOpener);
+  var vCurrent;
+  var vPrevButton = null;
+
+  for (var i=vIndex-1; i>=0; i--)
+  {
+    vCurrent = vChildren[i];
+
+    if (vCurrent instanceof qx.ui.toolbar.MenuButton && vCurrent.getEnabled())
+    {
+      vPrevButton = vCurrent;
+      break;
+    }
+  }
+
+  // If none found, try again from the begin (looping)
+  if (!vPrevButton)
+  {
+    for (var i=vChildrenLength-1; i>vIndex; i--)
+    {
+      vCurrent = vChildren[i];
+
+      if (vCurrent instanceof qx.ui.toolbar.MenuButton && vCurrent.getEnabled())
+      {
+        vPrevButton = vCurrent;
+        break;
+      }
+    }
+  }
+
+  if (vPrevButton)
+  {
+    // hide other menus
+    qx.manager.object.MenuManager.getInstance().update();
+
+    // show previous menu
+    vPrevButton._showMenu(true);
+  }
+}
+
+qx.Proto._onkeypress_right = function()
+{
+  var vMenu = this.getOpenMenu();
+  if (!vMenu) {
+    return;
+  }
+
+  var vOpener = vMenu.getOpener();
+  if (!vOpener) {
+    return;
+  }
+
+  var vChildren = this.getAllButtons();
+  var vChildrenLength = vChildren.length;
+  var vIndex = vChildren.indexOf(vOpener);
+  var vCurrent;
+  var vNextButton = null;
+
+  for (var i=vIndex+1; i<vChildrenLength; i++)
+  {
+    vCurrent = vChildren[i];
+
+    if (vCurrent instanceof qx.ui.toolbar.MenuButton && vCurrent.getEnabled())
+    {
+      vNextButton = vCurrent;
+      break;
+    }
+  }
+
+  // If none found, try again from the begin (looping)
+  if (!vNextButton)
+  {
+    for (var i=0; i<vIndex; i++)
+    {
+      vCurrent = vChildren[i];
+
+      if (vCurrent instanceof qx.ui.toolbar.MenuButton && vCurrent.getEnabled())
+      {
+        vNextButton = vCurrent;
+        break;
+      }
+    }
+  }
+
+  if (vNextButton)
+  {
+    // hide other menus
+    qx.manager.object.MenuManager.getInstance().update();
+
+    // show next menu
+    vNextButton._showMenu(true);
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this.removeEventListener("keypress", this._onkeypress);
+
+  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/AbstractTreeElement.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/AbstractTreeElement.js
new file mode 100644 (file)
index 0000000..b5468a3
--- /dev/null
@@ -0,0 +1,502 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_tree)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.tree.AbstractTreeElement", qx.ui.layout.BoxLayout,
+function(vLabel, vIcon, vIconSelected)
+{
+  if (this.classname == qx.ui.tree.AbstractTreeElement.ABSTRACT_CLASS) {
+    throw new Error("Please omit the usage of qx.ui.tree.AbstractTreeElement directly. Choose between qx.ui.tree.TreeFolder and qx.ui.tree.TreeFile instead!");
+  }
+
+  // Precreate subwidgets
+  this._indentObject = new qx.ui.embed.HtmlEmbed;
+  this._iconObject = new qx.ui.basic.Image;
+  this._labelObject = new qx.ui.basic.Label;
+
+  // Make anonymous
+  this._indentObject.setAnonymous(true);
+  this._iconObject.setAnonymous(true);
+  this._labelObject.setAnonymous(true);
+
+  // Behaviour and Hard Styling
+  this._labelObject.setSelectable(false);
+  this._labelObject.setStyleProperty("lineHeight", "100%");
+
+  qx.ui.layout.BoxLayout.call(this, "horizontal");
+
+  if (qx.util.Validation.isValid(vLabel)) {
+    this.setLabel(vLabel);
+  }
+
+  // Prohibit selection
+  this.setSelectable(false);
+
+  // Base URL used for indent images
+  this.BASE_URI = qx.manager.object.AliasManager.getInstance().resolvePath("widget/tree/");
+
+  // Adding subwidgets
+  this.add(this._indentObject, this._iconObject, this._labelObject);
+
+  // Set Icons
+  if ((vIcon != null) && (qx.util.Validation.isValidString(vIcon))) {
+    this.setIcon(vIcon);
+    this.setIconSelected(vIcon);
+  }
+  if ((vIconSelected != null) && (qx.util.Validation.isValidString(vIconSelected))) {
+    this.setIconSelected(vIconSelected);
+  }
+
+  // Setup initial icon
+  this._iconObject.setSource(this._evalCurrentIcon());
+
+  // Set Appearance
+  this._iconObject.setAppearance("tree-element-icon");
+  this._labelObject.setAppearance("tree-element-label");
+
+  // Register event listeners
+  this.addEventListener("mousedown", this._onmousedown);
+  this.addEventListener("mouseup", this._onmouseup);
+});
+
+qx.ui.tree.AbstractTreeElement.ABSTRACT_CLASS = "qx.ui.tree.AbstractTreeElement";
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tree-element" });
+
+/*!
+  The icons
+*/
+qx.OO.addProperty({ name : "icon", type : "string" });
+qx.OO.addProperty({ name : "iconSelected", type : "string" });
+
+/*!
+  The label/caption/text of the qx.ui.basic.Atom instance
+*/
+qx.OO.addProperty({ name : "label", type : "string" });
+
+/*!
+  Selected property
+*/
+qx.OO.addProperty({ name : "selected", type : "boolean", defaultValue : false });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyLabel = function(propValue, propOldValue, propData)
+{
+  if (this._labelObject) {
+    this._labelObject.setHtml(propValue);
+  }
+
+  return true;
+}
+
+qx.Proto._modifySelected = function(propValue, propOldValue, propData)
+{
+  propValue ? this.addState("selected") : this.removeState("selected");
+  propValue ? this._labelObject.addState("selected") : this._labelObject.removeState("selected");
+
+  var vTree = this.getTree();
+  if (!vTree._fastUpdate || (propOldValue && vTree._oldItem == this))
+  {
+    this._iconObject.setSource(this._evalCurrentIcon());
+
+    if (propValue) {
+      this._iconObject.addState("selected");
+    } else {
+      this._iconObject.removeState("selected");
+    }
+  }
+
+  var vManager = this.getTree().getManager();
+
+  if (propOldValue && vManager.getSelectedItem() == this)
+  {
+    vManager.deselectAll();
+  }
+  else if (propValue && vManager.getSelectedItem() != this)
+  {
+    vManager.setSelectedItem(this);
+  }
+
+  return true;
+}
+
+qx.Proto._evalCurrentIcon = function()
+{
+  if (this.getSelected() && this.getIconSelected()) {
+    return this.getIconSelected();
+  } else {
+    return this.getIcon() || "icon/16/file-new.png";
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getParentFolder = function()
+{
+  try {
+    return this.getParent().getParent();
+  } catch(ex) {}
+
+  return null;
+}
+
+qx.Proto.getLevel = function()
+{
+  var vParentFolder = this.getParentFolder();
+  return vParentFolder ? vParentFolder.getLevel() + 1 : null;
+}
+
+qx.Proto.getTree = function()
+{
+  var vParentFolder = this.getParentFolder();
+  return vParentFolder ? vParentFolder.getTree() : null;
+}
+
+qx.Proto.getIndentObject = function() {
+  return this._indentObject;
+}
+
+qx.Proto.getIconObject = function() {
+  return this._iconObject;
+}
+
+qx.Proto.getLabelObject = function() {
+  return this._labelObject;
+}
+
+/**
+ * <p>deselects, disconnects, removes and disposes the
+ *    current tree element and its content.
+ * </p>
+ *
+ * <p>destroys the current item (TreeFile or TreeFolder)
+ * and all its subitems. The destruction of the subitems
+ * is done by calling destroyContent. This is done if the
+ * subitem has the method destroyContent which is true if the
+ * subitem is a TreeFolder (or one of its subclasses).
+ * </p>
+ *
+ * <p>The method destroyContent is defined in the TreeFolder class.
+ * </p>
+ */
+qx.Proto.destroy = function() {
+   var manager = this.getTree() ? this.getTree().getManager() : null;
+  if(manager) {
+
+    // if the current destroyed item is
+    // selectd deselect the item. If we are
+    // in single selection mode we have to
+    // call deselectAll because setItemSelected
+    // refuses to deselect in this case
+    if(manager.getItemSelected(this)) {
+      if(manager.getMultiSelection()) {
+        manager.setItemSelected(this,false);
+      }
+      else {
+        manager.deselectAll();
+      }
+    }
+
+    // set the leadItem to null if the current
+    // destroyed item is the leadItem
+    if(manager.getLeadItem() == this) {
+      manager.setLeadItem(null);
+    }
+    // set the anchorItem to null if the current
+    // destroyed item is the anchorItem
+    if(manager.getAnchorItem() == this) {
+      manager.setAnchorItem(null);
+    }
+  }
+
+  // if the item has the method destroyContent defined
+  // then it is a TreeFolder (and it's subclasses)
+  // which potentially have content which also
+  // has to be destroyed
+  if(this.destroyContent) {
+    this.destroyContent();
+  }
+
+  // first disconnect the item so rendering
+  // of the tree lines can be done correctly
+  this.disconnect();
+
+  // remove the current item from
+  // the parent folder
+  var parentFolder = this.getParentFolder();
+  if(parentFolder) {
+    parentFolder.remove(this);
+  }
+
+  this.dispose();
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  QUEUE HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.addToTreeQueue = function()
+{
+  var vTree = this.getTree();
+  if (vTree) {
+    vTree.addChildToTreeQueue(this);
+  }
+}
+
+qx.Proto.removeFromTreeQueue = function()
+{
+  var vTree = this.getTree();
+  if (vTree) {
+    vTree.removeChildFromTreeQueue(this);
+  }
+}
+
+qx.Proto.addToCustomQueues = function(vHint)
+{
+  this.addToTreeQueue();
+
+  qx.ui.layout.BoxLayout.prototype.addToCustomQueues.call(this, vHint);
+}
+
+qx.Proto.removeFromCustomQueues = function(vHint)
+{
+  this.removeFromTreeQueue();
+
+  qx.ui.layout.BoxLayout.prototype.removeFromCustomQueues.call(this, vHint);
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPLAYBLE HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyParent = function(propValue, propOldValue, propData)
+{
+  qx.ui.layout.BoxLayout.prototype._modifyParent.call(this, propValue, propOldValue, propData);
+
+  // Be sure to update previous folder also if it is closed currently (plus/minus symbol)
+  if (propOldValue && !propOldValue.isDisplayable() && propOldValue.getParent() && propOldValue.getParent().isDisplayable()) {
+    propOldValue.getParent().addToTreeQueue();
+  }
+
+  // Be sure to update new folder also if it is closed currently (plus/minus symbol)
+  if (propValue && !propValue.isDisplayable() && propValue.getParent() && propValue.getParent().isDisplayable()) {
+    propValue.getParent().addToTreeQueue();
+  }
+
+  return true;
+}
+
+qx.Proto._handleDisplayableCustom = function(vDisplayable, vParent, vHint)
+{
+  qx.ui.layout.BoxLayout.prototype._handleDisplayableCustom.call(this, vDisplayable, vParent, vHint);
+
+  if (vHint)
+  {
+    var vParentFolder = this.getParentFolder();
+    var vPreviousParentFolder = this._previousParentFolder;
+
+    if (vPreviousParentFolder)
+    {
+      if (this._wasLastVisibleChild)
+      {
+        vPreviousParentFolder._updateIndent();
+      }
+      else if (!vPreviousParentFolder.hasContent())
+      {
+        vPreviousParentFolder.addToTreeQueue();
+      }
+    }
+
+    if (vParentFolder && vParentFolder.isDisplayable() && vParentFolder._initialLayoutDone) {
+      vParentFolder.addToTreeQueue();
+    }
+
+    if (this.isLastVisibleChild())
+    {
+      var vPrev = this.getPreviousVisibleSibling();
+
+      if (vPrev && vPrev instanceof qx.ui.tree.AbstractTreeElement) {
+        vPrev._updateIndent();
+      }
+    }
+
+    if (vDisplayable) {
+      this._updateIndent();
+    }
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT LISTENERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmousedown = function(e)
+{
+  this.getTree().getManager().handleMouseDown(this, e);
+  e.stopPropagation();
+}
+
+qx.Proto._onmouseup = qx.util.Return.returnTrue;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  TREE FLUSH
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.flushTree = function()
+{
+  // store informations for update process
+  this._previousParentFolder = this.getParentFolder();
+  this._wasLastVisibleChild = this.isLastVisibleChild();
+
+  // generate html for indent area
+  var vLevel = this.getLevel();
+  var vTree = this.getTree();
+  var vImage;
+  var vHtml = [];
+  var vCurrentObject = this;
+
+  for (var i=0; i<vLevel; i++)
+  {
+    vImage = vCurrentObject.getIndentSymbol(vTree.getUseTreeLines(), i==0);
+
+    if (vImage)
+    {
+      vHtml.push("<img style=\"position:absolute;top:0px;left:");
+      vHtml.push((vLevel-i-1) * 19);
+      vHtml.push("px\" src=\"");
+      vHtml.push(this.BASE_URI);
+      vHtml.push(vImage);
+      vHtml.push(".");
+      vHtml.push("gif");
+      vHtml.push("\" />");
+    }
+
+    vCurrentObject = vCurrentObject.getParentFolder();
+  }
+
+  this._indentObject.setHtml(vHtml.join(""));
+  this._indentObject.setWidth(vLevel * 19);
+}
+
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if (this._indentObject)
+  {
+    this._indentObject.dispose();
+    this._indentObject = null;
+  }
+
+  if (this._iconObject)
+  {
+    this._iconObject.dispose();
+    this._iconObject = null;
+  }
+
+  if (this._labelObject)
+  {
+    this._labelObject.dispose();
+    this._labelObject = null;
+  }
+
+  this._previousParentFolder = null;
+
+  this.removeEventListener("mousedown", this._onmousedown);
+  this.removeEventListener("mouseup", this._onmouseup);
+
+  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/Tree.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/Tree.js
new file mode 100644 (file)
index 0000000..18affec
--- /dev/null
@@ -0,0 +1,398 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_tree)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.tree.Tree", qx.ui.tree.TreeFolder,
+function(vLabel, vIcon, vIconSelected)
+{
+  qx.ui.tree.TreeFolder.call(this, vLabel, vIcon, vIconSelected);
+
+  // ************************************************************************
+  //   INITILISIZE MANAGER
+  // ************************************************************************
+  this._manager = new qx.manager.selection.TreeSelectionManager(this);
+
+
+  this._iconObject.setAppearance("tree-icon");
+  this._labelObject.setAppearance("tree-label");
+
+
+  // ************************************************************************
+  //   DEFAULT STATE
+  // ************************************************************************
+  // The tree should be open by default
+  this.setOpen(true);
+
+  // Fix vertical alignment of empty tree
+  this.addToFolder();
+
+
+  // ************************************************************************
+  //   KEY EVENT LISTENER
+  // ************************************************************************
+  this.addEventListener("keydown", this._onkeydown);
+  this.addEventListener("keypress", this._onkeypress);
+  this.addEventListener("keyup", this._onkeyup);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "useDoubleClick", type : "boolean", defaultValue : false, getAlias : "useDoubleClick" });
+qx.OO.addProperty({ name : "useTreeLines", type : "boolean", defaultValue : true, getAlias : "useTreeLines" });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MANAGER BINDING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getManager = function() {
+  return this._manager;
+}
+
+qx.Proto.getSelectedElement = function() {
+  return this.getManager().getSelectedItem();
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  QUEUE HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.addChildToTreeQueue = function(vChild)
+{
+  if (!vChild._isInTreeQueue && !vChild._isDisplayable) {
+    this.debug("Ignoring invisible child: " + vChild);
+  }
+
+  if (!vChild._isInTreeQueue && vChild._isDisplayable)
+  {
+    qx.ui.core.Widget.addToGlobalWidgetQueue(this);
+
+    if (!this._treeQueue) {
+      this._treeQueue = {};
+    }
+
+    this._treeQueue[vChild.toHashCode()] = vChild;
+
+    vChild._isInTreeQueue = true;
+  }
+}
+
+qx.Proto.removeChildFromTreeQueue = function(vChild)
+{
+  if (vChild._isInTreeQueue)
+  {
+    if (this._treeQueue) {
+      delete this._treeQueue[vChild.toHashCode()];
+    }
+
+    delete vChild._isInTreeQueue;
+  }
+}
+
+qx.Proto.flushWidgetQueue = function() {
+  this.flushTreeQueue();
+}
+
+qx.Proto.flushTreeQueue = function()
+{
+  if (!qx.lang.Object.isEmpty(this._treeQueue))
+  {
+    for (var vHashCode in this._treeQueue)
+    {
+      // this.debug("Flushing Tree Child: " + this._treeQueue[vHashCode]);
+      this._treeQueue[vHashCode].flushTree();
+      delete this._treeQueue[vHashCode]._isInTreeQueue;
+    }
+
+    delete this._treeQueue;
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyUseTreeLines = function(propValue, propOldValue, propData)
+{
+  if (this._initialLayoutDone) {
+    this._updateIndent();
+  }
+
+  return true;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getTree = function() {
+  return this;
+}
+
+qx.Proto.getParentFolder = function() {
+  return null;
+}
+
+qx.Proto.getLevel = function() {
+  return 0;
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  COMMON CHECKERS
+---------------------------------------------------------------------------
+*/
+
+qx.ui.tree.Tree.isTreeFolder = function(vObject) {
+  return vObject && vObject instanceof qx.ui.tree.TreeFolder && !(vObject instanceof qx.ui.tree.Tree);
+};
+
+qx.ui.tree.Tree.isOpenTreeFolder = function(vObject) {
+  return vObject instanceof qx.ui.tree.TreeFolder && vObject.getOpen() && vObject.hasContent();
+};
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onkeydown = function(e)
+{
+  var vSelectedItem = this.getManager().getSelectedItem();
+
+  if (e.getKeyIdentifier() == "Enter") {
+    e.preventDefault();
+
+    if (qx.ui.tree.Tree.isTreeFolder(vSelectedItem)) {
+      return vSelectedItem.toggle();
+    }
+  }
+};
+
+
+qx.Proto._onkeypress = function(e)
+{
+  var vManager = this.getManager();
+  var vSelectedItem = vManager.getSelectedItem();
+
+  switch(e.getKeyIdentifier())
+  {
+    case "Left":
+      e.preventDefault();
+
+      if (qx.ui.tree.Tree.isTreeFolder(vSelectedItem))
+      {
+        if (!vSelectedItem.getOpen())
+        {
+          var vParent = vSelectedItem.getParentFolder();
+          if (vParent instanceof qx.ui.tree.TreeFolder) {
+            if (!(vParent instanceof qx.ui.tree.Tree)) {
+              vParent.close();
+            }
+
+            this.setSelectedElement(vParent);
+          }
+        }
+        else
+        {
+          return vSelectedItem.close();
+        }
+      }
+      else if (vSelectedItem instanceof qx.ui.tree.TreeFile)
+      {
+        var vParent = vSelectedItem.getParentFolder();
+        if (vParent instanceof qx.ui.tree.TreeFolder) {
+          if (!(vParent instanceof qx.ui.tree.Tree)) {
+            vParent.close();
+          }
+
+          this.setSelectedElement(vParent);
+        }
+      }
+
+      break;
+
+    case "Right":
+      e.preventDefault();
+
+      if (qx.ui.tree.Tree.isTreeFolder(vSelectedItem))
+      {
+        if (!vSelectedItem.getOpen())
+        {
+          return vSelectedItem.open();
+        }
+        else if (vSelectedItem.hasContent())
+        {
+          var vFirst = vSelectedItem.getFirstVisibleChildOfFolder();
+          this.setSelectedElement(vFirst);
+
+          if (vFirst instanceof qx.ui.tree.TreeFolder) {
+            vFirst.open();
+          }
+
+          return;
+        }
+      }
+
+      break;
+
+    default:
+      if (!this._fastUpdate)
+      {
+        this._fastUpdate = true;
+        this._oldItem = vSelectedItem;
+      }
+
+      vManager.handleKeyPress(e);
+  }
+};
+
+
+qx.Proto._onkeyup = function(e)
+{
+  if (this._fastUpdate)
+  {
+    var vOldItem = this._oldItem;
+    var vNewItem = this.getManager().getSelectedItem();
+
+    vNewItem.getIconObject().addState("selected");
+
+    delete this._fastUpdate;
+    delete this._oldItem;
+  }
+};
+
+
+qx.Proto.getLastTreeChild = function()
+{
+  var vLast = this;
+
+  while (vLast instanceof qx.ui.tree.AbstractTreeElement)
+  {
+    if (!(vLast instanceof qx.ui.tree.TreeFolder) || !vLast.getOpen()) {
+      return vLast;
+    }
+
+    vLast = vLast.getLastVisibleChildOfFolder();
+  }
+
+  return null;
+};
+
+
+qx.Proto.getFirstTreeChild = function() {
+  return this;
+};
+
+
+qx.Proto.setSelectedElement = function(vElement)
+{
+  var vManager = this.getManager();
+
+  vManager.setSelectedItem(vElement);
+  vManager.setLeadItem(vElement);
+};
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this.removeEventListener("keydown", this._onkeydown);
+  this.removeEventListener("keypress", this._onkeypress);
+  this.removeEventListener("keyup", this._onkeyup);
+
+  if (this._manager)
+  {
+    this._manager.dispose();
+    this._manager = null;
+  }
+
+  delete this._oldItem;
+
+  return qx.ui.tree.TreeFolder.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/TreeFile.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/TreeFile.js
new file mode 100644 (file)
index 0000000..8939b18
--- /dev/null
@@ -0,0 +1,62 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_tree)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.tree.TreeFile", qx.ui.tree.AbstractTreeElement,
+function(vLabel, vIcon, vIconSelected) {
+  qx.ui.tree.AbstractTreeElement.call(this, vLabel, vIcon, vIconSelected);
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INDENT HELPER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getIndentSymbol = function(vUseTreeLines, vIsLastColumn)
+{
+  if (vUseTreeLines)
+  {
+    if (vIsLastColumn)
+    {
+      return this.isLastChild() ? "end" : "cross";
+    }
+    else
+    {
+      return "line";
+    }
+  }
+
+  return null;
+}
+
+qx.Proto._updateIndent = function() {
+  this.addToTreeQueue();
+}
+
+qx.Proto.getItems = function() {
+  return [this];
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/TreeFolder.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/TreeFolder.js
new file mode 100644 (file)
index 0000000..3f66086
--- /dev/null
@@ -0,0 +1,605 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_tree)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.tree.TreeFolder", qx.ui.tree.AbstractTreeElement,
+function(vLabel, vIcon, vIconSelected)
+{
+  qx.ui.tree.AbstractTreeElement.call(this, vLabel, vIcon, vIconSelected);
+
+  this._iconObject.setAppearance("tree-folder-icon");
+  this._labelObject.setAppearance("tree-folder-label");
+
+  this.addEventListener("dblclick", this._ondblclick);
+
+  // Remapping of add/remove methods
+  this.add = this.addToFolder;
+  this.addBefore = this.addBeforeToFolder;
+  this.addAfter = this.addAfterToFolder;
+  this.addAt = this.addAtToFolder;
+  this.addAtBegin = this.addAtBeginToFolder;
+  this.addAtEnd = this.addAtEndToFolder;
+  this.remove = this.removeFromFolder;
+});
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tree-folder" });
+qx.OO.changeProperty({ name : "icon", type : "string" });
+qx.OO.changeProperty({ name : "iconSelected", type : "string" });
+
+qx.OO.addProperty({ name : "open", type : "boolean", defaultValue : false });
+qx.OO.addProperty({ name : "alwaysShowPlusMinusSymbol", type : "boolean", defaultValue : false });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.hasContent = function() {
+  return this._containerObject && this._containerObject.getChildrenLength() > 0;
+}
+
+qx.Proto.open = function()
+{
+  if (this.getOpen()) {
+    return;
+  }
+
+  if (this.hasContent() && this.isSeeable())
+  {
+    this.getTopLevelWidget().setGlobalCursor("progress");
+    qx.client.Timer.once(this._openCallback, this, 0);
+  }
+  else
+  {
+    this.setOpen(true);
+  }
+}
+
+qx.Proto.close = function() {
+  this.setOpen(false);
+}
+
+qx.Proto.toggle = function() {
+  this.getOpen() ? this.close() : this.open();
+}
+
+qx.Proto._openCallback = function()
+{
+  this.setOpen(true);
+  qx.ui.core.Widget.flushGlobalQueues();
+  this.getTopLevelWidget().setGlobalCursor(null);
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHILDREN HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._createChildrenStructure = function()
+{
+  this.setAppearance(this instanceof qx.ui.tree.Tree ? "tree-container" : "tree-folder-container");
+
+  if (!this._horizontalLayout)
+  {
+    this.setOrientation("vertical");
+
+    this._horizontalLayout = new qx.ui.layout.HorizontalBoxLayout;
+    this._horizontalLayout.setWidth(null);
+    this._horizontalLayout.setParent(this);
+    this._horizontalLayout.setAnonymous(true);
+    this._horizontalLayout.setAppearance(this instanceof qx.ui.tree.Tree ? "tree" : "tree-folder");
+
+    this._indentObject.setParent(this._horizontalLayout);
+    this._iconObject.setParent(this._horizontalLayout);
+    this._labelObject.setParent(this._horizontalLayout);
+  }
+
+  if (!this._containerObject)
+  {
+    this._containerObject = new qx.ui.layout.VerticalBoxLayout;
+    this._containerObject.setWidth(null);
+    this._containerObject.setAnonymous(true);
+
+    // it should be faster to first handle display,
+    // because the default display value is true and if we first
+    // setup the parent the logic do all to make the
+    // widget first visible and then, if the folder is not
+    // opened again invisible.
+    this._containerObject.setDisplay(this.getOpen());
+    this._containerObject.setParent(this);
+
+    // remap remove* functions
+    this.remapChildrenHandlingTo(this._containerObject);
+  }
+}
+
+qx.Proto._handleChildMove = function(vChild, vRelationIndex, vRelationChild)
+{
+  if (vChild.isDisplayable())
+  {
+    var vChildren = this._containerObject.getChildren();
+    var vOldChildIndex = vChildren.indexOf(vChild);
+
+    if (vOldChildIndex != -1)
+    {
+      if (vRelationChild) {
+        vRelationIndex = vChildren.indexOf(vRelationChild);
+      }
+
+      if (vRelationIndex == vChildren.length-1)
+      {
+        vChild._updateIndent();
+
+        // Update indent of previous last child
+        this._containerObject.getLastVisibleChild()._updateIndent();
+      }
+      else if (vChild._wasLastVisibleChild)
+      {
+        vChild._updateIndent();
+
+        // Update indent for new last child
+        var vPreviousSibling = vChild.getPreviousVisibleSibling();
+        if (vPreviousSibling) {
+          vPreviousSibling._updateIndent();
+        }
+      }
+    }
+  }
+}
+
+qx.Proto.addToFolder = function()
+{
+  this._createChildrenStructure();
+
+  if (this._containerObject) {
+    return this._containerObject.add.apply(this._containerObject, arguments);
+  }
+}
+
+qx.Proto.addBeforeToFolder = function(vChild, vBefore)
+{
+  this._createChildrenStructure();
+
+  if (this._containerObject)
+  {
+    this._handleChildMove(vChild, null, vBefore);
+    return this._containerObject.addBefore.apply(this._containerObject, arguments);
+  }
+}
+
+qx.Proto.addAfterToFolder = function(vChild, vAfter)
+{
+  this._createChildrenStructure();
+
+  if (this._containerObject)
+  {
+    this._handleChildMove(vChild, null, vAfter);
+    return this._containerObject.addAfter.apply(this._containerObject, arguments);
+  }
+}
+
+qx.Proto.addAtToFolder = function(vChild, vIndex)
+{
+  this._createChildrenStructure();
+
+  if (this._containerObject)
+  {
+    this._handleChildMove(vChild, vIndex);
+    return this._containerObject.addAt.apply(this._containerObject, arguments);
+  }
+}
+
+qx.Proto.addAtBeginToFolder = function(vChild) {
+  return this.addAtToFolder(vChild, 0);
+}
+
+qx.Proto.addAtEndToFolder = function(vChild)
+{
+  this._createChildrenStructure();
+
+  if (this._containerObject)
+  {
+    var vLast = this._containerObject.getLastChild();
+
+    if (vLast)
+    {
+      this._handleChildMove(vChild, null, vLast);
+      return this._containerObject.addAfter.call(this._containerObject, vChild, vLast);
+    }
+    else
+    {
+      return this.addAtBeginToFolder(vChild);
+    }
+  }
+}
+
+qx.Proto._remappingChildTable = [ "remove", "removeAt", "removeAll" ];
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHILDREN UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getContainerObject = function() {
+  return this._containerObject;
+}
+
+qx.Proto.getHorizontalLayout = function() {
+  return this._horizontalLayout;
+}
+
+qx.Proto.getFirstVisibleChildOfFolder = function()
+{
+  if (this._containerObject) {
+    return this._containerObject.getFirstChild();
+  }
+}
+
+qx.Proto.getLastVisibleChildOfFolder = function()
+{
+  if (this._containerObject) {
+    return this._containerObject.getLastChild();
+  }
+}
+
+qx.Proto.getItems = function(recursive, invisible)
+{
+  var a = [this];
+
+  if (this._containerObject)
+  {
+    var ch = invisible == true ? this._containerObject.getChildren() : this._containerObject.getVisibleChildren();
+
+    if (recursive == false)
+    {
+      a = a.concat(ch);
+    }
+    else
+    {
+      for (var i=0, chl=ch.length; i<chl; i++) {
+        a = a.concat(ch[i].getItems(recursive, invisible));
+      }
+    }
+  }
+
+  return a;
+}
+
+/**
+ * <p>deselects, disconnects, removes and disposes the
+ *    content of the folder and its subfolders.
+ * </p>
+ *
+ * <p>the current items subitems (and the subitems of each
+ * subitem) are destoyed going top down the TreeFolder
+ * hierarchy. The current item is left as is.
+ * </p>
+ */
+qx.Proto.destroyContent = function() {
+  if(this.hasContent()) {
+
+    var manager = this.getTree() ? this.getTree().getManager() : null;
+
+    var leadItem;
+    var anchorItem;
+    if(manager) {
+      leadItem = manager.getLeadItem();
+      anchorItem = manager.getAnchorItem();
+    }
+
+    var items = this.getItems();
+    var item;
+
+    for(var i=items.length-1;i>=0;--i) {
+      item = items[i];
+
+      // this.getItems seems to also contain this.
+      // In order to avoid endless loops by calling
+      // recursively destroyContent we have to avoid
+      // destroying ourselves
+      if(item != this) {
+        if(manager) {
+          // set the leadItem to null if the current
+          // destroyed item is the leadItem
+          if(leadItem == item) {
+            manager.setLeadItem(null);
+          }
+          // set the anchorItem to null if the current
+          // destroyed item is the anchorItem
+          if(anchorItem == item) {
+            manager.setAnchorItem(null);
+          }
+
+          // if the current destroyed item is
+          // selectd deselect the item. If we are
+          // in single selection mode we have to
+          // call deselectAll because setItemSelected
+          // refuses to deselect in this case
+          if(manager.getItemSelected(item)) {
+            if(manager.getMultiSelection()) {
+              manager.setItemSelected(item,false);
+            }
+            else {
+              manager.deselectAll();
+            }
+          }
+
+          // if the item has the method destroyContent defined
+          // then it is a TreeFolder (and it's subclasses)
+          // which potentially have content which also
+          // has to be destroyed
+          if (item.destroyContent) {
+            item.destroyContent();
+          }
+        }
+
+        // first disconnect the item so rendering
+        // of the tree lines can be done correctly
+        item.disconnect();
+        this.remove(item);
+        item.dispose();
+      }
+    }
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._evalCurrentIcon = function()
+{
+  if (this.getSelected()) {
+    return this.getIconSelected() || "icon/16/folder-open.png";
+  } else {
+    return this.getIcon() || "icon/16/folder.png";
+  }
+}
+
+qx.Proto._modifyOpen = function(propValue, propOldValue, propData)
+{
+  this._updateLastColumn();
+
+  if (this._containerObject) {
+    this._containerObject.setDisplay(propValue);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyAlwaysShowPlusMinusSymbol = function(propValue, propOldValue, propData)
+{
+  this._updateLastColumn();
+
+  return true;
+}
+
+qx.Proto._updateLastColumn = function()
+{
+  if (this._indentObject)
+  {
+    var vElement = this._indentObject.getElement();
+
+    if (vElement && vElement.firstChild) {
+      vElement.firstChild.src = this.BASE_URI + this.getIndentSymbol(this.getTree().getUseTreeLines(), true) + ".gif";
+    }
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT LISTENERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmousedown = function(e)
+{
+  var vOriginalTarget = e.getOriginalTarget();
+
+  switch(vOriginalTarget)
+  {
+    case this._indentObject:
+      if (this._indentObject.getElement().firstChild == e.getDomTarget())
+      {
+        this.getTree().getManager().handleMouseDown(this, e);
+        this.toggle();
+      }
+
+      break;
+
+    case this._containerObject:
+      break;
+
+    case this:
+      if (this._containerObject) {
+        break;
+      }
+
+      // no break here
+
+    default:
+      this.getTree().getManager().handleMouseDown(this, e);
+  }
+
+  e.stopPropagation();
+}
+
+qx.Proto._onmouseup = function(e)
+{
+  var vOriginalTarget = e.getOriginalTarget();
+
+  switch(vOriginalTarget)
+  {
+    case this._indentObject:
+    case this._containerObject:
+    case this:
+      break;
+
+    default:
+      if (!this.getTree().getUseDoubleClick()) {
+        this.open();
+      }
+  }
+}
+
+qx.Proto._ondblclick = function(e)
+{
+  if (!this.getTree().getUseDoubleClick()) {
+    return;
+  }
+
+  this.toggle();
+  e.stopPropagation();
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INDENT HELPER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getIndentSymbol = function(vUseTreeLines, vIsLastColumn)
+{
+  if (vIsLastColumn)
+  {
+    if (this.hasContent() || this.getAlwaysShowPlusMinusSymbol())
+    {
+      if (!vUseTreeLines)
+      {
+        return this.getOpen() ? "minus" : "plus";
+      }
+      else if (this.isLastChild())
+      {
+        return this.getOpen() ? "end_minus" : "end_plus";
+      }
+      else
+      {
+        return this.getOpen() ? "cross_minus" : "cross_plus";
+      }
+    }
+    else if (vUseTreeLines)
+    {
+      return this.isLastChild() ? "end" : "cross";
+    }
+  }
+  else
+  {
+    return vUseTreeLines && !this.isLastChild() ? "line" : null;
+  }
+}
+
+qx.Proto._updateIndent = function()
+{
+  // Intentionally bypass superclass; the _updateIndent we want is in TreeFile
+  qx.ui.tree.TreeFile.prototype._updateIndent.call(this);
+
+  if (!this._containerObject) {
+    return;
+  }
+
+  var ch = this._containerObject.getVisibleChildren();
+  for (var i=0, l=ch.length; i<l; i++) {
+    ch[i]._updateIndent();
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this.removeEventListener("dblclick", this._ondblclick);
+
+  if (this._horizontalLayout)
+  {
+    this._horizontalLayout.dispose();
+    this._horizontalLayout = null;
+  }
+
+  if (this._containerObject)
+  {
+    this._containerObject.dispose();
+    this._containerObject = null;
+  }
+
+  return qx.ui.tree.AbstractTreeElement.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/AbstractTreeElement.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/AbstractTreeElement.js
new file mode 100644 (file)
index 0000000..16245b9
--- /dev/null
@@ -0,0 +1,529 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+     2006 by Derrell Lipman
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * Derrell Lipman (derrell)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_treefullcontrol)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.treefullcontrol.AbstractTreeElement", qx.ui.layout.BoxLayout,
+function(treeRowStructure)
+{
+  if (this.classname == qx.ui.treefullcontrol.AbstractTreeElement.ABSTRACT_CLASS) {
+    throw new Error("Please omit the usage of qx.ui.treefullcontrol.AbstractTreeElement directly. Choose between qx.ui.treefullcontrol.TreeFolder, qx.ui.treefullcontrol.TreeFolderSimple, qx.ui.treefullcontrol.TreeFile and qx.ui.treefullcontrol.TreeFileSimple instead!");
+  }
+
+  if (treeRowStructure !== qx.ui.treefullcontrol.TreeRowStructure.getInstance())
+  {
+    throw new Error("A qx.ui.treefullcontrol.TreeRowStructure parameter is required.");
+  }
+
+  // Precreate subwidgets
+  this._indentObject = treeRowStructure._indentObject;
+  this._iconObject = treeRowStructure._iconObject;
+  this._labelObject = treeRowStructure._labelObject;
+
+  // Make anonymous
+  this._indentObject.setAnonymous(true);
+  this._iconObject.setAnonymous(true);
+  this._labelObject.setAnonymous(true);
+
+  // Behaviour and Hard Styling
+  this._labelObject.setSelectable(false);
+  this._labelObject.setStyleProperty("lineHeight",
+                                     "100%");
+
+  qx.ui.layout.BoxLayout.call(this, "horizontal");
+
+  if (qx.util.Validation.isValid(treeRowStructure._label)) {
+    this.setLabel(treeRowStructure._label);
+  }
+
+  // Prohibit selection
+  this.setSelectable(false);
+
+  // Base URL used for indent images
+  this.BASE_URI = qx.manager.object.AliasManager.getInstance().resolvePath("widget/tree/");
+
+  /*
+   * Add all of the objects which are to be in the horizontal layout.
+   */
+  for (var i = 0; i < treeRowStructure._fields.length; i++)
+  {
+    this.add(treeRowStructure._fields[i]);
+  }
+
+  // Set Icons
+  if ((treeRowStructure._icons.unselected != null) &&
+      (qx.util.Validation.isValidString(treeRowStructure._icons.unselected))) {
+    this.setIcon(treeRowStructure._icons.unselected);
+    this.setIconSelected(treeRowStructure._icons.unselected);
+  }
+  if ((treeRowStructure._icons.selected != null) &&
+      (qx.util.Validation.isValidString(treeRowStructure._icons.selected))) {
+    this.setIconSelected(treeRowStructure._icons.selected);
+  }
+
+  // Setup initial icon
+  this._iconObject.setSource(this._evalCurrentIcon());
+
+  // Set Appearance
+  this._iconObject.setAppearance("tree-element-icon");
+  this._labelObject.setAppearance("tree-element-label");
+
+  // Register event listeners
+  this.addEventListener("mousedown", this._onmousedown);
+  this.addEventListener("mouseup", this._onmouseup);
+});
+
+qx.ui.treefullcontrol.AbstractTreeElement.ABSTRACT_CLASS = "qx.ui.treefullcontrol.AbstractTreeElement";
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.changeProperty({ name : "appearance",
+                       type : "string",
+                       defaultValue : "tree-element"
+                     });
+
+/*!
+  The icons
+*/
+qx.OO.addProperty({ name : "icon",
+                    type : "string"
+                  });
+
+qx.OO.addProperty({ name : "iconSelected",
+                    type : "string"
+                  });
+
+/*!
+  The label/caption/text of the qx.ui.basic.Atom instance
+*/
+qx.OO.addProperty({ name : "label",
+                    type : "string"
+                  });
+
+/*!
+  Selected property
+*/
+qx.OO.addProperty({ name : "selected",
+                    type : "boolean",
+                    defaultValue : false
+                  });
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyLabel = function(propValue, propOldValue, propData)
+{
+  if (this._labelObject) {
+    this._labelObject.setHtml(propValue);
+  }
+
+  return true;
+}
+
+qx.Proto._modifySelected = function(propValue, propOldValue, propData)
+{
+  if (propValue) {
+    this.addState("selected");
+    this._labelObject.addState("selected");
+  } else {
+    this.removeState("selected");
+    this._labelObject.removeState("selected");
+  }
+
+  var vTree = this.getTree();
+  if (!vTree._fastUpdate ||
+      (propOldValue && vTree._oldItem == this)) {
+    this._iconObject.setSource(this._evalCurrentIcon());
+
+    if (propValue) {
+      this._iconObject.addState("selected");
+    } else {
+      this._iconObject.removeState("selected");
+    }
+  }
+
+  var vManager = this.getTree().getManager();
+
+  if (propOldValue && vManager.getSelectedItem() == this)
+  {
+    vManager.deselectAll();
+  }
+  else if (propValue && vManager.getSelectedItem() != this)
+  {
+    vManager.setSelectedItem(this);
+  }
+
+  return true;
+}
+
+qx.Proto._evalCurrentIcon = function()
+{
+  if (this.getSelected() && this.getIconSelected()) {
+    return this.getIconSelected();
+  } else {
+    return this.getIcon() || "icon/16/file-new.png";
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getParentFolder = function()
+{
+  try {
+    return this.getParent().getParent();
+  } catch(ex) {}
+
+  return null;
+}
+
+qx.Proto.getLevel = function()
+{
+  var vParentFolder = this.getParentFolder();
+  return vParentFolder ? vParentFolder.getLevel() + 1 : null;
+}
+
+qx.Proto.getTree = function()
+{
+  var vParentFolder = this.getParentFolder();
+  return vParentFolder ? vParentFolder.getTree() : null;
+}
+
+qx.Proto.getIndentObject = function() {
+  return this._indentObject;
+}
+
+qx.Proto.getIconObject = function() {
+  return this._iconObject;
+}
+
+qx.Proto.getLabelObject = function() {
+  return this._labelObject;
+}
+
+/**
+ * Obtain the entire hierarchy of labels from the root down to the current
+ * node.
+ *
+ * @param
+ *   vArr -
+ *     When called by the user, arr should typically be an empty array.  Each
+ *     level from the current node upwards will push its label onto the array.
+ */
+qx.Proto.getHierarchy = function(vArr) {
+  // Add our label to the array
+  if (this._labelObject) {
+    vArr.unshift(this._labelObject.getHtml());
+  }
+
+  // Get the parent folder
+  var parent = this.getParentFolder();
+
+  // If it exists...
+  if (parent) {
+    // ... then add it and its ancestors' labels to the array.
+    parent.getHierarchy(vArr);
+  }
+
+  // Give 'em what they came for
+  return vArr;
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  QUEUE HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.addToTreeQueue = function()
+{
+  var vTree = this.getTree();
+  if (vTree) {
+    vTree.addChildToTreeQueue(this);
+  }
+}
+
+qx.Proto.removeFromTreeQueue = function()
+{
+  var vTree = this.getTree();
+  if (vTree) {
+    vTree.removeChildFromTreeQueue(this);
+  }
+}
+
+qx.Proto.addToCustomQueues = function(vHint)
+{
+  this.addToTreeQueue();
+
+  qx.ui.layout.BoxLayout.prototype.addToCustomQueues.call(this, vHint);
+}
+
+qx.Proto.removeFromCustomQueues = function(vHint)
+{
+  this.removeFromTreeQueue();
+
+  qx.ui.layout.BoxLayout.prototype.removeFromCustomQueues.call(this, vHint);
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPLAYBLE HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyParent = function(propValue, propOldValue, propData)
+{
+  qx.ui.layout.BoxLayout.prototype._modifyParent.call(this, propValue, propOldValue, propData);
+
+  // Be sure to update previous folder also if it is closed currently
+  // (plus/minus symbol)
+  if (propOldValue &&
+      !propOldValue.isDisplayable() &&
+      propOldValue.getParent() &&
+      propOldValue.getParent().isDisplayable()) {
+    propOldValue.getParent().addToTreeQueue();
+  }
+
+  // Be sure to update new folder also if it is closed currently
+  // (plus/minus symbol)
+  if (propValue &&
+      !propValue.isDisplayable() &&
+      propValue.getParent() &&
+      propValue.getParent().isDisplayable()) {
+    propValue.getParent().addToTreeQueue();
+  }
+
+  return true;
+}
+
+qx.Proto._handleDisplayableCustom = function(vDisplayable, vParent, vHint)
+{
+  qx.ui.layout.BoxLayout.prototype._handleDisplayableCustom.call(this,
+                                                                 vDisplayable,
+                                                                 vParent,
+                                                                 vHint);
+
+  if (vHint)
+  {
+    var vParentFolder = this.getParentFolder();
+    var vPreviousParentFolder = this._previousParentFolder;
+
+    if (vPreviousParentFolder)
+    {
+      if (this._wasLastVisibleChild)
+      {
+        vPreviousParentFolder._updateIndent();
+      }
+      else if (!vPreviousParentFolder.hasContent())
+      {
+        vPreviousParentFolder.addToTreeQueue();
+      }
+    }
+
+    if (vParentFolder &&
+        vParentFolder.isDisplayable() &&
+        vParentFolder._initialLayoutDone) {
+      vParentFolder.addToTreeQueue();
+    }
+
+    if (this.isLastVisibleChild())
+    {
+      var vPrev = this.getPreviousVisibleSibling();
+
+      if (vPrev &&
+          vPrev instanceof qx.ui.treefullcontrol.AbstractTreeElement) {
+        vPrev._updateIndent();
+      }
+    }
+
+    if (vDisplayable) {
+      this._updateIndent();
+    }
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT LISTENERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmousedown = function(e)
+{
+  this.getTree().getManager().handleMouseDown(this, e);
+  e.stopPropagation();
+}
+
+qx.Proto._onmouseup = qx.util.Return.returnTrue;
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  TREE FLUSH
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.flushTree = function()
+{
+  // store information for update process
+  this._previousParentFolder = this.getParentFolder();
+  this._wasLastVisibleChild = this.isLastVisibleChild();
+
+  // generate html for indent area
+  var vLevel = this.getLevel();
+  var vTree = this.getTree();
+  var vImage;
+  var vHtml = [];
+  var vCurrentObject = this;
+  var vMinLevel = 0;
+  var vMaxLevel = vLevel;
+
+  // If we're displaying the open/close button for the root node (normal)...
+  if (vTree.getRootOpenClose()) {
+    // ... then we need one more level
+    vMaxLevel = vLevel + 1;
+  }
+
+  // If we're not displaying the root node (creating virtual roots)...
+  if (vTree.hideNode()) {
+    // ... then start one level higher
+    vMinLevel = 1;
+  }
+
+  for (var i=vMinLevel; i<vMaxLevel; i++)
+  {
+    vImage = vCurrentObject.getIndentSymbol(vTree.getUseTreeLines(),
+                                            i,
+                                            vMinLevel,
+                                            vMaxLevel);
+
+    if (vImage)
+    {
+      vHtml.push("<img style=\"position:absolute;top:0px;left:");
+
+      // location of image; Root's image could be left of margin (invisible)
+      vHtml.push((vMaxLevel-i-1) * 19);
+
+      vHtml.push("px\" src=\"");
+      vHtml.push(this.BASE_URI);
+      vHtml.push(vImage);
+      vHtml.push(".");
+      vHtml.push("gif");
+      vHtml.push("\" />");
+    }
+
+    vCurrentObject = vCurrentObject.getParentFolder();
+  }
+
+  this._indentObject.setHtml(vHtml.join(""));
+  this._indentObject.setWidth((vMaxLevel - vMinLevel) * 19);
+}
+
+
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if (this._indentObject)
+  {
+    this._indentObject.dispose();
+    this._indentObject = null;
+  }
+
+  if (this._iconObject)
+  {
+    this._iconObject.dispose();
+    this._iconObject = null;
+  }
+
+  if (this._labelObject)
+  {
+    this._labelObject.dispose();
+    this._labelObject = null;
+  }
+
+  this._previousParentFolder = null;
+
+  this.removeEventListener("mousedown", this._onmousedown);
+  this.removeEventListener("mouseup", this._onmouseup);
+
+  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/Tree.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/Tree.js
new file mode 100644 (file)
index 0000000..912ede6
--- /dev/null
@@ -0,0 +1,539 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+     2006 by Derrell Lipman
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * Derrell Lipman (derrell)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_treefullcontrol)
+
+************************************************************************ */
+
+/**
+ * qx.ui.treefullcontrol.Tree objects are tree root nodes but act like
+ * TreeFolder.
+ *
+ * @param treeRowStructure An instance of qx.ui.treefullcontrol.TreeRowStructure,
+ *   defining the structure of this tree row.
+ */
+qx.OO.defineClass("qx.ui.treefullcontrol.Tree", qx.ui.treefullcontrol.TreeFolder,
+function(treeRowStructure)
+{
+  qx.ui.treefullcontrol.TreeFolder.call(this, treeRowStructure);
+
+  // ************************************************************************
+  //   INITILISIZE MANAGER
+  // ************************************************************************
+  this._manager = new qx.manager.selection.TreeFullControlSelectionManager(this);
+
+
+  this._iconObject.setAppearance("tree-icon");
+  this._labelObject.setAppearance("tree-label");
+
+
+  // ************************************************************************
+  //   DEFAULT STATE
+  // ************************************************************************
+  // The tree should be open by default
+  this.setOpen(true);
+
+  // Fix vertical alignment of empty tree
+  this.addToFolder();
+
+
+  // ************************************************************************
+  //   KEY EVENT LISTENER
+  // ************************************************************************
+  this.addEventListener("keydown", this._onkeydown);
+  this.addEventListener("keypress", this._onkeypress);
+  this.addEventListener("keyup", this._onkeyup);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+qx.OO.addProperty({ name : "useDoubleClick",
+                    type : "boolean",
+                    defaultValue : false,
+                    getAlias : "useDoubleClick"
+                  });
+
+qx.OO.addProperty({ name : "useTreeLines",
+                    type : "boolean",
+                    defaultValue : true,
+                    getAlias : "useTreeLines"
+                  });
+
+/*!
+  In specific applications, it is desirable to omit tree lines for only
+  certain indentation levels.  This property provides an array wherein the
+  index of the array corresponds to the indentation level, counted from left
+  to right; and the value of that element, if it contains, specifically, the
+  boolean value <i>true</i>, indicates that tree lines at that indentation
+  level are to be omitted.  Any value of that element other than <i>true</i>,
+  or if an indentation level's index does not exist in the array, means that
+  tree lines should be displayed for that indentation level.  (There are some
+  minor code efficiencies that are realized if this array is empty, so after
+  having set an element to <i>true</i> and desiring to reset the default
+  behavior, you should 'delete' the element rather than setting it to some
+  value other than <i>true</i>.)
+
+  If useTreeLines is <i>false</i>, then all tree lines are excluded and this
+  property is ignored.
+*/
+qx.OO.addProperty({ name : "excludeSpecificTreeLines",
+                    type : "object",
+                    defaultValue : []
+                  });
+
+/*!
+  Hide the root (Tree) node.  This differs from the visibility property in
+  that this property hides *only* the current node, not the node's children.
+*/
+qx.OO.addProperty({ name : "hideNode",
+                    type : "boolean",
+                    defaultValue : false,
+                    getAlias : "hideNode"
+                  });
+
+/*!
+  Whether the Root should have an open/close button.  This may also be
+  used in conjunction with the hideNode property to provide for virtual root
+  nodes.  In the latter case, be very sure that the virtual root nodes are
+  expanded programatically, since there will be no open/close button for the
+  user to open them.
+*/
+qx.OO.addProperty({ name : "rootOpenClose",
+                    type : "boolean",
+                    defaultValue : true
+                  });
+
+
+/*
+---------------------------------------------------------------------------
+  MANAGER BINDING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getManager = function() {
+  return this._manager;
+}
+
+qx.Proto.getSelectedElement = function() {
+  return this.getManager().getSelectedItems()[0];
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  QUEUE HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.addChildToTreeQueue = function(vChild)
+{
+  if (!vChild._isInTreeQueue && !vChild._isDisplayable) {
+    this.debug("Ignoring invisible child: " + vChild);
+  }
+
+  if (!vChild._isInTreeQueue && vChild._isDisplayable)
+  {
+    qx.ui.core.Widget.addToGlobalWidgetQueue(this);
+
+    if (!this._treeQueue) {
+      this._treeQueue = {};
+    }
+
+    this._treeQueue[vChild.toHashCode()] = vChild;
+
+    vChild._isInTreeQueue = true;
+  }
+}
+
+qx.Proto.removeChildFromTreeQueue = function(vChild)
+{
+  if (vChild._isInTreeQueue)
+  {
+    if (this._treeQueue) {
+      delete this._treeQueue[vChild.toHashCode()];
+    }
+
+    delete vChild._isInTreeQueue;
+  }
+}
+
+qx.Proto.flushWidgetQueue = function() {
+  this.flushTreeQueue();
+}
+
+qx.Proto.flushTreeQueue = function()
+{
+  if (!qx.lang.Object.isEmpty(this._treeQueue))
+  {
+    for (var vHashCode in this._treeQueue)
+    {
+      // this.debug("Flushing Tree Child: " + this._treeQueue[vHashCode]);
+      this._treeQueue[vHashCode].flushTree();
+      delete this._treeQueue[vHashCode]._isInTreeQueue;
+    }
+
+    delete this._treeQueue;
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyUseTreeLines = function(propValue, propOldValue, propData)
+{
+  if (this._initialLayoutDone) {
+    this._updateIndent();
+  }
+
+  return true;
+}
+
+qx.Proto._modifyHideNode = function(propValue, propOldValue, propData)
+{
+  if (! propValue) {
+    this._horizontalLayout.setHeight(this._horizontalLayout.originalHeight);
+    this._horizontalLayout.show();
+  } else {
+    this._horizontalLayout.originalHeight = this._horizontalLayout.getHeight();
+    this._horizontalLayout.setHeight(0);
+    this._horizontalLayout.hide();
+  }
+
+  if (this._initialLayoutDone) {
+    this._updateIndent();
+  }
+
+  return true;
+}
+
+qx.Proto._modifyRootOpenClose = function(propValue, propOldValue, propData)
+{
+  if (this._initialLayoutDone) {
+    this._updateIndent();
+  }
+
+  return true;
+}
+
+// Override getter so we can return a clone of the array.  Otherwise, the
+// setter finds the identical array (after user modifications) and the modify
+// function doesn't get called.
+qx.Proto.getExcludeSpecificTreeLines = function()
+{
+  var vName = "excludeSpecificTreeLines";
+  var vUpName = qx.lang.String.toFirstUp(vName);
+  var vStorageField = "_value" + vUpName;
+
+  return this[vStorageField].slice(0);
+}
+
+qx.Proto._modifyExcludeSpecificTreeLines = function(propValue,
+                                                    propOldValue,
+                                                    propData)
+{
+  if (this._initialLayoutDone) {
+    this._updateIndent();
+  }
+
+  return true;
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getTree = function() {
+  return this;
+}
+
+qx.Proto.getParentFolder = function() {
+  return null;
+}
+
+qx.Proto.getLevel = function() {
+  return 0;
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  COMMON CHECKERS
+---------------------------------------------------------------------------
+*/
+
+qx.ui.treefullcontrol.Tree.isTreeFolder = function(vObject) {
+  return (vObject &&
+          vObject instanceof qx.ui.treefullcontrol.TreeFolder &&
+          !(vObject instanceof qx.ui.treefullcontrol.Tree));
+}
+
+qx.ui.treefullcontrol.Tree.isOpenTreeFolder = function(vObject) {
+  return (vObject instanceof qx.ui.treefullcontrol.TreeFolder &&
+          vObject.getOpen() &&
+          vObject.hasContent());
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT HANDLER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onkeydown = function(e)
+{
+  var vManager = this.getManager();
+  var vSelectedItem = vManager.getSelectedItem();
+
+  if (e.getKeyIdentifier() == "Enter")
+  {
+      e.preventDefault();
+      if (qx.ui.treefullcontrol.Tree.isTreeFolder(vSelectedItem)) {
+        return vSelectedItem.toggle();
+      }
+  }
+}
+
+
+qx.Proto._onkeypress = function(e)
+{
+  var vManager = this.getManager();
+  var vSelectedItem = vManager.getSelectedItem();
+
+  switch(e.getKeyIdentifier())
+  {
+    case "Left":
+      e.preventDefault();
+
+      if (qx.ui.treefullcontrol.Tree.isTreeFolder(vSelectedItem))
+      {
+        if (!vSelectedItem.getOpen())
+        {
+          var vParent = vSelectedItem.getParentFolder();
+          if (vParent instanceof qx.ui.treefullcontrol.TreeFolder) {
+            if (!(vParent instanceof qx.ui.treefullcontrol.Tree)) {
+              vParent.close();
+            }
+
+            this.setSelectedElement(vParent);
+          }
+        }
+        else
+        {
+          return vSelectedItem.close();
+        }
+      }
+      else if (vSelectedItem instanceof qx.ui.treefullcontrol.TreeFile)
+      {
+        var vParent = vSelectedItem.getParentFolder();
+        if (vParent instanceof qx.ui.treefullcontrol.TreeFolder) {
+          if (!(vParent instanceof qx.ui.treefullcontrol.Tree)) {
+            vParent.close();
+          }
+
+          this.setSelectedElement(vParent);
+        }
+      }
+
+      break;
+
+    case "Right":
+      e.preventDefault();
+
+      if (qx.ui.treefullcontrol.Tree.isTreeFolder(vSelectedItem))
+      {
+        if (!vSelectedItem.getOpen())
+        {
+          return vSelectedItem.open();
+        }
+        else if (vSelectedItem.hasContent())
+        {
+          var vFirst = vSelectedItem.getFirstVisibleChildOfFolder();
+          this.setSelectedElement(vFirst);
+
+          if (vFirst instanceof qx.ui.tree.TreeFolder) {
+            vFirst.open();
+          }
+
+          return;
+        }
+      }
+
+      break;
+
+    default:
+      if (!this._fastUpdate)
+      {
+        this._fastUpdate = true;
+        this._oldItem = vSelectedItem;
+      }
+
+      vManager.handleKeyPress(e);
+  }
+};
+
+
+qx.Proto._onkeyup = function(e)
+{
+  if (this._fastUpdate)
+  {
+    var vNewItem = this.getManager().getSelectedItem();
+
+    if (! vNewItem) {
+      return;
+    }
+
+    vNewItem.getIconObject().addState("selected");
+
+    delete this._fastUpdate;
+    delete this._oldItem;
+  }
+}
+
+qx.Proto.getLastTreeChild = function()
+{
+  var vLast = this;
+
+  while (vLast instanceof qx.ui.treefullcontrol.AbstractTreeElement)
+  {
+    if (!(vLast instanceof qx.ui.treefullcontrol.TreeFolder) ||
+        !vLast.getOpen()) {
+      return vLast;
+    }
+
+    vLast = vLast.getLastVisibleChildOfFolder();
+  }
+
+  return null;
+}
+
+qx.Proto.getFirstTreeChild = function() {
+  return this;
+}
+
+qx.Proto.setSelectedElement = function(vElement)
+{
+  var vManager = this.getManager();
+
+  vManager.setSelectedItem(vElement);
+  vManager.setLeadItem(vElement);
+}
+
+/* Override getHierarchy: do not add label if root node is hidden */
+qx.Proto.getHierarchy = function(vArr)
+{
+  if (! this.hideNode() && this._labelObject) {
+    vArr.unshift(this._labelObject.getHtml());
+  }
+  return vArr;
+}
+
+
+qx.Proto.getIndentSymbol = function(vUseTreeLines, vColumn, vLastColumn)
+{
+  if (vColumn == vLastColumn &&
+      (this.hasContent() || this.getAlwaysShowPlusMinusSymbol()))
+  {
+    if (! vUseTreeLines)
+    {
+      return this.getOpen() ? "minus" : "plus";
+    }
+    else
+    {
+      return this.getOpen() ? "only_minus" : "only_plus";
+    }
+  }
+  else
+  {
+    return null;
+  }
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this.removeEventListener("keydown", this._onkeydown);
+  this.removeEventListener("keypress", this._onkeypress);
+  this.removeEventListener("keyup", this._onkeyup);
+
+  if (this._manager)
+  {
+    this._manager.dispose();
+    this._manager = null;
+  }
+
+  delete this._oldItem;
+
+  return qx.ui.treefullcontrol.TreeFolder.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeFile.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeFile.js
new file mode 100644 (file)
index 0000000..bf38a87
--- /dev/null
@@ -0,0 +1,81 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+     2006 by Derrell Lipman
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * Derrell Lipman (derrell)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_treefullcontrol)
+
+************************************************************************ */
+
+/**
+ * qx.ui.treefullcontrol.TreeFile objects are terminal tree rows (i.e. no
+ * sub-trees)
+ *
+ * @param
+ * treeRowStructure -
+ *   An instance of qx.ui.treefullcontrol.TreeRowStructure, defining the
+ *   structure  of this tree row.
+ */
+qx.OO.defineClass("qx.ui.treefullcontrol.TreeFile", qx.ui.treefullcontrol.AbstractTreeElement,
+function(treeRowStructure)
+{
+  qx.ui.treefullcontrol.AbstractTreeElement.call(this, treeRowStructure);
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INDENT HELPER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getIndentSymbol = function(vUseTreeLines,
+                                    vColumn,
+                                    vFirstColumn,
+                                    vLastColumn)
+{
+  var vLevel = this.getLevel();
+  var vExcludeList = this.getTree().getExcludeSpecificTreeLines();
+  var vExclude = vExcludeList[vLastColumn - vColumn - 1];
+
+  if (vUseTreeLines && ! (vExclude === true))
+  {
+    if (vColumn == vFirstColumn)
+    {
+      return this.isLastChild() ? "end" : "cross";
+    }
+    else
+    {
+      return "line";
+    }
+  }
+
+  return null;
+}
+
+qx.Proto._updateIndent = function() {
+  this.addToTreeQueue();
+}
+
+qx.Proto.getItems = function() {
+  return [this];
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeFolder.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeFolder.js
new file mode 100644 (file)
index 0000000..93a50c2
--- /dev/null
@@ -0,0 +1,651 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+     2006 by Derrell Lipman
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+     * Derrell Lipman (derrell)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_treefullcontrol)
+
+************************************************************************ */
+
+/**
+ * qx.ui.treefullcontrol.TreeFolder objects are tree rows which may contain
+ * sub-trees
+ *
+ * @param
+ * treeRowStructure -
+ *   An instance of qx.ui.treefullcontrol.TreeRowStructure, defining the
+ *   structure of this tree row.
+ *
+ * @event treeOpenWithContent {qx.event.type.DataEvent}
+ * @event treeOpenWhileEmpty {qx.event.type.DataEvent}
+ * @event treeClose {qx.event.type.DataEvent}
+ */
+qx.OO.defineClass("qx.ui.treefullcontrol.TreeFolder", qx.ui.treefullcontrol.AbstractTreeElement,
+function(treeRowStructure)
+{
+  qx.ui.treefullcontrol.AbstractTreeElement.call(this, treeRowStructure);
+
+  // Save the tree row field order. We'll need it to create children structure.
+  this._treeRowStructureFields = treeRowStructure._fields;
+
+  this._iconObject.setAppearance("tree-folder-icon");
+  this._labelObject.setAppearance("tree-folder-label");
+
+  this.addEventListener("dblclick", this._ondblclick);
+
+  // Remapping of add/remove methods
+  this.add = this.addToFolder;
+  this.addBefore = this.addBeforeToFolder;
+  this.addAfter = this.addAfterToFolder;
+  this.addAt = this.addAtToFolder;
+  this.addAtBegin = this.addAtBeginToFolder;
+  this.addAtEnd = this.addAtEndToFolder;
+});
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+
+qx.OO.changeProperty({ name : "appearance",
+                       type : "string",
+                       defaultValue : "tree-folder"
+                     });
+
+qx.OO.changeProperty({ name : "icon",
+                       type : "string"
+                     });
+
+qx.OO.changeProperty({ name : "iconSelected",
+                       type : "string"
+                     });
+
+qx.OO.addProperty({ name : "open",
+                    type : "boolean",
+                    defaultValue : false
+                  });
+
+qx.OO.addProperty({ name : "alwaysShowPlusMinusSymbol",
+                    type : "boolean",
+                    defaultValue : false
+                  });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.hasContent = function() {
+  return (this._containerObject &&
+          this._containerObject.getChildrenLength() > 0);
+}
+
+qx.Proto.open = function()
+{
+  if (this.getOpen()) {
+    return;
+  }
+
+  if (this.hasContent())
+  {
+    // If there are listeners waiting for a treeOpenWithContent event...
+    if (this.getTree().hasEventListeners("treeOpenWithContent")) {
+      // ... then issue the event
+      this.getTree().dispatchEvent(new qx.event.type.DataEvent("treeOpenWithContent", this), true);
+    }
+
+    this.getTopLevelWidget().setGlobalCursor("progress");
+    qx.client.Timer.once(this._openCallback, this, 0);
+  }
+  else
+  {
+    // If there are listeners waiting for a treeOpenWithContent event...
+    if (this.getTree().hasEventListeners("treeOpenWhileEmpty")) {
+      // ... then issue the event
+      this.getTree().dispatchEvent(new qx.event.type.DataEvent("treeOpenWhileEmpty", this), true);
+    }
+
+    this.setOpen(true);
+  }
+}
+
+qx.Proto.close = function()
+{
+  // If there are listeners waiting for a treeClose event...
+  if (this.getTree().hasEventListeners("treeClose")) {
+    // ... then issue the event
+    this.getTree().dispatchEvent(new qx.event.type.DataEvent("treeClose", this), true);
+  }
+
+  this.setOpen(false);
+}
+
+qx.Proto.toggle = function()
+{
+  this.getOpen() ? this.close() : this.open();
+}
+
+qx.Proto._openCallback = function()
+{
+  this.setOpen(true);
+  qx.ui.core.Widget.flushGlobalQueues();
+  this.getTopLevelWidget().setGlobalCursor(null);
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHILDREN HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._createChildrenStructure = function()
+{
+  this.setAppearance(this instanceof qx.ui.treefullcontrol.Tree
+                     ? "tree-container"
+                     : "tree-folder-container");
+
+  if (!this._horizontalLayout)
+  {
+    this.setOrientation("vertical");
+
+    // Create a horizontal layout for this tree row
+    this._horizontalLayout = new qx.ui.layout.HorizontalBoxLayout;
+    this._horizontalLayout.setWidth(null);
+    this._horizontalLayout.setParent(this);
+    this._horizontalLayout.setAnonymous(true);
+    this._horizontalLayout.setAppearance(this instanceof qx.ui.treefullcontrol.Tree
+                                         ? "tree"
+                                         : "tree-folder");
+
+    // Move the row fields into the horizontal layout
+    for (var i = 0; i < this._treeRowStructureFields.length; i++)
+    {
+      this._treeRowStructureFields[i].setParent(this._horizontalLayout);
+    }
+
+    // We don't need the tree row structure any more.
+    this._treeRowStructureFields = null;
+  }
+
+  if (!this._containerObject)
+  {
+    // Create a veritcal box layout for all of this folder's children
+    this._containerObject = new qx.ui.layout.VerticalBoxLayout;
+    this._containerObject.setWidth(null);
+    this._containerObject.setAnonymous(true);
+
+    // it should be faster to first handle display,
+    // because the default display value is true and if we first
+    // setup the parent the logic do all to make the
+    // widget first visible and then, if the folder is not
+    // opened again invisible.
+    this._containerObject.setDisplay(this.getOpen());
+    this._containerObject.setParent(this);
+
+    // remap remove* functions
+    this.remapChildrenHandlingTo(this._containerObject);
+  }
+}
+
+qx.Proto._handleChildMove = function(vChild, vRelationIndex, vRelationChild)
+{
+  if (vChild.isDisplayable())
+  {
+    var vChildren = this._containerObject.getChildren();
+    var vOldChildIndex = vChildren.indexOf(vChild);
+
+    if (vOldChildIndex != -1)
+    {
+      if (vRelationChild) {
+        vRelationIndex = vChildren.indexOf(vRelationChild);
+      }
+
+      if (vRelationIndex == vChildren.length-1)
+      {
+        vChild._updateIndent();
+
+        // Update indent of previous last child
+        this._containerObject.getLastVisibleChild()._updateIndent();
+      }
+      else if (vChild._wasLastVisibleChild)
+      {
+        vChild._updateIndent();
+
+        // Update indent for new last child
+        var vPreviousSibling = vChild.getPreviousVisibleSibling();
+        if (vPreviousSibling) {
+          vPreviousSibling._updateIndent();
+        }
+      }
+    }
+  }
+}
+
+qx.Proto.addToFolder = function()
+{
+  this._createChildrenStructure();
+
+  if (this._containerObject) {
+    return this._containerObject.add.apply(this._containerObject, arguments);
+  }
+}
+
+qx.Proto.addBeforeToFolder = function(vChild, vBefore)
+{
+  this._createChildrenStructure();
+
+  if (this._containerObject)
+  {
+    this._handleChildMove(vChild, null, vBefore);
+    return this._containerObject.addBefore.apply(this._containerObject,
+                                                 arguments);
+  }
+}
+
+qx.Proto.addAfterToFolder = function(vChild, vAfter)
+{
+  this._createChildrenStructure();
+
+  if (this._containerObject)
+  {
+    this._handleChildMove(vChild, null, vAfter);
+    return this._containerObject.addAfter.apply(this._containerObject,
+                                                arguments);
+  }
+}
+
+qx.Proto.addAtToFolder = function(vChild, vIndex)
+{
+  this._createChildrenStructure();
+
+  if (this._containerObject)
+  {
+    this._handleChildMove(vChild, vIndex);
+    return this._containerObject.addAt.apply(this._containerObject, arguments);
+  }
+}
+
+qx.Proto.addAtBeginToFolder = function(vChild) {
+  return this.addAtToFolder(vChild, 0);
+}
+
+qx.Proto.addAtEndToFolder = function(vChild)
+{
+  this._createChildrenStructure();
+
+  if (this._containerObject)
+  {
+    var vLast = this._containerObject.getLastChild();
+
+    if (vLast)
+    {
+      this._handleChildMove(vChild, null, vLast);
+      return this._containerObject.addAfter.call(this._containerObject,
+                                                 vChild,
+                                                 vLast);
+    }
+    else
+    {
+      return this.addAtBeginToFolder(vChild);
+    }
+  }
+}
+
+qx.Proto._remappingChildTable = [ "remove", "removeAt", "removeAll" ];
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  CHILDREN UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getContainerObject = function()
+{
+  return this._containerObject;
+}
+
+qx.Proto.getHorizontalLayout = function()
+{
+  return this._horizontalLayout;
+}
+
+qx.Proto.getFirstVisibleChildOfFolder = function()
+{
+  if (this._containerObject) {
+    return this._containerObject.getFirstChild();
+  }
+}
+
+qx.Proto.getLastVisibleChildOfFolder = function()
+{
+  if (this._containerObject) {
+    return this._containerObject.getLastChild();
+  }
+}
+
+qx.Proto.getItems = function()
+{
+  var a = [this];
+
+  if (this._containerObject)
+  {
+    var ch = this._containerObject.getVisibleChildren();
+
+    for (var i=0, chl=ch.length; i<chl; i++) {
+      a = a.concat(ch[i].getItems());
+    }
+  }
+
+  return a;
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._evalCurrentIcon = function()
+{
+  if (this.getSelected()) {
+    return this.getIconSelected() || "icon/16/folder-open.png";
+  } else {
+    return this.getIcon() || "icon/16/folder.png";
+  }
+}
+
+qx.Proto._modifyOpen = function(propValue, propOldValue, propData)
+{
+  // we need the whole indent process if certain tree lines are to be excluded
+  if (this.getTree().getExcludeSpecificTreeLines().length > 0) {
+    this._updateIndent();
+  } else {
+    this._updateLastColumn();
+  }
+
+  if (this._containerObject) {
+    this._containerObject.setDisplay(propValue);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyAlwaysShowPlusMinusSymbol = function(propValue, propOldValue, propData)
+{
+  var t = this.getTree();
+  if (t) {
+    // we need the whole indent process if only certain tree lines are to be
+    // excluded
+    if (t.getExcludeSpecificTreeLines().length > 0) {
+      this._updateIndent();
+    } else {
+      this._updateLastColumn();
+    }
+  }
+
+  return true;
+}
+
+qx.Proto._updateLastColumn = function()
+{
+  if (this._indentObject)
+  {
+    var vElement = this._indentObject.getElement();
+
+    if (vElement && vElement.firstChild) {
+      vElement.firstChild.src =
+        (this.BASE_URI +
+         this.getIndentSymbol(this.getTree().getUseTreeLines(), 0, 0, 0) +
+         ".gif");
+    }
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT LISTENERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onmousedown = function(e)
+{
+  var vOriginalTarget = e.getOriginalTarget();
+
+  switch(vOriginalTarget)
+  {
+    case this._indentObject:
+      if (this._indentObject.getElement().firstChild == e.getDomTarget())
+      {
+        this.getTree().getManager().handleMouseDown(this, e);
+        this.toggle();
+      }
+
+      break;
+
+    case this._containerObject:
+      break;
+
+    case this:
+      if (this._containerObject) {
+        break;
+      }
+
+      // no break here
+
+    default:
+      this.getTree().getManager().handleMouseDown(this, e);
+  }
+
+  e.stopPropagation();
+}
+
+qx.Proto._onmouseup = function(e)
+{
+  var vOriginalTarget = e.getOriginalTarget();
+
+  switch(vOriginalTarget)
+  {
+    case this._indentObject:
+    case this._containerObject:
+    case this:
+      break;
+
+    default:
+      if (!this.getTree().getUseDoubleClick()) {
+        this.open();
+      }
+  }
+}
+
+qx.Proto._ondblclick = function(e)
+{
+  if (!this.getTree().getUseDoubleClick()) {
+    return;
+  }
+
+  this.toggle();
+  e.stopPropagation();
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  INDENT HELPER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getIndentSymbol = function(vUseTreeLines,
+                                    vColumn,
+                                    vFirstColumn,
+                                    vLastColumn)
+{
+  var vLevel = this.getLevel();
+  var vExcludeList = this.getTree().getExcludeSpecificTreeLines();
+  var vExclude = vExcludeList[vLastColumn - vColumn - 1];
+
+  if (vColumn == vFirstColumn)
+  {
+    if (this.hasContent() || this.getAlwaysShowPlusMinusSymbol())
+    {
+      // If tree lines were not requested, don't display them
+      if (!vUseTreeLines)
+      {
+        return this.getOpen() ? "minus" : "plus";
+      }
+
+
+      // If this is the first level under the root...
+      if (vLevel == 1) {
+        // ... and the root is not being displayed and this is the first
+        // child...
+        var vParentFolder = this.getParentFolder();
+        if (vParentFolder &&
+            !vParentFolder._horizontalLayout.getVisibility() &&
+            this.isFirstChild())
+        {
+          //... then if this is also the last (i.e. only) child, use no tree
+          // lines; otherwise, use descender lines but no ascender.
+          if (this.isLastChild() || vExclude === true)
+          {
+            return this.getOpen() ? "only_minus" : "only_plus";
+          }
+          else
+          {
+            return this.getOpen() ? "start_minus" : "start_plus";
+          }
+        }
+      }
+
+      if (vExclude === true)
+      {
+        return this.getOpen() ? "only_minus" : "only_plus";
+      }
+      else if (this.isLastChild())
+      {
+        return this.getOpen() ? "end_minus" : "end_plus";
+      }
+      else
+      {
+        return this.getOpen() ? "cross_minus" : "cross_plus";
+      }
+    }
+    else if (vUseTreeLines && ! (vExclude === true))
+    {
+      return this.isLastChild() ? "end" : "cross";
+    }
+  }
+  else
+  {
+    if (vUseTreeLines && ! this.isLastChild()) {
+      if (vExclude === true) {
+        return null;
+      }
+      return "line";
+    }
+    return null;
+  }
+}
+
+qx.Proto._updateIndent = function()
+{
+  // Intentionally bypass superclass; the _updateIndent we want is in TreeFile
+  qx.ui.treefullcontrol.TreeFile.prototype._updateIndent.call(this);
+
+  if (!this._containerObject) {
+    return;
+  }
+
+  var ch = this._containerObject.getVisibleChildren();
+  for (var i=0, l=ch.length; i<l; i++) {
+    ch[i]._updateIndent();
+  }
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return;
+  }
+
+  this.removeEventListener("dblclick", this._ondblclick);
+
+  if (this._horizontalLayout)
+  {
+    this._horizontalLayout.dispose();
+    this._horizontalLayout = null;
+  }
+
+  if (this._containerObject)
+  {
+    this._containerObject.dispose();
+    this._containerObject = null;
+  }
+
+  return qx.ui.treefullcontrol.AbstractTreeElement.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeRowStructure.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeRowStructure.js
new file mode 100644 (file)
index 0000000..4fc32ef
--- /dev/null
@@ -0,0 +1,260 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by Derrell Lipman
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Derrell Lipman (derrell)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_treefullcontrol)
+
+************************************************************************ */
+
+/**
+ * The structure of a tree row.
+ *
+ * This is a singleton class.  The constructor is not accessed by users;
+ * instead, to obtain the one and only TreeRowStructure object, call either
+ *
+ *   qx.ui.treefullcontrol.TreeRowStructure.newRow()
+ *
+ * or
+ *
+ *   qx.ui.treefullcontrol.TreeRowStructure.standard().
+ *
+ * The structure of a tree row is provided by a
+ * qx.ui.treefullcontrol.TreeRowStructure.  The order of elements added to
+ * this object is the order in which they will be presented in a tree row.
+ *
+ * The three standard parts of a tree: the indentation (and its associated
+ * tree-lines, if enabled), the icon (selected or unselected), and the label
+ * are added to the structure in the desired order by calling, respectively,
+ * the methods addIndent(), addIcon() and addLabel().
+ *
+ * By default, indentation will appear at the beginning of the tree row.  This
+ * can be changed by calling the addIndent() method after having calling other
+ * add*() methods on this object.  If indentation is to be at the beginning of
+ * the tree row, simply do not call addIndent().
+ *
+ * Any other object which is valid within a qx.ui.layout.HorizontalBoxLayout
+ * may be added to the structure using addObject().  If the object has no
+ * special treatment, it may be made anonymous with obj.SetAnonymous(true).
+ * Otherwise, all handling for the object should be done by the application.
+ *
+ * A "standard" (traditional) tree row would be generated like this:
+ *
+ *   treeRowStructure = qx.ui.treefullcontrol.TreeRowStructure.standard("Trash");
+ *
+ * which equates to issuing these commands:
+ *
+ *   treeRowStructure = qx.ui.treefullcontrol.TreeRowStructure.newRow();
+ *
+ * //treeRowStructure.addIndent()  // defaults to here; no need to call
+ *   treeRowStructure.addIcon();
+ *   treeRowStructure.addLabel("Trash");
+ *
+ * The former method is typically preferred.
+ *
+ * An example of a more sophisticated structure:
+ *
+ *   treeRowStructure = qx.ui.treefullcontrol.TreeRowStructure.newRow();
+ *
+ *   // A left-justified icon
+ *   obj = new qx.ui.basic.Image("icon/16/alarm.png");
+ *   treeRowStructure.addObject(obj, true);
+ *
+ *   // Here's our indentation and tree-lines
+ *   treeRowStructure.addIndent();
+ *
+ *   // The standard tree icon follows
+ *   treeRowStructure.addIcon("icon/16/desktop.png","icon/16/dictionary.png");
+ *
+ *   // Right after the tree icon is a checkbox
+ *   obj = new qx.ui.form.CheckBox(null, 23, null, false);
+ *   obj.setPadding(0, 0);
+ *   treeRowStructure.addObject(obj, true);
+ *
+ *   // The label
+ *   treeRowStructure.addLabel("Trash");
+ *
+ *   // All else should be right justified
+ *   obj = new qx.ui.basic.HorizontalSpacer;
+ *   treeRowStructure.addObject(obj, true);
+ *
+ *   // Add a file size, date and mode
+ *   obj = new qx.ui.basic.Label("23kb");
+ *   obj.setWidth(50);
+ *   treeRowStructure.addObject(obj, true);
+ *   obj = new qx.ui.basic.Label("11 Sept 1959");
+ *   obj.setWidth(150);
+ *   treeRowStructure.addObject(obj, true);
+ *   obj = new qx.ui.basic.Label("-rw-r--r--");
+ *   obj.setWidth(80);
+ *   treeRowStructure.addObject(obj, true);
+ */
+
+qx.OO.defineClass("qx.ui.treefullcontrol.TreeRowStructure", qx.core.Object,
+function()
+{
+  qx.core.Object.call(this);
+});
+
+
+/**
+ * Prepare to define a new row.
+ *
+ * This reinitializes the singleton TreeRowStructure so that it is ready to
+ * define a new tree row.
+ *
+ * @return The singleton itself, purely for convenience.
+ */
+qx.Proto.newRow = function()
+{
+  /* Create the indent, icon, and label objects */
+  this._indentObject = new qx.ui.embed.HtmlEmbed;
+  this._iconObject = new qx.ui.basic.Image;
+  this._labelObject = new qx.ui.basic.Label;
+
+  /* Create an object to hold the ordering of row objects */
+  this._fields = new Array;
+
+  /* Create an object to hold the icon names */
+  this._icons = new Object;
+
+  /* Initially assume that indentation goes at the beginning of the row */
+  this._fields.push(this._indentObject);
+
+  /* Set initial flags */
+  this._indentAdded = false;
+  this._iconAdded = false;
+  this._labelAdded = false;
+
+  /* Return the singleton (from which we were called) */
+  return this;
+}
+
+/**
+ * Define a new row with the 'standard' structure.
+ *
+ * This reinitializes the singleton TreeRowStructure to the state of a
+ * standard'or traditional tree row:
+ *   - indentation
+ *   - icon
+ *   - label
+ *
+ * The icon parameters may be omitted in which case the defaults will be
+ * used.  If the label parameter is omitted, no label will appear.
+ *
+ * @param vLabel        {string} The label text
+ * @param vIcon         {string} Relative path to the 'non-selected' icon
+ * @param vIconSelected {string} Relative path to the 'selected' icon
+ *
+ * @return The singleton itself, purely for convenience.
+ */
+qx.Proto.standard = function(vLabel, vIcon, vIconSelected)
+{
+  this.newRow();
+  this.addIcon(vIcon, vIconSelected);
+  this.addLabel(vLabel);
+
+  return this;
+}
+
+qx.Proto.addIndent = function()
+{
+  /* If the assumed indent object is in use... */
+  if (! this._indentAdded)
+  {
+    /* ... then remove it. */
+    this._fields.shift();
+    this._indentAdded = true;
+  }
+  else
+  {
+    throw new Error("Indent object added more than once.");
+  }
+
+  /* Add the indentation to the structure */
+  this._fields.push(this._indentObject);
+}
+
+qx.Proto.addIcon = function(vIcon, vIconSelected)
+{
+  /* Ensure only one standard icon is added */
+  if (! this._iconAdded)
+  {
+    this._iconAdded = true;
+  }
+  else
+  {
+    throw new Error("Icon object added more than once.");
+  }
+
+  /* Track the two icon names */
+  this._icons.unselected = vIcon;
+  this._icons.selected = vIconSelected;
+
+  /* Add the icon to the structure */
+  this._fields.push(this._iconObject);
+}
+
+qx.Proto.addLabel = function(vLabel)
+{
+  /* Ensure only one standard label is added */
+  if (! this._labelAdded)
+  {
+    this._labelAdded = true;
+  }
+  else
+  {
+    throw new Error("Label added more than once.");
+  }
+
+  /* Track the label text */
+  this._label = vLabel;
+
+  /* Add the label to the structure */
+  this._fields.push(this._labelObject);
+}
+
+/*
+ * Add an object to the tree row structure.  For convenience, vAnonymous can
+ * be provided, and if a boolean value is provided, vObj.setAnonymous() is
+ * called with the provided value.  If the object has already been
+ * setAnonymous or if there is no need to do so, then provide no value for
+ * vAnonymous or pass 'null'.
+ */
+qx.Proto.addObject = function(vObj, vAnonymous)
+{
+  /* Is requested, set this object's anonymous state */
+  if (typeof vAnonymous == "boolean")
+  {
+    vObj.setAnonymous(vAnonymous);
+  }
+
+  /* Add this user-specified object to the structure */
+  this._fields.push(vObj);
+}
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/window/Window.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/window/Window.js
new file mode 100644 (file)
index 0000000..3f55963
--- /dev/null
@@ -0,0 +1,1441 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(ui_window)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.ui.window.Window", qx.ui.popup.Popup,
+function(vCaption, vIcon, vWindowManager)
+{
+  qx.ui.popup.Popup.call(this);
+
+  // ************************************************************************
+  //   FUNCTIONAL STYLE
+  // ************************************************************************
+
+  this.setMinWidth("auto");
+  this.setMinHeight("auto");
+  this.setAutoHide(false);
+
+
+
+  // ************************************************************************
+  //   MANAGER
+  // ************************************************************************
+
+  // Init Focus Manager
+  this.activateFocusRoot();
+
+  // Init Window Manager
+  this.setWindowManager(vWindowManager || qx.ui.window.Window.getDefaultWindowManager());
+
+
+
+  // ************************************************************************
+  //   RESIZE AND MOVE FRAME
+  // ************************************************************************
+
+  var f = this._frame = new qx.ui.basic.Terminator;
+  f.setAppearance("window-resize-frame");
+
+
+  // ************************************************************************
+  //   LAYOUT
+  // ************************************************************************
+
+  var l = this._layout = new qx.ui.layout.VerticalBoxLayout;
+  l.setEdge(0);
+  this.add(l);
+
+
+  // ************************************************************************
+  //   CAPTIONBAR
+  // ************************************************************************
+
+  var cb = this._captionBar = new qx.ui.layout.HorizontalBoxLayout;
+  cb.setAppearance("window-captionbar");
+  l.add(cb);
+
+
+  // ************************************************************************
+  //   CAPTIONICON
+  // ************************************************************************
+
+  if (qx.util.Validation.isValidString(vIcon))
+  {
+    var ci = this._captionIcon = new qx.ui.basic.Image(vIcon);
+    ci.setAppearance("window-captionbar-icon");
+    cb.add(ci);
+  }
+
+
+  // ************************************************************************
+  //   CAPTIONTITLE
+  // ************************************************************************
+
+  var ct = this._captionTitle = new qx.ui.basic.Label(vCaption);
+  ct.setAppearance("window-captionbar-title");
+  ct.setSelectable(false);
+  cb.add(ct);
+
+
+  // ************************************************************************
+  //   CAPTIONFLEX
+  // ************************************************************************
+
+  var cf = this._captionFlex = new qx.ui.basic.HorizontalSpacer;
+  cb.add(cf);
+
+
+  // ************************************************************************
+  //   CAPTIONBUTTONS: MINIMIZE
+  // ************************************************************************
+
+  var bm = this._minimizeButton = new qx.ui.form.Button(null, "widget/window/minimize.gif");
+
+  bm.setAppearance("window-captionbar-minimize-button");
+  bm.setTabIndex(-1);
+
+  bm.addEventListener("execute", this._onminimizebuttonclick, this);
+  bm.addEventListener("mousedown", this._onbuttonmousedown, this);
+
+  cb.add(bm);
+
+
+  // ************************************************************************
+  //   CAPTIONBUTTONS: RESTORE
+  // ************************************************************************
+
+  var br = this._restoreButton = new qx.ui.form.Button(null, "widget/window/restore.gif");
+
+  br.setAppearance("window-captionbar-restore-button");
+  br.setTabIndex(-1);
+
+  br.addEventListener("execute", this._onrestorebuttonclick, this);
+  br.addEventListener("mousedown", this._onbuttonmousedown, this);
+
+  // don't add initially
+  // cb.add(br);
+
+
+  // ************************************************************************
+  //   CAPTIONBUTTONS: MAXIMIZE
+  // ************************************************************************
+
+  var bx = this._maximizeButton = new qx.ui.form.Button(null, "widget/window/maximize.gif");
+
+  bx.setAppearance("window-captionbar-maximize-button");
+  bx.setTabIndex(-1);
+
+  bx.addEventListener("execute", this._onmaximizebuttonclick, this);
+  bx.addEventListener("mousedown", this._onbuttonmousedown, this);
+
+  cb.add(bx);
+
+
+  // ************************************************************************
+  //   CAPTIONBUTTONS: CLOSE
+  // ************************************************************************
+
+  var bc = this._closeButton = new qx.ui.form.Button(null, "widget/window/close.gif");
+
+  bc.setAppearance("window-captionbar-close-button");
+  bc.setTabIndex(-1);
+
+  bc.addEventListener("execute", this._onclosebuttonclick, this);
+  bc.addEventListener("mousedown", this._onbuttonmousedown, this);
+
+  cb.add(bc);
+
+
+  // ************************************************************************
+  //   PANE
+  // ************************************************************************
+
+  var p = this._pane = new qx.ui.layout.CanvasLayout;
+  p.setHeight("1*");
+  p.setOverflow("hidden");
+  l.add(p);
+
+
+  // ************************************************************************
+  //   STATUSBAR
+  // ************************************************************************
+
+  var sb = this._statusBar = new qx.ui.layout.HorizontalBoxLayout;
+  sb.setAppearance("window-statusbar");
+
+
+  // ************************************************************************
+  //   STATUSTEXT
+  // ************************************************************************
+
+  var st = this._statusText = new qx.ui.basic.Label("Ready");
+  st.setAppearance("window-statusbar-text");
+  st.setSelectable(false);
+  sb.add(st);
+
+
+  // ************************************************************************
+  //   INIT
+  // ************************************************************************
+
+  this.setCaption(vCaption);
+  this.setIcon(vIcon);
+
+
+  // ************************************************************************
+  //   EVENTS: WINDOW
+  // ************************************************************************
+
+  this.addEventListener("mousedown", this._onwindowmousedown, this);
+  this.addEventListener("mouseup", this._onwindowmouseup, this);
+  this.addEventListener("mousemove", this._onwindowmousemove, this);
+  this.addEventListener("click", this._onwindowclick, this);
+
+
+  // ************************************************************************
+  //   EVENTS: CAPTIONBAR
+  // ************************************************************************
+
+  cb.addEventListener("mousedown", this._oncaptionmousedown, this);
+  cb.addEventListener("mouseup", this._oncaptionmouseup, this);
+  cb.addEventListener("mousemove", this._oncaptionmousemove, this);
+  cb.addEventListener("dblclick", this._oncaptiondblblick, this);
+
+
+  // ************************************************************************
+  //   REMAPPING
+  // ************************************************************************
+  this.remapChildrenHandlingTo(this._pane);
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/*!
+  Appearance of the widget
+*/
+qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "window" });
+
+/*!
+  The windowManager to use for.
+*/
+qx.OO.addProperty({ name : "windowManager", type : "object" });
+
+/*!
+  If the window is active, only one window in a single qx.manager.object.WindowManager could
+  have set this to true at the same time.
+*/
+qx.OO.addProperty({ name : "active", type : "boolean", defaultValue : false });
+
+/*!
+  Should be window be modal (this disable minimize and maximize buttons)
+*/
+qx.OO.addProperty({ name : "modal", type : "boolean", defaultValue : false });
+
+/*!
+  Should be window be modal (this disable minimize and maximize buttons)
+*/
+qx.OO.addProperty({ name : "mode", type : "string", defaultValue : null, possibleValues : [ "minimized", "maximized" ], allowNull : true });
+
+/*!
+  The opener (button) of the window
+*/
+qx.OO.addProperty({ name : "opener", type : "object" });
+
+/*!
+  The text of the caption
+*/
+qx.OO.addProperty({ name : "caption", type : "string" });
+
+/*!
+  The icon of the caption
+*/
+qx.OO.addProperty({ name : "icon", type : "string" });
+
+/*!
+  The text of the statusbar
+*/
+qx.OO.addProperty({ name : "status", type : "string", defaultValue : "Ready" });
+
+/*!
+  Should the close button be shown
+*/
+qx.OO.addProperty({ name : "showClose", type : "boolean", defaultValue : true });
+
+/*!
+  Should the maximize button be shown
+*/
+qx.OO.addProperty({ name : "showMaximize", type : "boolean", defaultValue : true });
+
+/*!
+  Should the minimize button be shown
+*/
+qx.OO.addProperty({ name : "showMinimize", type : "boolean", defaultValue : true });
+
+/*!
+  Should the statusbar be shown
+*/
+qx.OO.addProperty({ name : "showStatusbar", type : "boolean", defaultValue : false });
+
+/*!
+  Should the user have the ability to close the window
+*/
+qx.OO.addProperty({ name : "allowClose", type : "boolean", defaultValue : true });
+
+/*!
+  Should the user have the ability to maximize the window
+*/
+qx.OO.addProperty({ name : "allowMaximize", type : "boolean", defaultValue : true });
+
+/*!
+  Should the user have the ability to minimize the window
+*/
+qx.OO.addProperty({ name : "allowMinimize", type : "boolean", defaultValue : true });
+
+/*!
+  If the text (in the captionbar) should be visible
+*/
+qx.OO.addProperty({ name : "showCaption", type : "boolean", defaultValue : true });
+
+/*!
+  If the icon (in the captionbar) should be visible
+*/
+qx.OO.addProperty({ name : "showIcon", type : "boolean", defaultValue : true });
+
+/*!
+  If the window is resizeable
+*/
+qx.OO.addProperty({ name : "resizeable", type : "boolean", defaultValue : true });
+
+/*!
+  If the window is moveable
+*/
+qx.OO.addProperty({ name : "moveable", type : "boolean", defaultValue : true });
+
+/*!
+  The resize method to use
+*/
+qx.OO.addProperty({ name : "resizeMethod", type : "string", defaultValue : "frame", possibleValues : [ "opaque", "lazyopaque", "frame", "translucent" ] });
+
+/*!
+  The move method to use
+*/
+qx.OO.addProperty({ name : "moveMethod", type : "string", defaultValue : "opaque", possibleValues : [ "opaque", "frame", "translucent" ] });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MANAGER HANDLING
+---------------------------------------------------------------------------
+*/
+
+qx.ui.window.Window.getDefaultWindowManager = function()
+{
+  if (!qx.ui.window.Window._defaultWindowManager) {
+    qx.ui.window.Window._defaultWindowManager = new qx.manager.object.WindowManager;
+  }
+
+  return qx.ui.window.Window._defaultWindowManager;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.getPane = function() {
+  return this._pane;
+}
+
+qx.Proto.getCaptionBar = function() {
+  return this._captionBar;
+}
+
+qx.Proto.getStatusBar = function() {
+  return this._statusBar;
+}
+
+qx.Proto.close = function() {
+  this.hide();
+}
+
+qx.Proto.open = function(vOpener)
+{
+  if (qx.util.Validation.isValid(vOpener)) {
+    this.setOpener(vOpener);
+  }
+
+  if (this.getCentered()) {
+    this.centerToBrowser();
+  }
+
+  this.show();
+}
+
+qx.Proto.focus = function() {
+  this.setActive(true);
+}
+
+qx.Proto.blur = function() {
+  this.setActive(false);
+}
+
+qx.Proto.maximize = function() {
+  this.setMode("maximized");
+}
+
+qx.Proto.minimize = function() {
+  this.setMode("minimized");
+}
+
+qx.Proto.restore = function() {
+  this.setMode(null);
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  APPEAR/DISAPPEAR
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._beforeAppear = function()
+{
+  // Intentionally bypass superclass and call super.super._beforeAppear
+  qx.ui.layout.CanvasLayout.prototype._beforeAppear.call(this);
+
+  // Hide popups
+  qx.manager.object.PopupManager.getInstance().update();
+
+  // Configure the focus root to be the current opened window
+  qx.event.handler.EventHandler.getInstance().setFocusRoot(this);
+
+  this.getWindowManager().add(this);
+  this._makeActive();
+}
+
+qx.Proto._beforeDisappear = function()
+{
+  // Intentionally bypass superclass and call super.super._beforeDisappear
+  qx.ui.layout.CanvasLayout.prototype._beforeDisappear.call(this);
+
+  // Reset focus root
+  var vFocusRoot = qx.event.handler.EventHandler.getInstance().getFocusRoot();
+  if (vFocusRoot == this || this.contains(vFocusRoot)) {
+    qx.event.handler.EventHandler.getInstance().setFocusRoot(null);
+  }
+
+  // Be sure to disable any capturing inside invisible parts
+  // Is this to much overhead?
+  // Are there any other working solutions?
+  var vWidget = qx.event.handler.EventHandler.getInstance().getCaptureWidget();
+  if (vWidget && this.contains(vWidget)) {
+    vWidget.setCapture(false);
+  }
+
+  this.getWindowManager().remove(this);
+  this._makeInactive();
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  ZIndex Positioning
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._minZIndex = 1e5;
+
+qx.Proto._sendTo = function()
+{
+  var vAll = qx.lang.Object.getValues(this.getWindowManager().getAll()).sort(qx.util.Compare.byZIndex);
+  var vLength = vAll.length;
+  var vIndex = this._minZIndex;
+
+  for (var i=0; i<vLength; i++) {
+    vAll[i].setZIndex(vIndex++);
+  }
+}
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIERS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._modifyActive = function(propValue, propOldValue, propData)
+{
+  if (propOldValue)
+  {
+    if (this.getFocused()) {
+      this.setFocused(false);
+    }
+
+    if (this.getWindowManager().getActiveWindow() == this) {
+      this.getWindowManager().setActiveWindow(null);
+    }
+
+    this.removeState("active");
+    this._captionBar.removeState("active");
+  }
+  else
+  {
+    // Switch focus
+    // Also do this if gets inactive as this moved the focus outline
+    // away from any focused child.
+    if (!this.getFocusedChild()) {
+      this.setFocused(true);
+    }
+
+    this.getWindowManager().setActiveWindow(this);
+    this.bringToFront();
+
+    this.addState("active");
+    this._captionBar.addState("active");
+  }
+
+  return true;
+}
+
+qx.Proto._modifyModal = function(propValue, propOldValue, propData)
+{
+  // Inform blocker
+  if (this._initialLayoutDone && this.getVisibility() && this.getDisplay())
+  {
+    var vTop = this.getTopLevelWidget();
+    propValue ? vTop.block(this) : vTop.release(this);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyAllowClose = function(propValue, propOldValue, propData) {
+  return this._closeButtonManager();
+}
+
+qx.Proto._modifyAllowMaximize = function(propValue, propOldValue, propData) {
+  return this._maximizeButtonManager();
+}
+
+qx.Proto._modifyAllowMinimize = function(propValue, propOldValue, propData) {
+  return this._minimizeButtonManager();
+}
+
+qx.Proto._modifyMode = function(propValue, propOldValue, propData)
+{
+  switch(propValue)
+  {
+    case "minimized":
+      this._minimize();
+      break;
+
+    case "maximized":
+      this._maximize();
+      break;
+
+    default:
+      switch(propOldValue)
+      {
+        case "maximized":
+          this._restoreFromMaximized();
+          break;
+
+        case "minimized":
+          this._restoreFromMinimized();
+          break;
+      }
+  }
+
+  return true;
+}
+
+qx.Proto._modifyShowCaption = function(propValue, propOldValue, propData)
+{
+  if (propValue)
+  {
+    this._captionBar.addAt(this._captionTitle, this.getShowIcon() ? 1 : 0);
+  }
+  else
+  {
+    this._captionBar.remove(this._captionTitle);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyShowIcon = function(propValue, propOldValue, propData)
+{
+  if (propValue)
+  {
+    this._captionBar.addAtBegin(this._captionIcon);
+  }
+  else
+  {
+    this._captionBar.remove(this._captionIcon);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyShowStatusbar = function(propValue, propOldValue, propData)
+{
+  if (propValue)
+  {
+    this._layout.addAtEnd(this._statusBar);
+  }
+  else
+  {
+    this._layout.remove(this._statusBar);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyShowClose = function(propValue, propOldValue, propData)
+{
+  if (propValue)
+  {
+    this._captionBar.addAtEnd(this._closeButton);
+  }
+  else
+  {
+    this._captionBar.remove(this._closeButton);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyShowMaximize = function(propValue, propOldValue, propData)
+{
+  if (propValue)
+  {
+    var t = this.getMode() == "maximized" ? this._restoreButton : this._maximizeButton;
+
+    if (this.getShowMinimize())
+    {
+      this._captionBar.addAfter(t, this._minimizeButton);
+    }
+    else
+    {
+      this._captionBar.addAfter(t, this._captionFlex);
+    }
+  }
+  else
+  {
+    this._captionBar.remove(this._maximizeButton);
+    this._captionBar.remove(this._restoreButton);
+  }
+
+  return true;
+}
+
+qx.Proto._modifyShowMinimize = function(propValue, propOldValue, propData)
+{
+  if (propValue)
+  {
+    this._captionBar.addAfter(this._minimizeButton, this._captionFlex);
+  }
+  else
+  {
+    this._captionBar.remove(this._minimizeButton);
+  }
+
+  return true;
+}
+
+qx.Proto._minimizeButtonManager = function()
+{
+  this._minimizeButton.setEnabled(this.getAllowMinimize());
+
+  return true;
+}
+
+qx.Proto._closeButtonManager = function()
+{
+  this._closeButton.setEnabled(this.getAllowClose());
+
+  return true;
+}
+
+qx.Proto._maximizeButtonManager = function()
+{
+  var b = this.getAllowMaximize() && this.getResizeable() && this._computedMaxWidthTypeNull && this._computedMaxHeightTypeNull;
+
+  this._maximizeButton.setEnabled(b);
+  this._restoreButton.setEnabled(b);
+
+  return true;
+}
+
+qx.Proto._modifyStatus = function(propValue, propOldValue, propData)
+{
+  this._statusText.setHtml(propValue);
+
+  return true;
+}
+
+qx.Proto._modifyMaxWidth = function(propValue, propOldValue, propData) {
+  return this._maximizeButtonManager();
+}
+
+qx.Proto._modifyMaxHeight = function(propValue, propOldValue, propData) {
+  return this._maximizeButtonManager();
+}
+
+qx.Proto._modifyResizeable = function(propValue, propOldValue, propData) {
+  return this._maximizeButtonManager();
+}
+
+qx.Proto._modifyCaption = function(propValue, propOldValue, propData)
+{
+  this._captionTitle.setHtml(propValue);
+  return true;
+}
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  STATE LAYOUT IMPLEMENTATION
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._minimize = function()
+{
+  this.blur();
+  this.hide();
+}
+
+qx.Proto._restoreFromMaximized = function()
+{
+  // restore previous dimension and location
+  this.setLeft(this._previousLeft ? this._previousLeft : null);
+  this.setWidth(this._previousWidth ? this._previousWidth : null);
+  this.setRight(this._previousRight ? this._previousRight : null);
+
+  this.setTop(this._previousTop ? this._previousTop : null);
+  this.setHeight(this._previousHeight ? this._previousHeight : null);
+  this.setBottom(this._previousBottom ? this._previousBottom : null);
+
+  // update state
+  this.removeState("maximized");
+
+  // toggle button
+  if (this.getShowMaximize())
+  {
+    var cb = this._captionBar;
+    var v = cb.indexOf(this._restoreButton);
+
+    cb.remove(this._restoreButton);
+    cb.addAt(this._maximizeButton, v);
+  }
+
+  // finally focus the window
+  this.focus();
+}
+
+qx.Proto._restoreFromMinimized = function()
+{
+  if (this.hasState("maximized"))
+  {
+    this.setMode("maximized");
+  }
+
+  this.show();
+  this.focus();
+}
+
+qx.Proto._maximize = function()
+{
+  if (this.hasState("maximized"))
+  {
+    return;
+  }
+
+  // store current dimension and location
+  this._previousLeft = this.getLeft();
+  this._previousWidth = this.getWidth();
+  this._previousRight = this.getRight();
+  this._previousTop = this.getTop();
+  this._previousHeight = this.getHeight();
+  this._previousBottom = this.getBottom();
+
+  // setup new dimension and location
+  this.setWidth(null);
+  this.setLeft(0);
+  this.setRight(0);
+  this.setHeight(null);
+  this.setTop(0);
+  this.setBottom(0);
+
+  // update state
+  this.addState("maximized");
+
+  // toggle button
+  if (this.getShowMaximize())
+  {
+    var cb = this._captionBar;
+    var v = cb.indexOf(this._maximizeButton);
+
+    cb.remove(this._maximizeButton);
+    cb.addAt(this._restoreButton, v);
+  }
+
+  // finally focus the window
+  this.focus();
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENTS: WINDOW
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onwindowmousedown = function(e)
+{
+  this.focus();
+
+  if (this._resizeNorth || this._resizeSouth || this._resizeWest || this._resizeEast)
+  {
+    // enable capturing
+    this.setCapture(true);
+
+    // activate global cursor
+    this.getTopLevelWidget().setGlobalCursor(this.getCursor());
+
+    // caching element
+    var el = this.getElement();
+
+    // measuring and caching of values for resize session
+    var pa = this.getParent();
+    var pl = pa.getElement();
+
+    var l = qx.dom.Location.getPageAreaLeft(pl);
+    var t = qx.dom.Location.getPageAreaTop(pl);
+    var r = qx.dom.Location.getPageAreaRight(pl);
+    var b = qx.dom.Location.getPageAreaBottom(pl);
+
+    // handle frame and translucently
+    switch(this.getResizeMethod())
+    {
+      case "translucent":
+        this.setOpacity(0.5);
+        break;
+
+      case "frame":
+        var f = this._frame;
+
+        if (f.getParent() != this.getParent())
+        {
+          f.setParent(this.getParent());
+          qx.ui.core.Widget.flushGlobalQueues();
+        }
+
+        f._applyRuntimeLeft(qx.dom.Location.getPageBoxLeft(el) - l);
+        f._applyRuntimeTop(qx.dom.Location.getPageBoxTop(el) - t);
+
+        f._applyRuntimeWidth(qx.dom.Dimension.getBoxWidth(el));
+        f._applyRuntimeHeight(qx.dom.Dimension.getBoxHeight(el));
+
+        f.setZIndex(this.getZIndex() + 1);
+
+        break;
+    }
+
+    // create resize session
+    var s = this._resizeSession = {};
+
+    if (this._resizeWest)
+    {
+      s.boxWidth = qx.dom.Dimension.getBoxWidth(el);
+      s.boxRight = qx.dom.Location.getPageBoxRight(el);
+    }
+
+    if (this._resizeWest || this._resizeEast)
+    {
+      s.boxLeft = qx.dom.Location.getPageBoxLeft(el);
+
+      s.parentAreaOffsetLeft = l;
+      s.parentAreaOffsetRight = r;
+
+      s.minWidth = this.getMinWidthValue();
+      s.maxWidth = this.getMaxWidthValue();
+    }
+
+    if (this._resizeNorth)
+    {
+      s.boxHeight = qx.dom.Dimension.getBoxHeight(el);
+      s.boxBottom = qx.dom.Location.getPageBoxBottom(el);
+    }
+
+    if (this._resizeNorth || this._resizeSouth)
+    {
+      s.boxTop = qx.dom.Location.getPageBoxTop(el);
+
+      s.parentAreaOffsetTop = t;
+      s.parentAreaOffsetBottom = b;
+
+      s.minHeight = this.getMinHeightValue();
+      s.maxHeight = this.getMaxHeightValue();
+    }
+  }
+  else
+  {
+    // cleanup resize session
+    delete this._resizeSession;
+  }
+
+  // stop event
+  e.stopPropagation();
+}
+
+qx.Proto._onwindowmouseup = function(e)
+{
+  var s = this._resizeSession;
+
+  if (s)
+  {
+    // disable capturing
+    this.setCapture(false);
+
+    // deactivate global cursor
+    this.getTopLevelWidget().setGlobalCursor(null);
+
+    // sync sizes to frame
+    switch(this.getResizeMethod())
+    {
+      case "frame":
+        var o = this._frame;
+        if (!(o && o.getParent())) {
+          break;
+        }
+        // no break here
+
+      case "lazyopaque":
+        if (qx.util.Validation.isValidNumber(s.lastLeft)) {
+          this.setLeft(s.lastLeft);
+        }
+
+        if (qx.util.Validation.isValidNumber(s.lastTop)) {
+          this.setTop(s.lastTop);
+        }
+
+        if (qx.util.Validation.isValidNumber(s.lastWidth)) {
+          this.setWidth(s.lastWidth);
+        }
+
+        if (qx.util.Validation.isValidNumber(s.lastHeight)) {
+          this.setHeight(s.lastHeight);
+        }
+
+        if (this.getResizeMethod() == "frame") {
+          this._frame.setParent(null);
+        }
+        break;
+
+      case "translucent":
+        this.setOpacity(null);
+        break;
+    }
+
+    // cleanup session
+    delete this._resizeNorth;
+    delete this._resizeEast;
+    delete this._resizeSouth;
+    delete this._resizeWest;
+
+    delete this._resizeSession;
+  }
+
+  // stop event
+  e.stopPropagation();
+}
+
+qx.Proto._near = function(p, e) {
+  return e > (p - 5) && e < (p + 5);
+}
+
+qx.Proto._onwindowmousemove = function(e)
+{
+  if (!this.getResizeable() || this.getMode() != null) {
+    return;
+  }
+
+  var s = this._resizeSession;
+
+  if (s)
+  {
+    if (this._resizeWest)
+    {
+      s.lastWidth = qx.lang.Number.limit(s.boxWidth + s.boxLeft - Math.max(e.getPageX(), s.parentAreaOffsetLeft), s.minWidth, s.maxWidth);
+      s.lastLeft = s.boxRight - s.lastWidth - s.parentAreaOffsetLeft;
+    }
+    else if (this._resizeEast)
+    {
+      s.lastWidth = qx.lang.Number.limit(Math.min(e.getPageX(), s.parentAreaOffsetRight) - s.boxLeft, s.minWidth, s.maxWidth);
+    }
+
+    if (this._resizeNorth)
+    {
+      s.lastHeight = qx.lang.Number.limit(s.boxHeight + s.boxTop - Math.max(e.getPageY(), s.parentAreaOffsetTop), s.minHeight, s.maxHeight);
+      s.lastTop = s.boxBottom - s.lastHeight - s.parentAreaOffsetTop;
+    }
+    else if (this._resizeSouth)
+    {
+      s.lastHeight = qx.lang.Number.limit(Math.min(e.getPageY(), s.parentAreaOffsetBottom) - s.boxTop, s.minHeight, s.maxHeight);
+    }
+
+    switch(this.getResizeMethod())
+    {
+      case "opaque":
+      case "translucent":
+        if (this._resizeWest || this._resizeEast)
+        {
+          this.setWidth(s.lastWidth);
+
+          if (this._resizeWest) {
+            this.setLeft(s.lastLeft);
+          }
+        }
+
+        if (this._resizeNorth || this._resizeSouth)
+        {
+          this.setHeight(s.lastHeight);
+
+          if (this._resizeNorth) {
+            this.setTop(s.lastTop);
+          }
+        }
+
+        break;
+
+      default:
+        var o = this.getResizeMethod() == "frame" ? this._frame : this;
+
+        if (this._resizeWest || this._resizeEast)
+        {
+          o._applyRuntimeWidth(s.lastWidth);
+
+          if (this._resizeWest) {
+            o._applyRuntimeLeft(s.lastLeft);
+          }
+        }
+
+        if (this._resizeNorth || this._resizeSouth)
+        {
+          o._applyRuntimeHeight(s.lastHeight);
+
+          if (this._resizeNorth) {
+            o._applyRuntimeTop(s.lastTop);
+          }
+        }
+    }
+  }
+  else
+  {
+    var resizeMode = "";
+    var el = this.getElement();
+
+    this._resizeNorth = this._resizeSouth = this._resizeWest = this._resizeEast = false;
+
+    if (this._near(qx.dom.Location.getPageBoxTop(el), e.getPageY()))
+    {
+      resizeMode = "n";
+      this._resizeNorth = true;
+    }
+    else if (this._near(qx.dom.Location.getPageBoxBottom(el), e.getPageY()))
+    {
+      resizeMode = "s";
+      this._resizeSouth = true;
+    }
+
+    if (this._near(qx.dom.Location.getPageBoxLeft(el), e.getPageX()))
+    {
+      resizeMode += "w";
+      this._resizeWest = true;
+    }
+    else if (this._near(qx.dom.Location.getPageBoxRight(el), e.getPageX()))
+    {
+      resizeMode += "e";
+      this._resizeEast = true;
+    }
+
+    if (this._resizeNorth || this._resizeSouth || this._resizeWest || this._resizeEast)
+    {
+      this.setCursor(resizeMode + "-resize");
+    }
+    else
+    {
+      this.setCursor(null);
+    }
+  }
+
+  // stop event
+  e.stopPropagation();
+}
+
+qx.Proto._onwindowclick = function(e)
+{
+  // stop event
+  e.stopPropagation();
+};
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENTS: BUTTONS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._onbuttonmousedown = function(e) {
+  e.stopPropagation();
+}
+
+qx.Proto._onminimizebuttonclick = function(e)
+{
+  this.minimize();
+
+  // we need to be sure that the button gets the right states after clicking
+  // because the button will move and does not get the mouseup event anymore
+  this._minimizeButton.removeState("pressed");
+  this._minimizeButton.removeState("abandoned");
+  this._minimizeButton.removeState("over");
+
+  e.stopPropagation();
+}
+
+qx.Proto._onrestorebuttonclick = function(e)
+{
+  this.restore();
+
+  // we need to be sure that the button gets the right states after clicking
+  // because the button will move and does not get the mouseup event anymore
+  this._restoreButton.removeState("pressed");
+  this._restoreButton.removeState("abandoned");
+  this._restoreButton.removeState("over");
+
+  e.stopPropagation();
+}
+
+qx.Proto._onmaximizebuttonclick = function(e)
+{
+  this.maximize();
+
+  // we need to be sure that the button gets the right states after clicking
+  // because the button will move and does not get the mouseup event anymore
+  this._maximizeButton.removeState("pressed");
+  this._maximizeButton.removeState("abandoned");
+  this._maximizeButton.removeState("over");
+
+  e.stopPropagation();
+}
+
+qx.Proto._onclosebuttonclick = function(e)
+{
+  this.close();
+
+  // we need to be sure that the button gets the right states after clicking
+  // because the button will move and does not get the mouseup event anymore
+  this._closeButton.removeState("pressed");
+  this._closeButton.removeState("abandoned");
+  this._closeButton.removeState("over");
+
+  e.stopPropagation();
+}
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENTS: CAPTIONBAR
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._oncaptionmousedown = function(e)
+{
+  if (!e.isLeftButtonPressed() || !this.getMoveable() || this.getMode() != null) {
+    return;
+  }
+
+  // enable capturing
+  this._captionBar.setCapture(true);
+
+  // element cache
+  var el = this.getElement();
+
+  // measuring and caching of values for drag session
+  var pa = this.getParent();
+  var pl = pa.getElement();
+
+  var l = qx.dom.Location.getPageAreaLeft(pl);
+  var t = qx.dom.Location.getPageAreaTop(pl);
+  var r = qx.dom.Location.getPageAreaRight(pl);
+  var b = qx.dom.Location.getPageAreaBottom(pl);
+
+  this._dragSession =
+  {
+    offsetX : e.getPageX() - qx.dom.Location.getPageBoxLeft(el) + l,
+    offsetY : e.getPageY() - qx.dom.Location.getPageBoxTop(el) + t,
+
+    parentAvailableAreaLeft : l + 5,
+    parentAvailableAreaTop : t + 5,
+    parentAvailableAreaRight : r - 5,
+    parentAvailableAreaBottom : b - 5
+  }
+
+  // handle frame and translucently
+  switch(this.getMoveMethod())
+  {
+    case "translucent":
+      this.setOpacity(0.5);
+      break;
+
+    case "frame":
+      var f = this._frame;
+
+      if (f.getParent() != this.getParent())
+      {
+        f.setParent(this.getParent());
+        qx.ui.core.Widget.flushGlobalQueues();
+      }
+
+      f._applyRuntimeLeft(qx.dom.Location.getPageBoxLeft(el) - l);
+      f._applyRuntimeTop(qx.dom.Location.getPageBoxTop(el) - t);
+
+      f._applyRuntimeWidth(qx.dom.Dimension.getBoxWidth(el));
+      f._applyRuntimeHeight(qx.dom.Dimension.getBoxHeight(el));
+
+      f.setZIndex(this.getZIndex() + 1);
+
+      break;
+  }
+}
+
+qx.Proto._oncaptionmouseup = function(e)
+{
+  var s = this._dragSession;
+
+  if (!s) {
+    return;
+  }
+
+  // disable capturing
+  this._captionBar.setCapture(false);
+
+  // move window to last position
+  if (qx.util.Validation.isValidNumber(s.lastX)) {
+    this.setLeft(s.lastX);
+  }
+
+  if (qx.util.Validation.isValidNumber(s.lastY)) {
+    this.setTop(s.lastY);
+  }
+
+  // handle frame and translucently
+  switch(this.getMoveMethod())
+  {
+    case "translucent":
+      this.setOpacity(null);
+      break;
+
+    case "frame":
+      this._frame.setParent(null);
+      break;
+  }
+
+  // cleanup session
+  delete this._dragSession;
+}
+
+qx.Proto._oncaptionmousemove = function(e)
+{
+  var s = this._dragSession;
+
+  // pre check for active session and capturing
+  if (!s || !this._captionBar.getCapture()) {
+    return;
+  }
+
+  // pre check if we go out of the available area
+  if (!qx.lang.Number.isBetweenRange(e.getPageX(), s.parentAvailableAreaLeft, s.parentAvailableAreaRight) || !qx.lang.Number.isBetweenRange(e.getPageY(), s.parentAvailableAreaTop, s.parentAvailableAreaBottom)) {
+    return;
+  }
+
+  // use the fast and direct dom methods
+  var o = this.getMoveMethod() == "frame" ? this._frame : this;
+
+  o._applyRuntimeLeft(s.lastX = e.getPageX() - s.offsetX);
+  o._applyRuntimeTop(s.lastY = e.getPageY() - s.offsetY);
+}
+
+qx.Proto._oncaptiondblblick = function()
+{
+  if (!this._maximizeButton.getEnabled()) {
+    return;
+  }
+
+  return this.getMode() == "maximized" ? this.restore() : this.maximize();
+}
+
+
+
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  if (this._layout)
+  {
+    this._layout.dispose();
+    this._layout = null;
+  }
+
+  if (this._frame)
+  {
+    this._frame.dispose();
+    this._frame = null;
+  }
+
+  if (this._captionBar)
+  {
+    this._captionBar.dispose();
+    this._captionBar = null;
+  }
+
+  if (this._captionIcon)
+  {
+    this._captionIcon.dispose();
+    this._captionIcon = null;
+  }
+
+  if (this._captionTitle)
+  {
+    this._captionTitle.dispose();
+    this._captionTitle = null;
+  }
+
+  if (this._captionFlex)
+  {
+    this._captionFlex.dispose();
+    this._captionFlex = null;
+  }
+
+  if (this._closeButton)
+  {
+    this._closeButton.dispose();
+    this._closeButton = null;
+  }
+
+  if (this._minimizeButton)
+  {
+    this._minimizeButton.dispose();
+    this._minimizeButton = null;
+  }
+
+  if (this._maximizeButton)
+  {
+    this._maximizeButton.dispose();
+    this._maximizeButton = null;
+  }
+
+  if (this._restoreButton)
+  {
+    this._restoreButton.dispose();
+    this._restoreButton = null;
+  }
+
+  if (this._pane)
+  {
+    this._pane.dispose();
+    this._pane = null;
+  }
+
+  if (this._statusBar)
+  {
+    this._statusBar.dispose();
+    this._statusBar = null;
+  }
+
+  if (this._statusText)
+  {
+    this._statusText.dispose();
+    this._statusText = null;
+  }
+
+  return qx.ui.popup.Popup.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/ColorUtil.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/ColorUtil.js
new file mode 100644 (file)
index 0000000..3a8406f
--- /dev/null
@@ -0,0 +1,162 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.util.ColorUtil");
+
+qx.Class.rgb2hsb = function(vRed, vGreen, vBlue)
+{
+  var vHue, vSaturation, vBrightness;
+
+  vRed = parseFloat(vRed);
+  vGreen = parseFloat(vGreen);
+  vBlue = parseFloat(vBlue);
+
+  var cmax = (vRed > vGreen) ? vRed : vGreen;
+  if (vBlue > cmax) {
+    cmax = vBlue;
+  }
+
+  var cmin = (vRed < vGreen) ? vRed : vGreen;
+  if (vBlue < cmin) {
+    cmin = vBlue;
+  }
+
+  vBrightness = cmax / 255.0;
+
+  if (cmax != 0)
+  {
+    vSaturation = (cmax - cmin) / cmax;
+  }
+  else
+  {
+    vSaturation = 0;
+  }
+
+  if (vSaturation == 0)
+  {
+    vHue = 0;
+  }
+  else
+  {
+    var redc = (cmax - vRed) / (cmax - cmin);
+    var greenc = (cmax - vGreen) / (cmax - cmin);
+    var bluec = (cmax - vBlue) / (cmax - cmin);
+
+    if (vRed == cmax)
+    {
+      vHue = bluec - greenc;
+    }
+    else if (vGreen == cmax)
+    {
+      vHue = 2.0 + redc - bluec;
+    }
+    else
+    {
+      vHue = 4.0 + greenc - redc;
+    }
+
+    vHue = vHue / 6.0;
+    if (vHue < 0) vHue = vHue + 1.0;
+  }
+
+  return {
+    hue : Math.round(vHue * 360),
+    saturation : Math.round(vSaturation * 100),
+    brightness : Math.round(vBrightness * 100)
+  }
+}
+
+qx.Class.hsb2rgb = function(vHue, vSaturation, vBrightness)
+{
+  var i, f, p, q, t, vReturn;
+
+  vHue = parseFloat(vHue/360);
+  vSaturation = parseFloat(vSaturation/100);
+  vBrightness = parseFloat(vBrightness/100);
+
+  if(vHue >= 1.0) vHue %= 1.0;
+  if(vSaturation > 1.0) vSaturation = 1.0;
+  if(vBrightness > 1.0) vBrightness = 1.0;
+
+  var tov = Math.floor(255 * vBrightness);
+
+  var vReturn = {};
+
+  if(vSaturation == 0.0)
+  {
+    vReturn.red = vReturn.green = vReturn.blue = tov;
+  }
+  else
+  {
+    vHue *= 6.0;
+
+    i = Math.floor(vHue);
+
+    f = vHue - i;
+
+    p = Math.floor(tov * (1.0 - vSaturation));
+    q = Math.floor(tov * (1.0 - (vSaturation * f)));
+    t = Math.floor(tov * (1.0 - (vSaturation * (1.0  - f))));
+
+    switch(i)
+    {
+      case 0:
+        vReturn.red = tov;
+        vReturn.green = t;
+        vReturn.blue = p;
+        break;
+
+      case 1:
+        vReturn.red = q;
+        vReturn.green = tov;
+        vReturn.blue = p;
+        break;
+
+      case 2:
+        vReturn.red = p;
+        vReturn.green = tov;
+        vReturn.blue = t;
+        break;
+
+      case 3:
+        vReturn.red = p;
+        vReturn.green = q;
+        vReturn.blue = tov;
+        break;
+
+      case 4:
+        vReturn.red = t;
+        vReturn.green = p;
+        vReturn.blue = tov;
+        break;
+
+      case 5:
+        vReturn.red = tov;
+        vReturn.green = p;
+        vReturn.blue = q;
+        break;
+    }
+  }
+
+  return vReturn;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Compare.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Compare.js
new file mode 100644 (file)
index 0000000..3de325d
--- /dev/null
@@ -0,0 +1,86 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.util.Compare");
+
+qx.util.Compare.byString = function(a, b) {
+  return a==b ? 0 : a > b ? 1 : -1;
+}
+
+qx.util.Compare.byStringCaseInsensitive = function(a, b) {
+  return qx.util.Compare.byString(a.toLowerCase(), b.toLowerCase());
+}
+
+qx.util.Compare.byStringUmlautsShort = function(a, b) {
+  return qx.util.Compare.byString(qx.util.Normalization.umlautsShort(a), qx.util.Normalization.umlautsShort(b));
+}
+
+qx.util.Compare.byStringUmlautsShortCaseInsensitive = function(a, b) {
+  return qx.util.Compare.byString(qx.util.Normalization.umlautsShort(a).toLowerCase(), qx.util.Normalization.umlautsShort(b).toLowerCase());
+}
+
+qx.util.Compare.byStringUmlautsLong = function(a, b) {
+  return qx.util.Compare.byString(qx.util.Normalization.umlautsLong(a), qx.util.Normalization.umlautsLong(b));
+}
+
+qx.util.Compare.byStringUmlautsLongCaseInsensitive = function(a, b) {
+  return qx.util.Compare.byString(qx.util.Normalization.umlautsLong(a).toLowerCase(), qx.util.Normalization.umlautsLong(b).toLowerCase());
+}
+
+qx.util.Compare.byFloat = function(a, b) {
+  return a - b;
+}
+
+qx.util.Compare.byInteger = qx.util.Compare.byNumber = qx.util.Compare.byFloat;
+
+qx.util.Compare.byIntegerString = function(a, b) {
+  return parseInt(a) - parseInt(b);
+}
+
+qx.util.Compare.byFloatString = function(a, b) {
+  return parseFloat(a) - parseFloat(b);
+}
+
+qx.util.Compare.byNumberString = qx.util.Compare.byFloatString;
+
+qx.util.Compare.byIPv4 = function(a, b)
+{
+  var ipa = a.split(".", 4);
+  var ipb = b.split(".", 4);
+
+  for (var i=0; i<3; i++)
+  {
+    a = parseInt(ipa[i]);
+    b = parseInt(ipb[i]);
+
+    if (a != b) {
+      return a - b;
+    }
+  }
+
+  return parseInt(ipa[3]) - parseInt(ipb[3]);
+}
+
+qx.util.Compare.byZIndex = function(a, b) {
+  return a.getZIndex() - b.getZIndex();
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/FormUtil.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/FormUtil.js
new file mode 100644 (file)
index 0000000..2d49130
--- /dev/null
@@ -0,0 +1,109 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(io_remote)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.util.FormUtil");
+
+qx.Class.ignoreInputTypes = [ "file", "submit", "image", "reset", "button" ];
+qx.Class.ignoreElementTypes = [ "fieldset" ];
+qx.Class.checkElementTypes = [ "radio", "checkbox" ];
+qx.Class.multiSelectType = "select-multiple";
+
+qx.Class.inputFilter = function(vNode)
+{
+  if (vNode.disabled) {
+    return false;
+  }
+
+  var vTag = (vNode.tagName || "").toLowerCase();
+
+  if (qx.lang.Array.contains(qx.util.FormUtil.ignoreElementTypes, vTag)) {
+    return false;
+  }
+
+  var vType = vNode.type.toLowerCase();
+
+  if (qx.lang.Array.contains(qx.util.FormUtil.ignoreInputTypes, vType)) {
+    return false;
+  }
+
+  if (!vNode.checked && qx.lang.Array.contains(qx.util.FormUtil.checkElementTypes, vType)) {
+    return false;
+  }
+
+  return true;
+}
+
+qx.Class.getFields = function(vForm) {
+  return Array.filter(vForm.elements, qx.util.FormUtil.inputFilter);
+}
+
+qx.Class.encodeField = function(vNode)
+{
+  var vName = vNode.name || "";
+  var vType = (vNode.type || "").toLowerCase();
+
+  if(vType === qx.util.FormUtil.multiSelectType)
+  {
+    var vValues = [];
+
+    for(var i=0; i<vNode.options.length; i++)
+    {
+      if(vNode.options[i].selected) {
+        vValues.push(vName + "=" + vNode.options[i].value);
+      }
+    }
+
+    return vValues.join("&");
+  }
+  else
+  {
+    return vName + "=" + vNode.value;
+  }
+}
+
+qx.Class.encodeForm = function(vForm)
+{
+  var vFields = qx.util.FormUtil.getFields(vForm);
+  var vAll = [];
+
+  for (var i=0, l=vFields.length; i<l; i++) {
+    vAll.push(qx.util.FormUtil.encodeField(vFields[i]));
+  }
+
+  return vAll.join("&");
+}
+
+qx.Class.bind = function(vForm, vMethod)
+{
+  qx.dom.EventRegistration.addEventListener(vForm, "submit", function(e)
+  {
+    e.returnValue = false;
+
+    if (typeof e.preventDefault === "function") {
+      e.preventDefault();
+    }
+
+    return vMethod(e);
+  });
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Normalization.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Normalization.js
new file mode 100644 (file)
index 0000000..1d94b5d
--- /dev/null
@@ -0,0 +1,56 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.util.Normalization");
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  HANDLING OF UMLAUTS
+---------------------------------------------------------------------------
+*/
+
+qx.util.Normalization._umlautsRegExp = /[\xE4\xF6\xFC\xDF\xC4\xD6\xDC]/g;
+
+qx.util.Normalization._umlautsShortData = { "\xC4": "A", "\xD6": "O", "\xDC": "U", "\xE4": "a", "\xF6": "o", "\xFC": "u", "\xDF": "s" }
+
+qx.util.Normalization._umlautsShort = function(vChar) {
+  return qx.util.Normalization._umlautsShortData[vChar];
+}
+
+qx.util.Normalization.umlautsShort = function(vString) {
+  return vString.replace(qx.util.Normalization._umlautsRegExp, qx.util.Normalization._umlautsShort);
+}
+
+qx.util.Normalization._umlautsLongData = { "\xC4": "Ae", "\xD6": "Oe", "\xDC": "Ue", "\xE4": "ae", "\xF6": "oe", "\xFC": "ue", "\xDF": "ss" }
+
+qx.util.Normalization._umlautsLong = function(vChar) {
+  return qx.util.Normalization._umlautsLongData[vChar];
+}
+
+qx.util.Normalization.umlautsLong = function(vString) {
+  return vString.replace(qx.util.Normalization._umlautsRegExp, qx.util.Normalization._umlautsLong);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Return.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Return.js
new file mode 100644 (file)
index 0000000..2f5c7dd
--- /dev/null
@@ -0,0 +1,74 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.util.Return");
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  SIMPLE RETURN METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.util.Return.returnTrue = function() {
+  return true;
+};
+
+qx.util.Return.returnFalse = function() {
+  return false;
+};
+
+qx.util.Return.returnNull = function() {
+  return null;
+};
+
+qx.util.Return.returnThis = function() {
+  return this;
+};
+
+qx.util.Return.returnInstance = function()
+{
+  if (!this._instance)
+  {
+    this._instance = new this;
+
+    /*
+    if (this._instance.debug) {
+      this._instance.debug("Created...");
+    }*/
+  }
+
+  return this._instance;
+};
+
+qx.util.Return.returnZero = function() {
+  return 0;
+};
+
+qx.util.Return.returnNegativeIndex = function() {
+  return -1;
+};
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Textile.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Textile.js
new file mode 100644 (file)
index 0000000..1bf4298
--- /dev/null
@@ -0,0 +1,178 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+/**
+ * Optimized version of SuperTextile
+ */
+qx.OO.defineClass("qx.util.Textile");
+
+/**
+ * ATTENTION: Deprecated module. Will be removed with qooxdoo 0.7.
+ *
+ * Textilizes a string
+ * http://www.creatimation.net/journal/textile-live-preview (offline)
+ *
+ * @param s {string} Text to be textilized.
+ * @return {string} The textilized text.
+ */
+qx.util.Textile.textilize = function(s)
+{
+  var r = s;
+
+  // quick tags first
+  var qtags = [
+    ["\\*", "strong"],
+    ["\\?\\?", "cite"],
+    ["\\+", "ins"],
+    ["~", "sub"],
+    ["\\^", "sup"],
+    ["@", "code"]
+  ];
+
+  var ttag, htag, re, line, lines, nr, changed, inlist, listtype;
+
+  for (var i=0;i<qtags.length;i++) {
+    ttag = qtags[i][0]; htag = qtags[i][1];
+    re = new RegExp(ttag+"\\b(.+?)\\b"+ttag,"g");
+    r = r.replace(re,"<"+htag+">"+"$1"+"</"+htag+">");
+  }
+
+  // underscores count as part of a word, so do them separately
+  re = new RegExp("\\b_(.+?)_\\b","g");
+  r = r.replace(re,"<em>$1</em>");
+
+  // jeff: so do dashes
+  re = new RegExp("[\s\n]-(.+?)-[\s\n]","g");
+  r = r.replace(re,"<del>$1</del>");
+
+  // links
+  re = new RegExp('"\\b(.+?)\\(\\b(.+?)\\b\\)":([^\\s]+)','g');
+  r = r.replace(re,'<a href="$3" title="$2">$1</a>');
+  re = new RegExp('"\\b(.+?)\\b":([^\\s]+)','g');
+  r = r.replace(re,'<a href="$2">$1</a>');
+
+  // images
+  re = new RegExp("!\\b(.+?)\\(\\b(.+?)\\b\\)!","g");
+  r = r.replace(re,'<img src="$1" alt="$2">');
+  re = new RegExp("!\\b(.+?)\\b!","g");
+  r = r.replace(re,'<img src="$1">');
+
+  // block level formatting
+
+  // Jeff's hack to show single line breaks as they should.
+  // insert breaks - but you get some....stupid ones
+  re = new RegExp("(.*)\n([^#\*\n].*)","g");
+  r = r.replace(re,"$1<br />$2");
+
+  // remove the stupid breaks.
+  re = new RegExp("\n<br />","g");
+  r = r.replace(re,"\n");
+
+  lines = r.split("\n");
+  nr = "";
+
+  for (var i=0;i<lines.length;i++)
+  {
+    line = lines[i].replace(/\s*$/,"");
+    changed = 0;
+
+    if (line.search(/^\s*bq\.\s+/) != -1)
+    {
+      line = line.replace(/^\s*bq\.\s+/,"\t<blockquote>")+"</blockquote>";
+      changed = 1;
+    }
+
+    // jeff adds h#.
+    if (line.search(/^\s*h[1-6]\.\s+/) != -1)
+    {
+       re = new RegExp("h([1-6])\.(.+)","g");
+      line = line.replace(re,"<h$1>$2</h$1>");
+      changed = 1;
+    }
+
+    if (line.search(/^\s*\*\s+/) != -1)
+    {
+      // for bullet list; make up an liu tag to be fixed later
+      line = line.replace(/^\s*\*\s+/,"\t<liu>") + "</liu>";
+      changed = 1;
+    }
+
+    if (line.search(/^\s*#\s+/) != -1)
+    {
+      // # for numeric list; make up an lio tag to be fixed later
+      line = line.replace(/^\s*#\s+/,"\t<lio>") + "</lio>";
+      changed = 1;
+    }
+
+    if (!changed && (line.replace(/\s/g,"").length > 0))
+    {
+      line = "<p>"+line+"</p>";
+    }
+
+    lines[i] = line + "\n";
+  }
+
+  // Second pass to do lists
+  inlist = 0;
+  listtype = "";
+
+  for (var i=0;i<lines.length;i++)
+  {
+    line = lines[i];
+
+    if (inlist && listtype == "ul" && !line.match(/^\t<liu/))
+    {
+      line = "</ul>\n" + line;
+      inlist = 0;
+    }
+
+    if (inlist && listtype == "ol" && !line.match(/^\t<lio/))
+    {
+      line = "</ol>\n" + line;
+      inlist = 0;
+    }
+
+    if (!inlist && line.match(/^\t<liu/))
+    {
+      line = "<ul>" + line;
+      inlist = 1;
+      listtype = "ul";
+    }
+
+    if (!inlist && line.match(/^\t<lio/))
+    {
+      line = "<ol>" + line;
+      inlist = 1;
+      listtype = "ol";
+    }
+
+    lines[i] = line;
+  }
+
+  r = lines.join("\n");
+
+  // jeff added : will correctly replace <li(o|u)> AND </li(o|u)>
+  r = r.replace(/li[o|u]>/g, "li>");
+
+  return r;
+}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Validation.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Validation.js
new file mode 100644 (file)
index 0000000..1fadd1d
--- /dev/null
@@ -0,0 +1,172 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(core)
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.util.Validation");
+
+/*
+  All methods use the strict comparison operators as all modern
+  browsers (needs support for JavaScript 1.3) seems to support this.
+
+  http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Operators:Comparison_Operators
+*/
+
+qx.util.Validation.isValid = function(v)
+{
+  switch(typeof v)
+  {
+    case "undefined":
+      return false;
+
+    case "object":
+      return v !== null;
+
+    case "string":
+      return v !== "";
+
+    case "number":
+      return !isNaN(v);
+
+    case "function":
+    case "boolean":
+      return true;
+  }
+
+  return false;
+}
+
+qx.util.Validation.isInvalid = function(v)
+{
+  switch(typeof v)
+  {
+    case "undefined":
+      return true;
+
+    case "object":
+      return v === null;
+
+    case "string":
+      return v === "";
+
+    case "number":
+      return isNaN(v);
+
+    case "function":
+    case "boolean":
+      return false;
+  }
+
+  return true;
+}
+
+qx.util.Validation.isValidNumber = function(v) {
+  return typeof v === "number" && !isNaN(v);
+}
+
+qx.util.Validation.isInvalidNumber = function(v) {
+  return typeof v !== "number" || isNaN(v);
+}
+
+qx.util.Validation.isValidString = function(v) {
+  return typeof v === "string" && v !== "";
+}
+
+qx.util.Validation.isInvalidString = function(v) {
+  return typeof v !== "string" || v === "";
+}
+
+qx.util.Validation.isValidArray = function(v) {
+  return typeof v === "object" && v !== null && v instanceof Array;
+}
+
+qx.util.Validation.isInvalidArray = function(v) {
+  return typeof v !== "object" || v === null || !(v instanceof Array);
+}
+
+qx.util.Validation.isValidObject = function(v) {
+  return typeof v === "object" && v !== null && !(v instanceof Array);
+}
+
+qx.util.Validation.isInvalidObject = function(v) {
+  return typeof v !== "object" || v === null || v instanceof Array;
+}
+
+qx.util.Validation.isValidNode = function(v) {
+  return typeof v === "object" && v !== null;
+}
+
+qx.util.Validation.isInvalidNode = function(v) {
+  return typeof v !== "object" || v === null;
+}
+
+qx.util.Validation.isValidElement = function(v) {
+  return typeof v === "object" && v !== null || v.nodeType !== 1;
+}
+
+qx.util.Validation.isInvalidElement = function(v) {
+  return typeof v !== "object" || v === null || v.nodeType !== 1;
+}
+
+qx.util.Validation.isValidFunction = function(v) {
+  return typeof v === "function";
+}
+
+qx.util.Validation.isInvalidFunction = function(v) {
+  return typeof v !== "function";
+}
+
+qx.util.Validation.isValidBoolean = function(v) {
+  return typeof v === "boolean";
+}
+
+qx.util.Validation.isInvalidBoolean = function(v) {
+  return typeof v !== "boolean";
+}
+
+qx.util.Validation.isValidStringOrNumber = function(v)
+{
+  switch(typeof v)
+  {
+    case "string":
+      return v !== "";
+
+    case "number":
+      return !isNaN(v);
+  }
+
+  return false;
+}
+
+qx.util.Validation.isInvalidStringOrNumber = function(v)
+{
+  switch(typeof v)
+  {
+    case "string":
+      return v === "";
+
+    case "number":
+      return isNaN(v);
+  }
+
+  return false;
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/format/DateFormat.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/format/DateFormat.js
new file mode 100644 (file)
index 0000000..7460ea4
--- /dev/null
@@ -0,0 +1,614 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+/**
+ * A formatter and parser for dates
+ *
+ * @param format {string} The format to use. If null, the
+ *    {@link #DEFAULT_DATE_TIME_FORMAT} is used.
+ */
+qx.OO.defineClass("qx.util.format.DateFormat", qx.util.format.Format,
+function(format) {
+  qx.util.format.Format.call(this);
+
+  this._format = (format != null) ? format : qx.util.format.DateFormat.DEFAULT_DATE_TIME_FORMAT;
+});
+
+
+/**
+ * Fills a number with leading zeros ("25" -> "0025").
+ *
+ * @param number {int} the number to fill.
+ * @param minSize {int} the minimum size the returned string should have.
+ * @return {string} the filled number as string.
+ */
+qx.Proto._fillNumber = function(number, minSize) {
+  var str = "" + number;
+  while (str.length < minSize) {
+    str = "0" + str;
+  }
+  return str;
+}
+
+
+/**
+ * Returns the day in year of a date.
+ *
+ * @param date {Date} the date.
+ * @return {int} the day in year.
+ */
+qx.Proto._getDayInYear = function(date) {
+  var helpDate = new Date(date.getTime());
+  var day = helpDate.getDate();
+  while (helpDate.getMonth() != 0) {
+    // Set the date to the last day of the previous month
+    helpDate.setDate(-1);
+    day += helpDate.getDate() + 1;
+  }
+  return day;
+}
+
+
+/**
+ * Returns the thursday in the same week as the date.
+ *
+ * @param date {Date} the date to get the thursday of.
+ * @return {Date} the thursday in the same week as the date.
+ */
+qx.Proto._thursdayOfSameWeek = function(date) {
+  return new Date(date.getTime() + (3 - ((date.getDay() + 6) % 7)) * 86400000);
+}
+
+
+/**
+ * Returns the week in year of a date.
+ *
+ * @param date {Date} the date to get the week in year of.
+ * @return {int} the week in year.
+ */
+qx.Proto._getWeekInYear = function(date) {
+  // This algorithm gets the correct calendar week after ISO 8601.
+  // This standard is used in almost all european countries.
+  // TODO: In the US week in year is calculated different!
+  // See http://www.merlyn.demon.co.uk/weekinfo.htm
+
+  // The following algorithm comes from http://www.salesianer.de/util/kalwoch.html
+
+  // Get the thursday of the week the date belongs to
+  var thursdayDate = this._thursdayOfSameWeek(date);
+  // Get the year the thursday (and therefor the week) belongs to
+  var weekYear = thursdayDate.getFullYear();
+  // Get the thursday of the week january 4th belongs to
+  // (which defines week 1 of a year)
+  var thursdayWeek1 = this._thursdayOfSameWeek(new Date(weekYear, 0, 4));
+  // Calculate the calendar week
+  return Math.floor(1.5 + (thursdayDate.getTime() - thursdayWeek1.getTime()) / 86400000 / 7)
+}
+
+
+/**
+ * Formats a date.
+ * <p>
+ * Uses the same syntax as
+ * <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html" target="_blank">
+ * the SimpleDateFormat class in Java</a>.
+ *
+ * @param date {Date} The date to format.
+ * @return {string} the formatted date.
+ */
+qx.Proto.format = function(date) {
+  var DateFormat = qx.util.format.DateFormat;
+
+  var fullYear = date.getFullYear();
+  var month = date.getMonth();
+  var dayOfMonth = date.getDate();
+  var dayOfWeek = date.getDay();
+  var hours = date.getHours();
+  var minutes = date.getMinutes();
+  var seconds = date.getSeconds();
+  var ms = date.getMilliseconds();
+  var timezone = date.getTimezoneOffset() / 60;
+
+  // Create the output
+  this._initFormatTree();
+  var output = "";
+  for (var i = 0; i < this._formatTree.length; i++) {
+    var currAtom = this._formatTree[i];
+
+    if (currAtom.type == "literal") {
+      output += currAtom.text;
+    } else {
+      // This is a wildcard
+      var wildcardChar = currAtom.character;
+      var wildcardSize = currAtom.size;
+
+      // Get its replacement
+      var replacement = "?";
+      switch (wildcardChar) {
+        // TODO: G - Era designator (e.g. AD). Problem: Not covered by JScript Date class
+        // TODO: W - Week in month (e.g. 2)
+        // TODO: F - Day of week in month (e.g.   2). Problem: What is this?
+
+        case 'y': // Year
+          if (wildcardSize == 2) {
+            replacement = this._fillNumber(fullYear % 100, 2);
+          } else if (wildcardSize == 4) {
+            replacement = fullYear;
+          }
+          break;
+        case 'D': // Day in year (e.g. 189)
+          replacement = this._fillNumber(this._getDayInYear(date), wildcardSize); break;
+        case 'd': // Day in month
+          replacement = this._fillNumber(dayOfMonth, wildcardSize); break;
+        case 'w': // Week in year (e.g. 27)
+          replacement = this._fillNumber(this._getWeekInYear(date), wildcardSize); break;
+        case 'E': // Day in week
+          if (wildcardSize == 2) {
+            replacement = DateFormat.SHORT_DAY_OF_WEEK_NAMES[dayOfWeek];
+          } else if (wildcardSize == 3) {
+            replacement = DateFormat.MEDIUM_DAY_OF_WEEK_NAMES[dayOfWeek];
+          } else if (wildcardSize == 4) {
+            replacement = DateFormat.FULL_DAY_OF_WEEK_NAMES[dayOfWeek];
+          }
+          break;
+        case 'M': // Month
+          if (wildcardSize == 1 || wildcardSize == 2) {
+            replacement = this._fillNumber(month + 1, wildcardSize);
+          } else if (wildcardSize == 3) {
+            replacement = DateFormat.SHORT_MONTH_NAMES[month];
+          } else if (wildcardSize == 4) {
+            replacement = DateFormat.FULL_MONTH_NAMES[month];
+          }
+          break;
+        case 'a': // am/pm marker
+          // NOTE: 0:00 is am, 12:00 is pm
+          replacement = (hours < 12) ? DateFormat.AM_MARKER : DateFormat.PM_MARKER; break;
+        case 'H': // Hour in day (0-23)
+          replacement = this._fillNumber(hours, wildcardSize); break;
+        case 'k': // Hour in day (1-24)
+          replacement = this._fillNumber((hours == 0) ? 24 : hours, wildcardSize); break;
+        case 'K': // Hour in am/pm (0-11)
+          replacement = this._fillNumber(hours % 12, wildcardSize); break;
+        case 'h': // Hour in am/pm (1-12)
+          replacement = this._fillNumber(((hours % 12) == 0) ? 12 : (hours % 12), wildcardSize); break;
+        case 'm': // Minute in hour
+          replacement = this._fillNumber(minutes, wildcardSize); break;
+        case 's': // Second in minute
+          replacement = this._fillNumber(seconds, wildcardSize); break;
+        case 'S': // Millisecond
+          replacement = this._fillNumber(ms, wildcardSize); break;
+        case 'z': // Time zone
+          if (wildcardSize == 1) {
+            replacement = "GMT" + ((timezone < 0) ? "-" : "+") + this._fillNumber(timezone) + ":00";
+          } else if (wildcardSize == 2) {
+            replacement = DateFormat.MEDIUM_TIMEZONE_NAMES[timezone];
+          } else if (wildcardSize == 3) {
+            replacement = DateFormat.FULL_TIMEZONE_NAMES[timezone];
+          }
+          break;
+        case 'Z': // RFC 822 time zone
+          replacement = ((timezone < 0) ? "-" : "+") + this._fillNumber(timezone, 2) + "00";
+      }
+      output += replacement;
+    }
+  }
+
+  return output;
+}
+
+
+/**
+ * Parses a date.
+ * <p>
+ * Uses the same syntax as
+ * <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html" target="_blank">
+ * the SimpleDateFormat class in Java</a>.
+ *
+ * @param dateStr {string} the date to parse.
+ * @return {Date} the parsed date.
+ * @throws If the format is not well formed or if the date string does not
+ *     match to the format.
+ */
+qx.Proto.parse = function(dateStr) {
+  this._initParseFeed();
+
+  // Apply the regex
+  var hit = this._parseFeed.regex.exec(dateStr);
+  if (hit == null) {
+    throw new Error("Date string '" + dateStr + "' does not match the date format: " + this._format);
+  }
+
+  // Apply the rules
+  var dateValues = { year:1970, month:0, day:1, hour:0, ispm:false, min:0, sec:0, ms:0 }
+  var currGroup = 1;
+  for (var i = 0; i < this._parseFeed.usedRules.length; i++) {
+    var rule = this._parseFeed.usedRules[i];
+
+    var value = hit[currGroup];
+    if (rule.field != null) {
+      dateValues[rule.field] = parseInt(value, 10);
+    } else {
+      rule.manipulator(dateValues, value);
+    }
+
+    currGroup += (rule.groups == null) ? 1 : rule.groups;
+  }
+
+  var date = new Date(dateValues.year, dateValues.month, dateValues.day,
+    (dateValues.ispm) ? (dateValues.hour + 12) : dateValues.hour,
+    dateValues.min, dateValues.sec, dateValues.ms);
+  if (dateValues.month != date.getMonth() || dateValues.year != date.getFullYear()) {
+    // TODO: check if this is also necessary for the time components
+    throw new Error("Error parsing date '" + dateStr + "': the value for day or month is too large");
+  }
+
+  return date;
+}
+
+
+
+/**
+ * Helper method for {@link #format()} and {@link #parse()}.
+ * Parses the date format.
+ */
+qx.Proto._initFormatTree = function() {
+  if (this._formatTree != null) {
+    return;
+  }
+
+  this._formatTree = [];
+
+  var currWildcardChar;
+  var currWildcardSize;
+  var currLiteral = "";
+  var format = this._format;
+  for (var i = 0; i < format.length; i++) {
+    var currChar = format.charAt(i);
+
+    // Check whether we are currently in a wildcard
+    if (currWildcardChar != null) {
+      // Check whether the currChar belongs to that wildcard
+      if (currChar == currWildcardChar) {
+        // It does -> Raise the size
+        currWildcardSize++;
+      } else {
+        // It does not -> The current wildcard is done
+        this._formatTree.push({ type:"wildcard", character:currWildcardChar, size:currWildcardSize });
+        currWildcardChar = null;
+      }
+    }
+
+    if (currWildcardChar == null) {
+      // We are not (any more) in a wildcard -> Check what's starting here
+      if ((currChar >= 'a' && currChar <= 'z') || (currChar >= 'A' && currChar <= 'Z')) {
+        // This is a letter -> All letters are wildcards
+
+        // Add the literal
+        if (currLiteral.length > 0) {
+          this._formatTree.push({ type:"literal", text:currLiteral });
+          currLiteral = "";
+        }
+
+        // Start a new wildcard
+        currWildcardChar = currChar;
+        currWildcardSize = 1;
+      } else {
+        // This is a literal -> Add it to the current literal
+        currLiteral += currChar;
+      }
+    }
+  }
+
+  // Add the last wildcard or literal
+  if (currWildcardChar != null) {
+    this._formatTree.push({ type:"wildcard", character:currWildcardChar, size:currWildcardSize });
+  } else if (currLiteral.length > 0) {
+    this._formatTree.push({ type:"literal", text:currLiteral });
+  }
+}
+
+
+/**
+ * Initializes the parse feed.
+ * <p>
+ * The parse contains everything needed for parsing: The regular expression
+ * (in compiled and uncompiled form) and the used rules.
+ *
+ * @return {Map} the parse feed.
+ */
+qx.Proto._initParseFeed = function() {
+  if (this._parseFeed != null) {
+    // We already have the farse feed
+    return;
+  }
+
+  var DateFormat = qx.util.format.DateFormat;
+
+  // Initialize the rules
+  this._initParseRules();
+  this._initFormatTree();
+
+  // Get the used rules and construct the regex pattern
+  var usedRules = [];
+  var pattern = "^";
+  for (var atomIdx = 0; atomIdx < this._formatTree.length; atomIdx++) {
+    var currAtom = this._formatTree[atomIdx];
+
+    if (currAtom.type == "literal") {
+      pattern += qx.lang.String.escapeRegexpChars(currAtom.text);
+    } else {
+      // This is a wildcard
+      var wildcardChar = currAtom.character;
+      var wildcardSize = currAtom.size;
+
+      // Get the rule for this wildcard
+      var wildcardRule;
+      for (var ruleIdx = 0; ruleIdx < DateFormat._parseRules.length; ruleIdx++) {
+        var rule = DateFormat._parseRules[ruleIdx];
+        if (wildcardChar == rule.pattern.charAt(0) && wildcardSize == rule.pattern.length) {
+          // We found the right rule for the wildcard
+          wildcardRule = rule;
+          break;
+        }
+      }
+
+      // Check the rule
+      if (wildcardRule == null) {
+        // We have no rule for that wildcard -> Malformed date format
+        var wildcardStr = "";
+        for (var i = 0; i < wildcardSize; i++) {
+          wildcardStr += wildcardChar;
+        }
+        throw new Error("Malformed date format: " + format + ". Wildcard "
+          + wildcardStr + " is not supported");
+      } else {
+        // Add the rule to the pattern
+        usedRules.push(wildcardRule);
+        pattern += wildcardRule.regex;
+      }
+    }
+  }
+  pattern += "$";
+
+  // Create the regex
+  var regex;
+  try {
+    regex = new RegExp(pattern);
+  }
+  catch (exc) {
+    throw new Error("Malformed date format: " + format);
+  }
+
+  // Create the this._parseFeed
+  this._parseFeed = { regex:regex, "usedRules":usedRules, pattern:pattern }
+}
+
+
+/**
+ * Initializes the static parse rules.
+ */
+qx.Proto._initParseRules = function() {
+  var DateFormat = qx.util.format.DateFormat;
+
+  if (DateFormat._parseRules != null) {
+    // The parse rules are already initialized
+    return;
+  }
+
+  DateFormat._parseRules = [];
+
+  var yearManipulator = function(dateValues, value) {
+    value = parseInt(value, 10);
+    if (value < DateFormat.ASSUME_YEAR_2000_THRESHOLD) {
+      value += 2000;
+    } else if (value < 100) {
+      value += 1900;
+    }
+
+    dateValues.year = value;
+  }
+
+  var monthManipulator = function(dateValues, value) {
+    dateValues.month = parseInt(value, 10) - 1;
+  }
+
+  var ampmManipulator = function(dateValues, value) {
+    dateValues.ispm = (value == DateFormat.PM_MARKER);
+  }
+
+  var noZeroHourManipulator = function(dateValues, value) {
+    dateValues.hour = parseInt(value, 10) % 24;
+  }
+
+  var noZeroAmPmHourManipulator = function(dateValues, value) {
+    dateValues.hour = parseInt(value, 10) % 12;
+  }
+
+  // Unsupported: w (Week in year), W (Week in month), D (Day in year),
+  // F (Day of week in month), z (time zone) reason: no setter in Date class,
+  // Z (RFC 822 time zone) reason: no setter in Date class
+
+  DateFormat._parseRules.push({ pattern:"yyyy", regex:"(\\d\\d(\\d\\d)?)",
+    groups:2, manipulator:yearManipulator } );
+  DateFormat._parseRules.push({ pattern:"yy",   regex:"(\\d\\d)",  manipulator:yearManipulator } );
+  // TODO: "MMMM", "MMM" (Month names)
+  DateFormat._parseRules.push({ pattern:"MM",   regex:"(\\d\\d?)", manipulator:monthManipulator });
+  DateFormat._parseRules.push({ pattern:"dd",   regex:"(\\d\\d?)", field:"day" });
+  DateFormat._parseRules.push({ pattern:"d",    regex:"(\\d\\d?)", field:"day" });
+  // TODO: "EEEE", "EEE", "EE" (Day in week names)
+  DateFormat._parseRules.push({ pattern:"a",
+    regex:"(" + DateFormat.AM_MARKER + "|" + DateFormat.PM_MARKER + ")",
+    manipulator:ampmManipulator });
+  DateFormat._parseRules.push({ pattern:"HH",   regex:"(\\d\\d?)", field:"hour" });
+  DateFormat._parseRules.push({ pattern:"H",    regex:"(\\d\\d?)", field:"hour" });
+  DateFormat._parseRules.push({ pattern:"kk",   regex:"(\\d\\d?)", manipulator:noZeroHourManipulator });
+  DateFormat._parseRules.push({ pattern:"k",    regex:"(\\d\\d?)", manipulator:noZeroHourManipulator });
+  DateFormat._parseRules.push({ pattern:"KK",   regex:"(\\d\\d?)", field:"hour" });
+  DateFormat._parseRules.push({ pattern:"K",    regex:"(\\d\\d?)", field:"hour" });
+  DateFormat._parseRules.push({ pattern:"hh",   regex:"(\\d\\d?)", manipulator:noZeroAmPmHourManipulator });
+  DateFormat._parseRules.push({ pattern:"h",    regex:"(\\d\\d?)", manipulator:noZeroAmPmHourManipulator });
+  DateFormat._parseRules.push({ pattern:"mm",   regex:"(\\d\\d?)", field:"min" });
+  DateFormat._parseRules.push({ pattern:"m",    regex:"(\\d\\d?)", field:"min" });
+  DateFormat._parseRules.push({ pattern:"ss",   regex:"(\\d\\d?)", field:"sec" });
+  DateFormat._parseRules.push({ pattern:"s",    regex:"(\\d\\d?)", field:"sec" });
+  DateFormat._parseRules.push({ pattern:"SSS",  regex:"(\\d\\d?\\d?)", field:"ms" });
+  DateFormat._parseRules.push({ pattern:"SS",   regex:"(\\d\\d?\\d?)", field:"ms" });
+  DateFormat._parseRules.push({ pattern:"S",    regex:"(\\d\\d?\\d?)", field:"ms" });
+}
+
+
+/**
+ * Returns a <code>DateFomat</code> instance that uses the
+ * {@link #DEFAULT_DATE_TIME_FORMAT}.
+ *
+ * @return {string} the date/time instance.
+ */
+qx.Class.getDateTimeInstance = function() {
+  var DateFormat = qx.util.format.DateFormat;
+
+  if (DateFormat._dateTimeInstance == null) {
+    DateFormat._dateTimeInstance = new DateFormat();
+  }
+  return DateFormat._dateTimeInstance;
+}
+
+
+/**
+ * Returns a <code>DateFomat</code> instance that uses the
+ * {@link #DEFAULT_DATE_FORMAT}.
+ *
+ * @return {string} the date instance.
+ */
+qx.Class.getDateInstance = function() {
+  var DateFormat = qx.util.format.DateFormat;
+
+  if (DateFormat._dateInstance == null) {
+    DateFormat._dateInstance = new DateFormat(DateFormat.DEFAULT_DATE_FORMAT);
+  }
+  return DateFormat._dateInstance;
+}
+
+
+/**
+ * (int) The threshold until when a year should be assumed to belong to the
+ * 21st century (e.g. 12 -> 2012). Years over this threshold but below 100 will be
+ * assumed to belong to the 20th century (e.g. 88 -> 1988). Years over 100 will be
+ * used unchanged (e.g. 1792 -> 1792).
+ */
+qx.Class.ASSUME_YEAR_2000_THRESHOLD = 30;
+
+/** {string} The short date format. */
+qx.Class.SHORT_DATE_FORMAT = "MM/dd/yyyy";
+
+/** {string} The medium date format. */
+qx.Class.MEDIUM_DATE_FORMAT = "MMM dd, yyyy";
+
+/** {string} The long date format. */
+qx.Class.LONG_DATE_FORMAT = "MMMM dd, yyyy";
+
+/** {string} The full date format. */
+qx.Class.FULL_DATE_FORMAT = "EEEE, MMMM dd, yyyy";
+
+/** {string} The short time format. */
+qx.Class.SHORT_TIME_FORMAT = "HH:mm";
+
+/** {string} The medium time format. */
+qx.Class.MEDIUM_TIME_FORMAT = qx.util.format.DateFormat.SHORT_TIME_FORMAT;
+
+/** {string} The long time format. */
+qx.Class.LONG_TIME_FORMAT = "HH:mm:ss";
+
+/** {string} The full time format. */
+qx.Class.FULL_TIME_FORMAT = "HH:mm:ss zz";
+
+/** {string} The short date-time format. */
+qx.Class.SHORT_DATE_TIME_FORMAT
+  = qx.util.format.DateFormat.SHORT_DATE_FORMAT + " "
+  + qx.util.format.DateFormat.SHORT_TIME_FORMAT;
+
+/** {string} The medium date-time format. */
+qx.Class.MEDIUM_DATE_TIME_FORMAT
+  = qx.util.format.DateFormat.MEDIUM_DATE_FORMAT + " "
+  + qx.util.format.DateFormat.MEDIUM_TIME_FORMAT;
+
+/** {string} The long date-time format. */
+qx.Class.LONG_DATE_TIME_FORMAT
+  = qx.util.format.DateFormat.LONG_DATE_FORMAT + " "
+  + qx.util.format.DateFormat.LONG_TIME_FORMAT;
+
+/** {string} The full date-time format. */
+qx.Class.FULL_DATE_TIME_FORMAT
+  = qx.util.format.DateFormat.FULL_DATE_FORMAT + " "
+  + qx.util.format.DateFormat.FULL_TIME_FORMAT;
+
+
+/** {string} The date format used for logging. */
+qx.Class.LOGGING_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
+
+/** {string}  The default date/time format. */
+qx.Class.DEFAULT_DATE_TIME_FORMAT = qx.util.format.DateFormat.LOGGING_DATE_TIME_FORMAT;
+
+/** {string}  The default date format. */
+qx.Class.DEFAULT_DATE_FORMAT = qx.util.format.DateFormat.SHORT_DATE_FORMAT;
+
+/** {string} The am marker. */
+qx.Class.AM_MARKER = "am";
+
+/** {string} The pm marker. */
+qx.Class.PM_MARKER = "pm";
+
+/** {string[]} The full month names. */
+qx.Class.FULL_MONTH_NAMES = [
+  "January", "February", "March", "April", "May", "June",
+  "July", "August", "September", "October", "November", "December"
+];
+
+/** {string[]} The short month names. */
+qx.Class.SHORT_MONTH_NAMES = [
+  "Jan", "Feb", "Mar", "Apr", "Mai", "Jun",
+  "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+];
+
+/** {string[]} The short (two letter) day of week names. */
+qx.Class.SHORT_DAY_OF_WEEK_NAMES = [
+  "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"
+];
+
+/** {string[]} The medium (three letter) day of week names. */
+qx.Class.MEDIUM_DAY_OF_WEEK_NAMES = [
+  "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
+];
+
+/** {string[]} The full day of week names. */
+qx.Class.FULL_DAY_OF_WEEK_NAMES = [
+  "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
+];
+
+/** {string[]} The medium (three letter) timezone names. */
+qx.Class.MEDIUM_TIMEZONE_NAMES = [
+  "GMT" // TODO: fill up
+];
+
+/** {string[]} The full timezone names. */
+qx.Class.FULL_TIMEZONE_NAMES = [
+  "Greenwich Mean Time" // TODO: fill up
+];
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/format/Format.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/format/Format.js
new file mode 100644 (file)
index 0000000..463d2b3
--- /dev/null
@@ -0,0 +1,51 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+/**
+ * Superclass for formatters and parsers.
+ */
+qx.OO.defineClass("qx.util.format.Format", qx.core.Object,
+function() {
+  qx.core.Object.call(this);
+});
+
+
+/**
+ * Formats an object.
+ *
+ * @param obj {var} The object to format.
+ * @return {string} the formatted object.
+ */
+qx.Proto.format = function(obj) {
+  throw new Error("format is abstract");
+}
+
+
+/**
+ * Parses an object.
+ *
+ * @param str {string} the string to parse.
+ * @return {var} the parsed object.
+ */
+qx.Proto.parse = function(str) {
+  throw new Error("parse is abstract");
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/format/NumberFormat.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/format/NumberFormat.js
new file mode 100644 (file)
index 0000000..2b3f2c9
--- /dev/null
@@ -0,0 +1,216 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by STZ-IDA, Germany, http://www.stz-ida.de
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Til Schneider (til132)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+/**
+ * A formatter and parser for numbers.
+ */
+qx.OO.defineClass("qx.util.format.NumberFormat", qx.util.format.Format,
+function() {
+  qx.util.format.Format.call(this);
+});
+
+
+/**
+ * The minimum number of integer digits (digits before the decimal separator).
+ * Missing digits will be filled up with 0 ("19" -> "0019").
+ */
+qx.OO.addProperty({ name:"minimumIntegerDigits", type:"number", defaultValue:0, allowNull:false });
+
+/**
+ * The maximum number of integer digits (superfluos digits will be cut off
+ * ("1923" -> "23").
+ */
+qx.OO.addProperty({ name:"maximumIntegerDigits", type:"number", defaultValue:null });
+
+/**
+ * The minimum number of fraction digits (digits after the decimal separator).
+ * Missing digits will be filled up with 0 ("1.5" -> "1.500")
+ */
+qx.OO.addProperty({ name:"minimumFractionDigits", type:"number", defaultValue:0, allowNull:false });
+
+/**
+ * The maximum number of fraction digits (digits after the decimal separator).
+ * Superflous digits will cause rounding ("1.8277" -> "1.83")
+ */
+qx.OO.addProperty({ name:"maximumFractionDigits", type:"number", defaultValue:null });
+
+/** Whether thousand groupings should be used {e.g. "1,432,234.65"}. */
+qx.OO.addProperty({ name:"groupingUsed", type:"boolean", defaultValue:true, allowNull:false });
+
+/** The prefix to put before the number {"EUR " -> "EUR 12.31"}. */
+qx.OO.addProperty({ name:"prefix", type:"string", defaultValue:"", allowNull:false });
+
+/** Sets the postfix to put after the number {" %" -> "56.13 %"}. */
+qx.OO.addProperty({ name:"postfix", type:"string", defaultValue:"", allowNull:false });
+
+
+/**
+ * Formats a number.
+ *
+ * @param num {number} the number to format.
+ * @return {string} the formatted number as a string.
+ */
+qx.Proto.format = function(num) {
+  var NumberFormat = qx.util.format.NumberFormat;
+
+  var negative = (num < 0);
+  if (negative) {
+    num = -num;
+  }
+  if (this.getMaximumFractionDigits() != null) {
+    // Do the rounding
+    var mover = Math.pow(10, this.getMaximumFractionDigits());
+    num = Math.round(num * mover) / mover;
+  }
+
+  if (num != 0) { // Math.log(0) = -Infinity
+    var integerDigits = Math.max(parseInt(Math.log(num) / Math.LN10) + 1, 1);
+  } else {
+    integerDigits = 1;
+  }
+
+  var numStr = "" + num;
+
+  // Prepare the integer part
+  var integerStr = numStr.substring(0, integerDigits);
+  while (integerStr.length < this.getMinimumIntegerDigits()) {
+    integerStr = "0" + integerStr;
+  }
+  if (this.getMaximumIntegerDigits() != null && integerStr.length > this.getMaximumIntegerDigits()) {
+    // NOTE: We cut off even though we did rounding before, because there
+    //     may be rounding errors ("12.24000000000001" -> "12.24")
+    integerStr = integerStr.substring(integerStr.length - this.getMaximumIntegerDigits());
+  }
+
+  // Prepare the fraction part
+  var fractionStr = numStr.substring(integerDigits + 1);
+  while (fractionStr.length < this.getMinimumFractionDigits()) {
+    fractionStr += "0";
+  }
+  if (this.getMaximumFractionDigits() != -1 && fractionStr.length > this.getMaximumFractionDigits()) {
+    // We have already rounded -> Just cut off the rest
+    fractionStr = fractionStr.substring(0, this.getMaximumFractionDigits());
+  }
+
+  // Add the thousand groupings
+  if (this.getGroupingUsed()) {
+    var origIntegerStr = integerStr;
+    integerStr = "";
+    var groupPos;
+    for (groupPos = origIntegerStr.length; groupPos > 3; groupPos -= 3) {
+      integerStr = NumberFormat.GROUPING_SEPARATOR
+        + origIntegerStr.substring(groupPos - 3, groupPos) + integerStr;
+    }
+    integerStr = origIntegerStr.substring(0, groupPos) + integerStr;
+  }
+
+  // Workaround: prefix and postfix are null even their defaultValue is "" and
+  //             allowNull is set to false?!?
+  var prefix  = this.getPrefix()  ? this.getPrefix()  : "";
+  var postfix = this.getPostfix() ? this.getPostfix() : "";
+
+  // Assemble the number
+  var str = prefix + (negative ? "-" : "") + integerStr;
+  if (fractionStr.length > 0) {
+    str += NumberFormat.DECIMAL_SEPARATOR + fractionStr;
+  }
+  str += postfix;
+
+  return str;
+}
+
+
+/**
+ * Parses a number.
+ *
+ * @param str {string} the string to parse.
+ *
+ * @return {double} the number.
+ */
+qx.Proto.parse = function(str) {
+  var NumberFormat = qx.util.format.NumberFormat;
+
+  // use the escaped separators for regexp
+  var groupSepEsc = qx.lang.String.escapeRegexpChars(NumberFormat.GROUPING_SEPARATOR);
+  var decimalSepEsc = qx.lang.String.escapeRegexpChars(NumberFormat.DECIMAL_SEPARATOR);
+
+  var regex = new RegExp(qx.lang.String.escapeRegexpChars(this.getPrefix())
+    + '(-)?([0-9' + groupSepEsc + ']+)'
+    + '(' + decimalSepEsc + '\\d+)?'
+    + qx.lang.String.escapeRegexpChars(this.getPostfix()));
+
+  var hit = regex.exec(str);
+  if (hit == null) {
+    throw new Error("Number string '" + str + "' does not match the number format");
+  }
+
+  var negative = (hit[1] == "-");
+  var integerStr = hit[2];
+  var fractionStr = hit[3];
+
+  // Remove the thousand groupings
+  integerStr = integerStr.replace(new RegExp(groupSepEsc), "");
+
+  var asStr = (negative ? "-" : "") + integerStr;
+  if (fractionStr != null && fractionStr.length != 0) {
+    // Remove the leading decimal separator from the fractions string
+    fractionStr = fractionStr.replace(new RegExp(decimalSepEsc),"");
+    asStr += "." + fractionStr;
+  }
+  return parseFloat(asStr);
+}
+
+
+/**
+ * Returns the default number format.
+ *
+ * @return {NumberFormat} the default number format.
+ */
+qx.Class.getInstance = function() {
+  var NumberFormat = qx.util.format.NumberFormat;
+  if (NumberFormat._instance == null) {
+    NumberFormat._instance = new NumberFormat();
+  }
+  return NumberFormat._instance;
+}
+
+
+/**
+ * Returns an integer number format.
+ *
+ * @return {NumberFormat} an integer number format.
+ */
+qx.Class.getIntegerInstance = function() {
+  var NumberFormat = qx.util.format.NumberFormat;
+  if (NumberFormat._integerInstance == null) {
+    NumberFormat._integerInstance = new NumberFormat();
+    NumberFormat._integerInstance.setMaximumFractionDigits(0);
+  }
+  return NumberFormat._integerInstance;
+}
+
+
+/** {string} The decimal separator. */
+qx.Class.DECIMAL_SEPARATOR = ".";
+
+/** {string} The thousand grouping separator. */
+qx.Class.GROUPING_SEPARATOR = ",";
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/fsm/FiniteStateMachine.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/fsm/FiniteStateMachine.js
new file mode 100644 (file)
index 0000000..e1a1605
--- /dev/null
@@ -0,0 +1,1189 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by Derrell Lipman
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Derrell Lipman (derrell)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(util_fsm)
+
+************************************************************************ */
+
+/**
+ * A finite state machine.
+ *
+ * See {@see qx.util.finitestatemacine.State} for details on creating States,
+ * and {@see qx.util.finitestatemacine.Transitions} for details on creating
+ * transitions between states.
+ *
+ * *EXPERIMENTAL*
+ * The interface to the finite state machine, states, and transitions is
+ * experimental.  It may change in non-backward-compatible ways as more
+ * experience is gained in its use.
+ *
+ * @param machineName {string} The name of this finite state machine
+ *
+ */
+qx.OO.defineClass("qx.util.fsm.FiniteStateMachine", qx.core.Target,
+function(machineName)
+{
+  // Call our superclass' constructor
+  qx.core.Target.call(this);
+
+  // Save the machine name
+  this.setName(machineName);
+
+  // Initialize the states object
+  this._states = { };
+
+  // Initialize the saved-states stack
+  this._savedStates = [ ];
+
+  // Initialize the pending event queue
+  this._eventQueue = [ ];
+
+  // Initialize the blocked events queue
+  this._blockedEvents = [ ];
+
+  // Create the friendlyToObject" object.  Each object has as its property
+  // name, the friendly name of the object; and as its property value, the
+  // object itself.
+  this._friendlyToObject = { };
+
+  // Create the "friendlyToHash" object.  Each object has as its property
+  // name, the friendly name of the object; and as its property value, the
+  // hash code of the object.
+  this._friendlyToHash = { };
+
+  // Create the "hashToFriendly" object.  Each object has as its property
+  // name, the hash code of the object; and as its property value, the
+  // friendly name of the object.
+  this._hashToFriendly = { };
+
+  // Friendly names can be added to groups, for easy manipulation of enabling
+  // and disabling groups of widgets.  Track which friendly names are in which
+  // group.
+  this._groupToFriendly = { };
+
+  // We also need to be able to map back from friendly name to the groups it
+  // is in.
+  this._friendlyToGroups = { };
+});
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/**
+ * The name of this finite state machine (for debug messages)
+ */
+qx.OO.addProperty(
+  {
+    name         : "name",
+    type         : "string"
+  });
+
+/**
+ * The current state of the finite state machine.
+ */
+qx.OO.addProperty(
+  {
+    name         : "state",
+    type         : "string"
+  });
+
+/**
+ * The previous state of the finite state machine, i.e. the state from which
+ * we most recently transitioned.  Note that this could be the same as the
+ * current state if a successful transition brought us back to the same
+ * state.
+ */
+qx.OO.addProperty(
+  {
+    name         : "previousState",
+    type         : "string"
+  });
+
+/**
+ * The state to which we will be transitioning.  This property is valid only
+ * during a Transition's ontransition function and a State's onexit function.
+ * At all other times, it is null.
+ */
+qx.OO.addProperty(
+  {
+    name         : "nextState",
+    type         : "string"
+  });
+
+
+/**
+ * The maximum number of states which may pushed onto the state-stack.  It is
+ * generally a poor idea to have very many states saved on a stack.  Following
+ * program logic becomes very difficult, and the code can be highly
+ * unmaintainable.  The default should be more than adequate.  You've been
+ * warned.
+ */
+qx.OO.addProperty(
+  {
+    name         : "maxSavedStates",
+    type         : "number",
+    defaultValue : 5
+  });
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+
+/**
+ * Add a state to the finite state machine.
+ *
+ * @param state {qx.util.fsm.State}
+ *   An object of class qx.util.fsm.State representing a state
+ *   which is to be a part of this finite state machine.
+ */
+qx.Proto.addState = function(state)
+{
+  // Ensure that we got valid state info
+  if (! state instanceof qx.util.fsm.State)
+  {
+    throw new Error("Invalid state: not an instance of " +
+                    "qx.util.fsm.State");
+  }
+
+  // Retrieve the name of this state
+  var stateName = state.getName();
+
+  // Ensure that the state name doesn't already exist
+  if (stateName in this._states)
+  {
+    throw new Error("State " + state + " already exists");
+  }
+
+  // Add the new state object to the finite state machine
+  this._states[stateName] = state;
+};
+
+
+/**
+ * Add an object (typically a widget) that is to be accessed during state
+ * transitions, to the finite state machine.
+ *
+ * @param friendlyName {string}
+ *   The friendly name to used for access to the object being added.
+ *
+ * @param obj {Object}
+ *   The object to associate with the specified friendly name
+ *
+ * @param groupNames {Array}
+ *   An optional list of group names of which this object is a member.
+ */
+qx.Proto.addObject = function(friendlyName, obj, groupNames)
+{
+  var hash = obj.toHashCode();
+  this._friendlyToHash[friendlyName] = hash;
+  this._hashToFriendly[hash] = friendlyName;
+  this._friendlyToObject[friendlyName] = obj;
+
+  // If no groupNames are specified, we're done.
+  if (! groupNames)
+  {
+    return;
+  }
+
+  // Allow either a single group name or an array of group names.  If the
+  // former, we convert it to the latter to make the subsequent code simpler.
+  if (typeof(groupNames) == "string")
+  {
+    groupNames = [ groupNames ];
+  }
+
+  // For each group that this friendly name is to be a member of...
+  for (var i = 0; i < groupNames.length; i++)
+  {
+    var groupName = groupNames[i];
+
+    // If the group name doesn't yet exist...
+    if (! this._groupToFriendly[groupName])
+    {
+      // ... then create it.
+      this._groupToFriendly[groupName] = { };
+    }
+
+    // Add the friendly name to the list of names in this group
+    this._groupToFriendly[groupName][friendlyName] = true;
+
+    // If the friendly name group mapping doesn't yet exist...
+    if (! this._friendlyToGroups[friendlyName])
+    {
+      // ... then create it.
+      this._friendlyToGroups[friendlyName] = [ ];
+    }
+
+    // Append this group name to the list of groups this friendly name is in
+    this._friendlyToGroups[friendlyName] =
+      this._friendlyToGroups[friendlyName].concat(groupNames);
+  }
+};
+
+
+/**
+ * Remove an object which had previously been added by {@see #addObject}.
+ *
+ * @param friendlyName {string}
+ *   The friendly name associated with an object, specifying which object is
+ *   to be removed.
+ */
+qx.Proto.removeObject = function(friendlyName)
+{
+  var hash = this._friendlyToHash[friendlyName];
+
+  // Delete references to any groupos this friendly name was in
+  if (this._friendlyToGroups[friendlyName])
+  {
+    for (groupName in this._friendlyToGroups[friendlyName])
+    {
+      delete this._groupToFriendly[groupName];
+    }
+
+    delete this._friendlyToGroups[friendlyName];
+  }
+
+  // Delete the friendly name
+  delete this._hashToFriendly[hash];
+  delete this._friendlyToHash[friendlyName];
+  delete this._friendlyToObject[friendlyName];
+};
+
+
+/**
+ * Retrieve an object previously saved via {@see #addObject}, using its
+ * Friendly Name.
+ *
+ * @param friendlyName {string}
+ *   The friendly name of the object to be retrieved.
+ *
+ * @return {Object}
+ *   The object which has the specified friendly name, or undefined if no
+ *   object has been associated with that name.
+ */
+qx.Proto.getObject = function(friendlyName)
+{
+  return this._friendlyToObject[friendlyName];
+};
+
+
+/**
+ * Get the friendly name of an object.
+ *
+ * @param obj {Object} The object for which the friendly name is desired
+ *
+ * @return {string}
+ *   If the object has been previously registered via {@see #addObject}, then
+ *   a reference to the object is returned; otherwise, null.
+ */
+qx.Proto.getFriendlyName = function(obj)
+{
+  var hash = obj.toHashCode();
+  return hash ? this.getObject(this._hashToFriendly[hash]) : null;
+};
+
+
+/**
+ * Retrieve the list of objects which have registered, via {@see addObject} as
+ * being members of the specified group.
+ *
+ * @param groupName {string}
+ *   The name of the group for which the member list is desired.
+ *
+ * @return {Array}
+ *   An array containing the friendly names of any objects which are members
+ *   of the specified group.  The resultant array may be empty.
+ */
+qx.Proto.getGroupObjects = function(groupName)
+{
+  var a = [ ];
+
+  for (var name in this._groupToFriendly[groupName])
+  {
+    a.push(name);
+  }
+
+  return a;
+};
+
+/**
+ * Start (or restart, after it has terminated) the finite state machine from
+ * the starting state.  The starting state is defined as the first state added
+ * to the finite state machine.
+ */
+qx.Proto.start = function()
+{
+  var stateName;
+
+  // Set the start state to be the first state which was added to the machine
+  for (stateName in this._states)
+  {
+    this.setState(stateName);
+    this.setPreviousState(null);
+    this.setNextState(null);
+    break;
+  }
+
+  if (! stateName)
+  {
+    throw new Error("Machine started with no available states");
+  }
+
+  var debugFunctions =
+    (qx.Settings.getValueOfClass("qx.util.fsm.FiniteStateMachine",
+                                 "debugFlags") &
+     qx.util.fsm.FiniteStateMachine.DebugFlags.FUNCTION_DETAIL);
+
+  // Run the actionsBeforeOnentry actions for the initial state
+  if (debugFunctions)
+  {
+    this.debug(this.getName() + "#" + stateName + "#actionsBeforeOnentry");
+  }
+  this._states[stateName].getAutoActionsBeforeOnentry()(this);
+
+  // Run the entry function for the new state, if one is specified
+  if (debugFunctions)
+  {
+    this.debug(this.getName() + "#" + stateName + "#entry");
+  }
+  this._states[stateName].getOnentry()(this, null);
+
+  // Run the actionsAfterOnentry actions for the initial state
+  if (debugFunctions)
+  {
+    this.debug(this.getName() + "#" + stateName + "#actionsAfterOnentry");
+  }
+  this._states[stateName].getAutoActionsAfterOnentry()(this);
+
+};
+
+
+/**
+ * Save the current state on the saved-state stack.  A future transition can
+ * then provide, as its nextState value, the class constant:
+ *
+ *   qx.util.fsm.FiniteStateMachine.StateChange.POP_STATE_STACK
+ *
+ * which will cause the next state to be whatever is at the top of the
+ * saved-state stack, and remove that top element from the saved-state stack.
+ */
+qx.Proto.pushState = function()
+{
+  // See if there's room on the state stack for a new state
+  if (this.getMaxSavedStates() >= this._savedStates.length)
+  {
+    // Nope.  Programmer error.
+    throw new Error("Saved-state stack is full");
+  }
+
+  // Push the current state onto the saved-state stack
+  this._savedStates.push(this.getState());
+};
+
+
+/**
+ * Add the specified event to a list of events to be passed to the next state
+ * following state transition.
+ *
+ * @param event {qx.event.type.Event}
+ *   The event to add to the event queue for processing after state change.
+ */
+qx.Proto.postponeEvent = function(event)
+{
+  // Add this event to the blocked event queue, so it will be passed to the
+  // next state upon transition.
+  this._blockedEvents.unshift(event);
+};
+
+
+/**
+ * Event listener for all event types in the finite state machine
+ *
+ * @param event {qx.event.type.Event}
+ *   The event that was dispatched.
+ */
+qx.Proto.eventListener = function(event)
+{
+  // Events are enqueued upon receipt.  Some events are then processed
+  // immediately; other events get processed later.  We need to allow the
+  // event dispatcher to free the source event upon our return, so we'll clone
+  // it and enqueue our clone.  The source event can then be disposed upon our
+  // return.
+  var e = { };
+  for (var prop in event)
+  {
+    e[prop] = event[prop];
+  }
+
+  // Add the event to the event queue
+  this._eventQueue.unshift(e);
+
+  if (qx.Settings.getValueOfClass("qx.util.fsm.FiniteStateMachine",
+                                  "debugFlags") &
+      qx.util.fsm.FiniteStateMachine.DebugFlags.EVENTS)
+  {
+    this.debug(this.getName() + ": Queued event: " + e.getType());
+  }
+
+  // Process events
+  this._processEvents();
+};
+
+
+/**
+ * Process all of the events on the event queue.
+ */
+qx.Proto._processEvents = function()
+{
+  // eventListener() can potentially be called while we're processing events
+  if (this._eventProcessingInProgress)
+  {
+    // We were processing already, so don't process concurrently.
+    return;
+  }
+
+  // Track that we're processing events
+  this._eventProcessingInProgress = true;
+
+  // Process each of the events on the event queue
+  while (this._eventQueue.length > 0)
+  {
+    // Pull the next event from the pending event queue
+    var event = this._eventQueue.pop();
+
+    // Run the finite state machine with this event
+    this._run(event);
+
+    // We can now dispose the event
+    event.dispose();
+  }
+
+  // We're no longer processing events
+  this._eventProcessingInProgress = false;
+};
+
+/**
+ * Run the finite state machine to process a single event.
+ *
+ * @param event {qx.event.type.Event}
+ *   An event that has been dispatched.  The event may be handled (if the
+ *   current state handles this event type), queued (if the current state
+ *   blocks this event type), or discarded (if the current state neither
+ *   handles nor blocks this event type).
+ */
+qx.Proto._run = function(event)
+{
+  // For use in generated functions...
+  var fsm = this;
+
+  // State name variables
+  var thisState;
+  var nextState;
+  var prevState;
+
+  // The current State object
+  var currentState;
+
+  // The transitions available in the current State
+  var transitions;
+
+  // Events handled by the current State
+  var e;
+
+  // The action to take place upon receipt of a particular event
+  var action;
+
+  // Get the debug flags
+  var debugFlags =
+    (qx.Settings.getValueOfClass("qx.util.fsm.FiniteStateMachine",
+                                 "debugFlags"));
+
+  // Allow slightly faster access to determine if debug is enableda
+  var debugEvents =
+     debugFlags & qx.util.fsm.FiniteStateMachine.DebugFlags.EVENTS;
+  var debugTransitions =
+    debugFlags & qx.util.fsm.FiniteStateMachine.DebugFlags.TRANSITIONS;
+  var debugFunctions =
+     debugFlags & qx.util.fsm.FiniteStateMachine.DebugFlags.FUNCTION_DETAIL;
+  var debugObjectNotFound =
+     debugFlags & qx.util.fsm.FiniteStateMachine.DebugFlags.OBJECT_NOT_FOUND;
+
+  if (debugEvents)
+  {
+    this.debug(this.getName() + ": Process event: " + event.getType());
+  }
+
+  // Get the current state name
+  thisState = this.getState();
+
+  // Get the current State object
+  currentState = this._states[thisState];
+
+  // Get a list of the transitions available from this state
+  transitions = currentState.transitions;
+
+  // Determine how to handle this event
+  e = currentState.getEvents()[event.getType()];
+
+  // See if we actually found this event type
+  if (! e)
+  {
+    if (this.debugEvents)
+    {
+      this.debug(this.getName() + ": Event '" + event.getType() + "'" +
+                 " not handled.  Ignoring.");
+    }
+    return;
+  }
+
+
+  // We might have found a constant (PREDICATE or BLOCKED) or an object with
+  // each property name being the friendly name of a saved object, and the
+  // property value being one of the constants (PREDICATE or BLOCKED).
+  if (typeof(e) == "object")
+  {
+    // Individual objects are listed.  Ensure target is a saved object
+    var friendly = this.getFriendlyName(event.getTarget());
+    if (! friendly)
+    {
+      // Nope, it doesn't seem so.  Just discard it.
+      if (debugObjectNotFound)
+      {
+        this.debug(this.getName() + ": Could not find friendly name for '" +
+                   event.getType() + "' on '" + event.getTarget() + "'");
+      }
+      return;
+    }
+
+    action = e[friendly];
+  }
+  else
+  {
+    action = e;
+  }
+
+  switch(action)
+  {
+    case qx.util.fsm.FiniteStateMachine.EventHandling.PREDICATE:
+      // Process this event.  One of the transitions should handle it.
+      break;
+
+    case qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED:
+      // This event is blocked.  Enqueue it for later, and get outta here.
+      this._blockedEvents.unshift(event);
+      return;
+
+    default:
+      // See if we've been given an explicit transition name
+      if (typeof(action) == "string")
+      {
+        // Yup!  Ensure that it exists
+        if (transitions[action])
+        {
+          // Yup.  Create a transitions object containing only this transition.
+          var trans = transitions[action];
+          transitions = {  };
+          transitions[action] = trans;
+        }
+        else
+        {
+          throw new Error("Explicit transition " + action + " does not exist");
+        }
+
+        break;
+      }
+  }
+
+  // We handle the event.  Try each transition in turn until we find one that
+  // is acceptable.
+  for (var t in transitions)
+  {
+    var trans = transitions[t];
+
+    // Does the predicate allow use of this transition?
+    switch(trans.getPredicate()(this, event))
+    {
+    case true:
+      // Transition is allowed.  Proceed.
+      break;
+
+    case false:
+      // Transition is not allowed.  Try next transition.
+      continue;
+
+    case null:
+      // Transition indicates not to try further transitions
+      return;
+
+    default:
+      throw new Error("Transition " + thisState + ":" + t +
+                      " returned a value other than true, false, or null.");
+      return;
+    }
+
+    // We think we can transition to the next state.  Set next state.
+    nextState = trans.getNextState();
+    if (typeof(nextState) == "string")
+    {
+      // We found a literal state name.  Ensure it exists.
+      if (! nextState in this._states)
+      {
+        throw new Error("Attempt to transition to nonexistent state " +
+                        nextState);
+      }
+
+      // It exists.  Track it being the next state.
+      this.setNextState(nextState);
+    }
+    else
+    {
+      // If it's not a string, nextState must be a StateChange constant
+      switch(nextState)
+      {
+      case qx.util.fsm.FiniteStateMachine.StateChange.CURRENT_STATE:
+        // They want to remain in the same state.
+        nextState = thisState;
+        this.setNextState(nextState)
+        break;
+
+      case qx.util.fsm.FiniteStateMachine.StateChange.POP_STATE_STACK:
+        // Switch to the state at the top of the state stack.
+        if (this._stateStack.length == 0)
+        {
+          throw new Error("Attempt to transition to POP_STATE_STACK " +
+                          "while state stack is empty.");
+        }
+
+        // Pop the state stack to retrieve the state to transition to
+        nextState = this._stateStack.pop();
+        this.setNextState(nextState);
+        break;
+
+      default:
+        throw new Error("Internal error: invalid nextState");
+        break;
+      }
+    }
+
+    // Run the actionsBeforeOntransition actions for this transition
+    if (debugFunctions)
+    {
+      this.debug(this.getName() + "#" + thisState + "#" + t +
+                 "#autoActionsBeforeOntransition");
+    }
+    trans.getAutoActionsBeforeOntransition()(this);
+
+    // Run the 'ontransition' function
+    if (debugFunctions)
+    {
+      this.debug(this.getName() + "#" + thisState + "#" + t + "#ontransition");
+    }
+    trans.getOntransition()(this, event);
+
+    // Run the autoActionsAfterOntransition actions for this transition
+    if (debugFunctions)
+    {
+      this.debug(this.getName() + "#" + thisState + "#" + t +
+                 "#autoActionsAfterOntransition");
+    }
+    trans.getAutoActionsAfterOntransition()(this);
+
+    // Run the autoActionsBeforeOnexit actions for the old state
+    if (debugFunctions)
+    {
+      this.debug(this.getName() + "#" + thisState +
+                 "#autoActionsBeforeOnexit");
+    }
+    currentState.getAutoActionsBeforeOnexit()(this);
+
+    // Run the exit function for the old state
+    if (debugFunctions)
+    {
+      this.debug(this.getName() + "#" + thisState + "#exit");
+    }
+    currentState.getOnexit()(this, event);
+
+    // Run the autoActionsAfterOnexit actions for the old state
+    if (debugFunctions)
+    {
+      this.debug(this.getName() + "#" + thisState + "#autoActionsAfterOnexit");
+    }
+    currentState.getAutoActionsAfterOnentry()(this);
+
+    // Reset currentState to the new state object
+    currentState = this._states[this.getNextState()];
+
+    // set previousState and state, and clear nextState, for transition
+    this.setPreviousState(thisState);
+    this.setState(this.getNextState());
+    this.setNextState(null);
+    prevState = thisState;
+    thisState = nextState;
+    nextState = undefined;
+
+    // Run the autoActionsBeforeOnentry actions for the new state
+    if (debugFunctions)
+    {
+      this.debug(this.getName() + "#" + thisState +
+                 "#autoActionsBeforeOnentry");
+    }
+    currentState.getAutoActionsBeforeOnentry()(this);
+
+    // Run the entry function for the new state, if one is specified
+    if (debugFunctions)
+    {
+      this.debug(this.getName() + "#" + thisState + "#entry");
+    }
+    currentState.getOnentry()(this, event);
+
+    // Run the autoActionsAfterOnentry actions for the new state
+    if (debugFunctions)
+    {
+      this.debug(this.getName() + "#" + thisState +
+                 "#autoActionsAfterOnentry");
+    }
+    currentState.getAutoActionsAfterOnentry()(this);
+
+    // Add the blocked events to the pending event queue
+    if (this._blockedEvents.length > 0)
+    {
+      this._eventQueue.unshift(this._blockedEvents);
+    }
+
+    // The blocked event list is now empty
+    this._blockedEvents = [ ];
+
+    // Ensure that all actions have been flushed
+    qx.ui.core.Widget.flushGlobalQueues();
+
+    if (debugTransitions)
+    {
+      this.debug(this.getName() + "#" + prevState + " => " +
+                 this.getName() + "#" + thisState);
+    }
+
+    // See ya!
+    return;
+  }
+
+  if (debugTransitions)
+  {
+    this.debug(this.getName() + "#" + thisState +
+               ": event '" + event.getType() + "'" +
+               ": no transition found.  No state change.");
+  }
+};
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT LISTENERS
+---------------------------------------------------------------------------
+*/
+
+
+
+/*
+---------------------------------------------------------------------------
+  CLASS CONSTANTS
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Constants which may be values of the nextState member in the transitionInfo
+ * parameter of the Transition constructor.
+ */
+qx.Class.StateChange =
+{
+  /** When used as a nextState value, means remain in current state */
+  CURRENT_STATE   : 1,
+
+  /** When used as a nextState value, means go to most-recently pushed state */
+  POP_STATE_STACK : 2,
+
+  /** When used as a nextState value, means terminate this state machine */
+  TERMINATE       : 3
+};
+
+
+/**
+ * Constants for use in the events member of the transitionInfo parameter of
+ * the Transition constructor.
+ */
+qx.Class.EventHandling =
+{
+  /**
+   * This event is handled by this state, but the predicate of a transition
+   * will determine whether to use that transition.
+   */
+  PREDICATE : 1,
+
+  /** Enqueue this event for possible use by the next state */
+  BLOCKED   : 2
+};
+
+/**
+ * Debug bitmask values.  Set the debug flags from the application by or-ing
+ * together bits, akin to this:
+ *
+ *   qx.Settings.setCustomOfClass(
+ *     "qx.util.fsm.FiniteStateMachine",
+ *     "debugFlags",
+ *     (qx.util.fsm.FiniteStateMachine.DebugFlags.EVENTS |
+ *      qx.util.fsm.FiniteStateMachine.DebugFlags.TRANSITIONS |
+ *      qx.util.fsm.FiniteStateMachine.DebugFlags.FUNCTION_DETAIL |
+ *      qx.util.fsm.FiniteStateMachine.DebugFlags.OBJECT_NOT_FOUND));
+ */
+qx.Class.DebugFlags =
+{
+  /** Show events */
+  EVENTS           : 1,
+
+  /** Show transitions */
+  TRANSITIONS      : 2,
+
+  /** Show individual function invocations during transitions */
+  FUNCTION_DETAIL  : 4,
+
+  /** When object friendly names are referenced but not found, show message */
+  OBJECT_NOT_FOUND : 8
+};
+
+
+/*
+---------------------------------------------------------------------------
+  CLASS DEFAULT SETTINGS
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Debug flags: bitmap of DebugFlags (see Class Constants).
+ */
+qx.Settings.setDefault(
+  "debugFlags",
+  (qx.util.fsm.FiniteStateMachine.DebugFlags.EVENTS |
+   qx.util.fsm.FiniteStateMachine.DebugFlags.TRANSITIONS |
+   qx.util.fsm.FiniteStateMachine.DebugFlags.OBJECT_NOT_FOUND));
+
+
+/*
+---------------------------------------------------------------------------
+  CLASS FUNCTIONS
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Common function used by {qx.util.fsm.State} and
+ * {qx.util.fsm.Transition} for checking the value provided for
+ * auto actions.
+ *
+ * Auto-action property values passed to us look akin to:
+ *
+ *     <pre>
+ *     {
+ *       // The name of a function.
+ *       "setEnabled" :
+ *       [
+ *         {
+ *           // The parameter value(s), thus "setEnabled(true);"
+ *           "parameters"   : [ true ],
+ *
+ *           // The function would be called on each object:
+ *           //  this.getObject("obj1").setEnabled(true);
+ *           //  this.getObject("obj2").setEnabled(true);
+ *           "objects" : [ "obj1", "obj2" ]
+ *
+ *           // And similarly for each object in each specified group.
+ *           "groups"  : [ "group1", "group2" ],
+ *         }
+ *       ];
+ *
+ *       "setColor" :
+ *       [
+ *         {
+ *           "parameters" : [ "blue" ]
+ *           "groups"     : [ "group3", "group4" ],
+ *           "objects"    : [ "obj3", "obj4" ]
+ *         }
+ *       ];
+ *     };
+ *     </pre>
+ *
+ * @param actionType {string}
+ *   The name of the action being validated (for debug messages)
+ *
+ * @param propValue {Object}
+ *   The property value which is being validated
+ *
+ * @param propData
+ *   Not used
+ */
+qx.Class._commonCheckAutoActions = function(actionType, propValue, propData)
+{
+  // Validate that we received an object property value
+  if (typeof(propValue) != "object")
+  {
+    throw new Error("Invalid " + actionType + " value: " + typeof(propValue));
+  }
+
+  // We'll create a function to do the requested actions.  Initialize the
+  // string into which we'll generate the common fragment added to the
+  // function for each object.
+  var funcFragment;
+
+  // Here, we'll keep the function body.  Initialize a try block.
+  var func =
+    "try" +
+    "{";
+
+  var param;
+  var objectAndGroupList;
+
+  // Retrieve the function request, e.g.
+  // "enabled" :
+  for (var f in propValue)
+  {
+    // Get the function request value object, e.g.
+    // "setEnabled" :
+    // [
+    //   {
+    //     "parameters"   : [ true ],
+    //     "objects" : [ "obj1", "obj2" ]
+    //     "groups"  : [ "group1", "group2" ],
+    //   }
+    // ];
+    var functionRequest = propValue[f];
+
+    // The function request value should be an object
+    if (! functionRequest instanceof Array)
+    {
+      throw new Error("Invalid function request type: " +
+                      "expected array, found " + typeof(functionRequest));
+    }
+
+    // For each function request...
+    for (var i = 0; i < functionRequest.length; i++)
+    {
+      // Retreive the object and group list object
+      objectAndGroupList = functionRequest[i];
+
+      // The object and group list should be an object, e.g.
+      // {
+      //   "parameters"   : [ true ],
+      //   "objects" : [ "obj1", "obj2" ]
+      //   "groups"  : [ "group1", "group2" ],
+      // }
+      if (typeof(objectAndGroupList) != "object")
+      {
+        throw new Error("Invalid function request parameter type: " +
+                        "expected object, found " +
+                        typeof(functionRequest[param]));
+      }
+
+      // Retrieve the parameter list
+      params = objectAndGroupList["parameters"];
+
+      // If it didn't exist, ...
+      if (! params)
+      {
+        // ... use an empty array.
+        params = [ ];
+      }
+      else
+      {
+        // otherwise, ensure we got an array
+        if (! params instanceof Array)
+        {
+          throw new Error("Invalid function parameters: " +
+                          "expected array, found " + typeof(params));
+        }
+      }
+
+      // Create the function to call on each object.  The object on which the
+      // function is called will be prepended later.
+      funcFragment = f + "(";
+
+      // For each parameter...
+      for (var j = 0; j < params.length; j++)
+      {
+        // If this isn't the first parameter, add a separator
+        if (j != 0)
+        {
+          funcFragment += ",";
+        }
+
+        if (typeof(params[j]) == "function")
+        {
+          // If the parameter is a function, arrange for it to be called
+          // at run time.
+          funcFragment += "(" + params[j] + ")(fsm)";
+        }
+        else if (typeof(params[j]) == "string")
+        {
+          // If the parameter is a string, quote it.
+          funcFragment += '"' + params[j] + '"';
+        }
+        else
+        {
+          // Otherwise, just add the parameter's literal value
+          funcFragment += params[j];
+        }
+      }
+
+      // Complete the function call
+      funcFragment += ")";
+
+      // Get the "objects" list, e.g.
+      //   "objects" : [ "obj1", "obj2" ]
+      var a = objectAndGroupList["objects"];
+
+      // Was there an "objects" list?
+      if (! a)
+      {
+        // Nope.  Simplify code by creating an empty array.
+        a = [ ];
+      }
+      else if (! a instanceof Array)
+      {
+        throw new Error("Invalid 'objects' list: expected array, got " +
+                        typeof(a));
+      }
+
+      for (var j = 0; j < a.length; j++)
+      {
+        // Ensure we got a string
+        if (typeof(a[j]) != "string")
+        {
+          throw new Error("Invalid friendly name in 'objects' list: " + a[j]);
+        }
+
+        func += " fsm.getObject('" + a[j] + "')." + funcFragment + ";";
+      }
+
+      // Get the "groups" list, e.g.
+      //   "groups" : [ "group1, "group2" ]
+      var g = objectAndGroupList["groups"];
+
+      // Was a "groups" list found?
+      if (g)
+      {
+        // Yup.  Ensure it's an array.
+        if (! g instanceof Array)
+        {
+          throw new Error("Invalid 'groups' list: expected array, got " +
+                          typeof(g));
+        }
+
+        for (var groupName in g)
+        {
+          // Arrange to call the function on each object in each group
+          func +=
+            "  var groupObjects = " +
+            "    fsm.getGroupObjects('" + g[groupName] + "');" +
+            "  for (var i = 0; i < groupObjects.length; i++)" +
+            "  {" +
+            "    var objName = groupObjects[i];" +
+            "    fsm.getObject(objName)." + funcFragment + ";" +
+            "  }";
+        }
+      }
+    }
+  }
+
+  // Terminate the try block for function invocations
+  func +=
+    "}" +
+    "catch(e)" +
+    "{" +
+    "  fsm.debug(e);" +
+    "}";
+
+//  o = new qx.core.Object();
+//  o.debug("Dynamically created " + actionType + "(fsm) { " + func + " }");
+
+  // We've now built the entire body of a function that implements calls to
+  // each of the requested automatic actions.  Create and return the function,
+  // which will become the property value.
+  return new Function("fsm", func);
+};
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  var e;
+  var s;
+
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  while (this._savedStates.length > 0)
+  {
+    s = this._savedStates.pop();
+    s = null;
+  }
+  this._savedStates = null;
+
+  while (this._eventQueue.length > 0)
+  {
+    e = this._eventQueue.pop();
+    e.dispose();
+    e = null;
+  }
+  this._eventQueue = null;
+
+  while (this._blockedEvents.length > 0)
+  {
+    e = this._blockedEvents.pop();
+    e.dispose();
+    e = null;
+  }
+
+  for (var s in this._states)
+  {
+    this._states[s].dispose();
+    this._states[s] = null;
+    delete this._states[s];
+  }
+  this._states = null;
+
+  return qx.core.Target.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/fsm/State.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/fsm/State.js
new file mode 100644 (file)
index 0000000..a61d27f
--- /dev/null
@@ -0,0 +1,613 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by Derrell Lipman
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Derrell Lipman (derrell)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(util_fsm)
+#require(qx.util.fsm.FiniteStateMachine)
+
+************************************************************************ */
+
+/**
+ * Create a new state which may be added to a finite state machine.
+ *
+ * *EXPERIMENTAL*
+ * The interface to the finite state machine, states, and transitions is
+ * experimental.  It may change in non-backward-compatible ways as more
+ * experience is gained in its use.
+ *
+ * @param
+ * stateName -
+ *   The name of this state.  This is the name which may be referenced in
+ *   objects of class qx.util.fsm.Transition, when passing of
+ *   the the transition's predicate means transition to this state.
+ *
+ * @param
+ * stateInfo -
+ *   An object containing any of the following properties:
+ *
+ *     onentry -
+ *       A function which is called upon entry to the state.  Its signature is
+ *       function(fsm, event) and it is saved in the onentry property of the
+ *       state object.  (This function is called after the Transition's action
+ *       function and after the previous state's onexit function.)
+ *
+ *       In the onentry function:
+ *
+ *         fsm -
+ *           The finite state machine object to which this state is attached.
+ *
+ *         event -
+ *           The event that caused the finite state machine to run
+ *
+ *     onexit -
+ *       A function which is called upon exit from the state.  Its signature
+ *       is function(fsm, event) and it is saved in the onexit property of the
+ *       state object.  (This function is called after the Transition's action
+ *       function and before the next state's onentry function.)
+ *
+ *       In the onexit function:
+ *
+ *         fsm -
+ *           The finite state machine object to which this state is attached.
+ *
+ *         event -
+ *           The event that caused the finite state machine to run
+ *
+ *     autoActionsBeforeOnentry -
+ *     autoActionsAfterOnentry -
+ *     auutoActionsBeforeOnexit -
+ *     autoActionsAfterOnexit -
+ *       Automatic actions which take place at the time specified by the
+ *       property name.  In all cases, the action takes place immediately
+ *       before or after the specified function.
+ *
+ *       The property value for each of these properties is an object which
+ *       describes some number of functions to invoke on a set of specified
+ *       objects (typically widgets).
+ *
+ *       An example, using autoActionsBeforeOnentry, might look like this:
+ *
+ *       "autoActionsBeforeOnentry" :
+ *       {
+ *         // The name of a function.
+ *         "enabled" :
+ *         [
+ *           {
+ *             // The parameter value, thus "setEnabled(true);"
+ *             "parameters" : [ true ],
+ *
+ *             // The function would be called on each object:
+ *             //  this.getObject("obj1").setEnabled(true);
+ *             //  this.getObject("obj2").setEnabled(true);
+ *             "objects" : [ "obj1", "obj2" ],
+ *
+ *             // And similarly for each object in each specified group.
+ *             "groups"  : [ "group1", "group2" ]
+ *           }
+ *         ],
+ *
+ *         // The name of another function.
+ *         "visible" :
+ *         [
+ *           {
+ *             // The parameter value, thus "setEnabled(true);"
+ *             "parameters" : [ false ],
+ *
+ *             // The function would be called on each object and group, as
+ *             // described above.
+ *             "objects" : [ "obj3", "obj4" ],
+ *             "groups"  : [ "group3", "group4" ]
+ *           }
+ *         ]
+ *       };
+ *
+ *
+ *     events (required) -
+ *       A description to the finite state machine of how to handle a
+ *       particular event, optionally associated with a specific target object
+ *       on which the event was dispatched.  This should be an object
+ *       containing one property for each event which is either handled or
+ *       blocked.  The property name should be the event name.  The property
+ *       value should be one of:
+ *
+ *         (a) qx.util.fsm.FiniteStateMachine.EventHandling.PREDICATE
+ *
+ *         (b) qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED
+ *
+ *         (c) a string containing the name of an explicit Transition to use
+ *
+ *         (d) an object where each property name is the Friendly Name of an
+ *             object (meaning that this rule applies if both the event and
+ *             the event's target object's Friendly Name match), and its
+ *             property value is one of (a), (b) or (c), above.
+ *
+ *       This object is saved in the events property of the state object.
+ *
+ *     Additional properties may be provided in stateInfo.  They will not be
+ *     used by the finite state machine, but will be available via
+ *     this.getUserData("<propertyName>") during the state's onentry and
+ *     onexit functions.
+ */
+qx.OO.defineClass("qx.util.fsm.State", qx.core.Object,
+function(stateName, stateInfo)
+{
+  // Call our superclass' constructor
+  qx.core.Object.call(this, true);
+
+  // Save the state name
+  this.setName(stateName);
+
+  // Ensure they passed in an object
+  if (typeof(stateInfo) != "object")
+  {
+    throw new Error("State info must be an object");
+  }
+
+  // Save data from the stateInfo object
+  for (var field in stateInfo)
+  {
+    // If we find one of our properties, call its setter.
+    switch(field)
+    {
+    case "onentry":
+      this.setOnentry(stateInfo[field]);
+      break;
+
+    case "onexit":
+      this.setOnexit(stateInfo[field]);
+      break;
+
+    case "autoActionsBeforeOnentry":
+      this.setAutoActionsBeforeOnentry(stateInfo[field]);
+      break;
+
+    case "autoActionsAfterOnentry":
+      this.setAutoActionsAfterOnentry(stateInfo[field]);
+      break;
+
+    case "autoActionsBeforeOnexit":
+      this.setAutoActionsBeforeOnentry(stateInfo[field]);
+      break;
+
+    case "autoActionsBeforeOnexit":
+      this.setAutoActionsBeforeOnentry(stateInfo[field]);
+      break;
+
+    case "events":
+      this.setEvents(stateInfo[field]);
+      break;
+
+    default:
+      // Anything else is user-provided data for their own use.  Save it.
+      this.setUserData(field, stateInfo[field]);
+
+      // Log it in case it was a typo and they intended a built-in field
+      this.debug("State " + stateName + ": " +
+                 "Adding user-provided field to state: " + field);
+
+      break;
+    }
+  }
+
+
+  // Check for required but missing properties
+  if (! this.getEvents())
+  {
+    throw new Error("The events object must be provided in new state info");
+  }
+
+
+  // Initialize the transition list
+  this.transitions = { };
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/**
+ * The name of this state.  This name may be used as a Transition's nextState
+ * value, or an explicit next state in the 'events' handling list in a State.
+ */
+qx.OO.addProperty(
+  {
+    name         : "name",
+    type         : "string"
+  });
+
+/**
+ * The onentry function for this state.  This is documented in the
+ * constructor, and is typically provided through the constructor's stateInfo
+ * object, but it is also possible (but highly NOT recommended) to change this
+ * dynamically.
+ */
+qx.OO.addProperty(
+  {
+    name         : "onentry",
+    defaultValue : function(fsm, event) { }
+  });
+
+/**
+ * The onexit function for this state.  This is documented in the constructor,
+ * and is typically provided through the constructor's stateInfo object, but
+ * it is also possible (but highly NOT recommended) to change this
+ * dynamically.
+ */
+qx.OO.addProperty(
+  {
+    name         : "onexit",
+    defaultValue : function(fsm, event) { }
+  });
+
+/**
+ * Automatic actions to take prior to calling the state's onentry function.
+ *
+ * The value passed to setAutoActionsBeforeOnentry() should like something
+ * akin to:
+ *
+ *     "autoActionsBeforeOnentry" :
+ *     {
+ *       // The name of a function.  This would become "setEnabled("
+ *       "enabled" :
+ *       [
+ *         {
+ *           // The parameter value, thus "setEnabled(true);"
+ *           "parameters" : [ true ],
+ *
+ *           // The function would be called on each object:
+ *           //  this.getObject("obj1").setEnabled(true);
+ *           //  this.getObject("obj2").setEnabled(true);
+ *           "objects" : [ "obj1", "obj2" ]
+ *
+ *           // And similarly for each object in each specified group.
+ *           "groups"  : [ "group1", "group2" ],
+ *         }
+ *       ];
+ *     };
+ */
+qx.OO.addProperty(
+  {
+    name         : "autoActionsBeforeOnentry",
+    defaultValue : function(fsm, event) { }
+  });
+
+/**
+ * Automatic actions to take after return from the state's onentry function.
+ *
+ * The value passed to setAutoActionsAfterOnentry() should like something akin
+ * to:
+ *
+ *     "autoActionsAfterOnentry" :
+ *     {
+ *       // The name of a function.  This would become "setEnabled("
+ *       "enabled" :
+ *       [
+ *         {
+ *           // The parameter value, thus "setEnabled(true);"
+ *           "parameters" : [ true ],
+ *
+ *           // The function would be called on each object:
+ *           //  this.getObject("obj1").setEnabled(true);
+ *           //  this.getObject("obj2").setEnabled(true);
+ *           "objects" : [ "obj1", "obj2" ]
+ *
+ *           // And similarly for each object in each specified group.
+ *           "groups"  : [ "group1", "group2" ],
+ *         }
+ *       ];
+ *     };
+ */
+qx.OO.addProperty(
+  {
+    name         : "autoActionsAfterOnentry",
+    defaultValue : function(fsm, event) { }
+  });
+
+/**
+ * Automatic actions to take prior to calling the state's onexit function.
+ *
+ * The value passed to setAutoActionsBeforeOnexit() should like something akin
+ * to:
+ *
+ *     "autoActionsBeforeOnexit" :
+ *     {
+ *       // The name of a function.  This would become "setEnabled("
+ *       "enabled" :
+ *       [
+ *         {
+ *           // The parameter value, thus "setEnabled(true);"
+ *           "parameters" : [ true ],
+ *
+ *           // The function would be called on each object:
+ *           //  this.getObject("obj1").setEnabled(true);
+ *           //  this.getObject("obj2").setEnabled(true);
+ *           "objects" : [ "obj1", "obj2" ]
+ *
+ *           // And similarly for each object in each specified group.
+ *           "groups"  : [ "group1", "group2" ],
+ *         }
+ *       ];
+ *     };
+ */
+qx.OO.addProperty(
+  {
+    name         : "autoActionsBeforeOnexit",
+    defaultValue : function(fsm, event) { }
+  });
+
+
+/**
+ * Automatic actions to take after returning from the state's onexit function.
+ *
+ * The value passed to setAutoActionsAfterOnexit() should like something akin
+ * to:
+ *
+ *     "autoActionsBeforeOnexit" :
+ *     {
+ *       // The name of a function.  This would become "setEnabled("
+ *       "enabled" :
+ *       [
+ *         {
+ *           // The parameter value, thus "setEnabled(true);"
+ *           "parameters" : [ true ],
+ *
+ *           // The function would be called on each object:
+ *           //  this.getObject("obj1").setEnabled(true);
+ *           //  this.getObject("obj2").setEnabled(true);
+ *           "objects" : [ "obj1", "obj2" ]
+ *
+ *           // And similarly for each object in each specified group.
+ *           "groups"  : [ "group1", "group2" ],
+ *         }
+ *       ];
+ *     };
+ */
+qx.OO.addProperty(
+  {
+    name         : "autoActionsAfterOnexit",
+    defaultValue : function(fsm, event) { }
+  });
+
+
+/**
+ * The object representing handled and blocked events for this state.  This is
+ * documented in the constructor, and is typically provided through the
+ * constructor's stateInfo object, but it is also possible (but highly NOT
+ * recommended) to change this dynamically.
+ */
+qx.OO.addProperty(
+  {
+    name         : "events"
+  });
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._checkName = function(propValue, propData)
+{
+  // Ensure that we got a valid state name
+  if (typeof(propValue) != "string" || propValue.length < 1)
+  {
+    throw new Error("Invalid state name");
+  }
+
+  return propValue;
+};
+
+qx.Proto._checkOnentry = function(propValue, propData)
+{
+  // Validate the onentry function
+  switch(typeof(propValue))
+  {
+  case "undefined":
+    // None provided.  Convert it to a null function
+    return function(fsm, event) {};
+
+  case "function":
+    // We're cool.  No changes required
+    return propValue;
+
+  default:
+    throw new Error("Invalid onentry type: " + typeof(propValue));
+    return null;
+  }
+};
+
+qx.Proto._checkOnexit = function(propValue, propData)
+{
+  // Validate the onexit function
+  switch(typeof(propValue))
+  {
+  case "undefined":
+    // None provided.  Convert it to a null function
+    return function(fsm, event) {};
+
+  case "function":
+    // We're cool.  No changes required
+    return propValue;
+
+  default:
+    throw new Error("Invalid onexit type: " + typeof(propValue));
+    return null;
+  }
+};
+
+qx.Proto._checkEvents = function(propValue, propData)
+{
+  // Validate that events is an object
+  if (typeof(propValue) != "object")
+  {
+    throw new Error("events must be an object");
+  }
+
+  // Confirm that each property is a valid value
+  // The property value should be one of:
+  //
+  // (a) qx.util.fsm.FiniteStateMachine.EventHandling.PREDICATE
+  //
+  // (b) qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED
+  //
+  // (c) a string containing the name of an explicit Transition to use
+  //
+  // (d) an object where each property name is the Friendly Name of an
+  //     object (meaning that this rule applies if both the event and
+  //     the event's target object's Friendly Name match), and its
+  //     property value is one of (a), (b) or (c), above.
+  for (var e in propValue)
+  {
+    var action = propValue[e];
+    if (typeof(action) == "number" &&
+        action != qx.util.fsm.FiniteStateMachine.EventHandling.PREDICATE &&
+        action != qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED)
+    {
+      throw new Error("Invalid numeric value in events object: " +
+                      e + ": " + action);
+    }
+    else if (typeof(action) == "object")
+    {
+      for (action_e in action)
+      {
+        if (typeof(action[action_e]) == "number" &&
+            action != qx.util.fsm.FiniteStateMachine.EventHandling.PREDICATE &&
+            action != qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED)
+        {
+          throw new Error("Invalid numeric value in events object " +
+                          "(" + e + "): " +
+                          action_e + ": " + action[action_e]);
+        }
+        else if (typeof(action[action_e]) != "string")
+        {
+          throw new Error("Invalid value in events object " +
+                          "(" + e + "): " +
+                          action_e + ": " + action[action_e]);
+        }
+      }
+    }
+    else if (typeof(action) != "string")
+    {
+      throw new Error("Invalid value in events object: " +
+                      e + ": " + propValue[e]);
+    }
+  }
+
+  // We're cool.  No changes required.
+  return propValue;
+};
+
+qx.Proto._checkAutoActionsBeforeOnentry = function(propValue, propData)
+{
+  return qx.util.fsm.FiniteStateMachine._commonCheckAutoActions(
+    "autoActionsBeforeOnentry",
+    propValue,
+    propData);
+};
+
+qx.Proto._checkAutoActionsAfterOnentry = function(propValue, propData)
+{
+  return qx.util.fsm.FiniteStateMachine._commonCheckAutoActions(
+    "autoActionsAfterOnentry",
+    propValue,
+    propData);
+};
+
+qx.Proto._checkAutoActionsBeforeOnexit = function(propValue, propData)
+{
+  return qx.util.fsm.FiniteStateMachine._commonCheckAutoActions(
+    "autoActionsBeforeOnexit",
+    propValue,
+    propData);
+};
+
+qx.Proto._checkAutoActionsAfterOnexit = function(propValue, propData)
+{
+  return qx.util.fsm.FiniteStateMachine._commonCheckAutoActions(
+    "autoActionsAfterOnexit",
+    propValue,
+    propData);
+};
+
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Add a transition to a state
+ *
+ * @param trans {qx.util.fsm.Transition}
+ *   An object of class qx.util.fsm.Transition representing a
+ *   transition which is to be a part of this state.
+ */
+qx.Proto.addTransition = function(trans)
+{
+  // Ensure that we got valid transition info
+  if (! trans instanceof qx.util.fsm.Transition)
+  {
+    throw new Error("Invalid transition: not an instance of " +
+                    "qx.util.fsm.Transition");
+  }
+
+  // Add the new transition object to the state
+  this.transitions[trans.getName()] = trans;
+};
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT LISTENERS
+---------------------------------------------------------------------------
+*/
+
+
+
+/*
+---------------------------------------------------------------------------
+  CLASS CONSTANTS
+---------------------------------------------------------------------------
+*/
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  return qx.core.Object.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/fsm/Transition.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/fsm/Transition.js
new file mode 100644 (file)
index 0000000..3d13324
--- /dev/null
@@ -0,0 +1,383 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2006 by Derrell Lipman
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Derrell Lipman (derrell)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+#module(util_fsm)
+#require(qx.util.fsm.FiniteStateMachine)
+
+************************************************************************ */
+
+/**
+ * Create a new possible transition from one state to another.
+ *
+ * *EXPERIMENTAL*
+ * The interface to the finite state machine, states, and transitions is
+ * experimental.  It may change in non-backward-compatible ways as more
+ * experience is gained in its use.
+ *
+ * @param transitionName {string}
+ *   The name of this transition, used in debug messages.
+ *
+ * @param transitionInfo {Object}
+ *   An object optionally containing any of the following properties:
+ *
+ *     predicate -
+ *       A function which is called to determine whether this transition is
+ *       acceptable.  An acceptable transition will cause the transition's
+ *       "ontransition" function to be run, the current state's "onexit"
+ *       function to be run, and the new state's "onentry" function to be run.
+ *
+ *       The predicate function's signature is function(fsm, event) and it is
+ *       saved in the predicate property of the transition object.  In the
+ *       predicate function:
+ *
+ *         fsm -
+ *           The finite state machine object to which this state is attached.
+ *
+ *         event -
+ *           The event that caused a run of the finite state machine
+ *
+ *       The predicate function should return one of the following three
+ *       values:
+ *
+ *         - true means the transition is acceptable
+ *
+ *         - false means the transition is not acceptable, and the next
+ *           transition (if one exists) should be tried to determine if it is
+ *           acceptable
+ *
+ *         - null means that the transition determined that no further
+ *           transitions should be tried.  This might be used when the
+ *           transition ascertained that the event is for a target that is not
+ *           available in the current state, and the event has called
+ *           fsm.queueEvent() to have the event delivered upon state
+ *           transition.
+ *
+ *       It is possible to create a default predicate -- one that will cause a
+ *       transition to be acceptable always -- by either not providing a
+ *       predicate property, or by explicitely either setting the predicate
+ *       property to 'true' or setting it to a function that unconditionally
+ *       returns 'true'.  This default transition should, of course, always be
+ *       the last transition added to a state, since no transition added after
+ *       it will ever be tried.
+ *
+ *     nextState -
+ *       The state to which we transition, if the predicate returns true
+ *       (meaning the transition is acceptable).  The value of nextState may
+ *       be:
+ *
+ *         - a string, the state name of the state to transition to
+ *
+ *         - One of the constants:
+ *           - qx.util.fsm.FiniteStateMachine.StateChange.CURRENT_STATE:
+ *               Remain in whatever is the current state
+ *           - qx.util.fsm.FiniteStateMachine.StateChange.PREVIOUS_STATE:
+ *               Transition to the state at the top of the saved-state stack,
+ *               and remove the top element from the saved-state stack.
+ *               Elements are added to the saved-state stack using
+ *               fsm.pushState().  It is an error if no state exists on the
+ *               saved-state stack.
+ *           - qx.util.fsm.FiniteStateMachine.StateChange.TERMINATE:
+ *               TBD
+ *
+ *     autoActionsBeforeOntransition -
+ *     autoActionsAfterOntransition -
+ *       Automatic actions which take place at the time specified by the
+ *       property name.  In all cases, the action takes place immediately
+ *       before or after the specified function.
+ *
+ *       The property value for each of these properties is an object which
+ *       describes some number of functions to invoke on a set of specified
+ *       objects (typically widgets).
+ *
+ *       See {@see qx.util.fsm.State} for an example of autoActions.
+ *
+ *     ontransition -
+ *       A function which is called if the predicate function for this
+ *       transition returns true.  Its signature is function(fsm, event) and
+ *       it is saved in the ontransition property of the transition object.
+ *       In the ontransition function:
+ *
+ *         fsm -
+ *           The finite state machine object to which this state is attached.
+ *
+ *         event -
+ *           The event that caused a run of the finite state machine
+ *
+ *     Additional properties may be provided in transInfo.  They will not be
+ *     used by the finite state machine, but will be available via
+ *     this.getUserData("<propertyName>") during the transition's predicate
+ *     and ontransition functions.
+ */
+qx.OO.defineClass("qx.util.fsm.Transition", qx.core.Object,
+function(transitionName, transitionInfo)
+{
+  // Call our superclass' constructor
+  qx.core.Object.call(this, true);
+
+  // Save the state name
+  this.setName(transitionName);
+
+  // Save data from the transitionInfo object
+  for (var field in transitionInfo)
+  {
+    // If we find one of our properties, call its setter.
+    switch(field)
+    {
+    case "predicate":
+      this.setPredicate(transitionInfo[field]);
+      break;
+
+    case "nextState":
+      this.setNextState(transitionInfo[field]);
+      break;
+
+    case "autoActionsBeforeOntransition":
+      this.setAutoActionsBeforeOntransition(transitionInfo[field]);
+      break;
+
+    case "autoActionsAfterOntransition":
+      this.setAutoActionsAfterOntransition(transitionInfo[field]);
+      break;
+
+    case "ontransition":
+      this.setOntransition(transitionInfo[field]);
+      break;
+
+    default:
+      // Anything else is user-provided data for their own use.  Save it.
+      this.setUserData(field, transitionInfo[field]);
+
+      // Log it in case it was a typo and they intended a built-in field
+      this.debug("Transition " + transitionName + ": " +
+                 "Adding user-provided field to transition: " + field);
+
+      break;
+    }
+  }
+});
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  PROPERTIES
+---------------------------------------------------------------------------
+*/
+
+/**
+ * The name of this transition
+ */
+qx.OO.addProperty(
+  {
+    name         : "name",
+    type         : "string"
+  });
+
+/**
+ * The predicate function for this transition.  This is documented in the
+ * constructor, and is typically provided through the constructor's
+ * transitionInfo object, but it is also possible (but highly NOT recommended)
+ * to change this dynamically.
+ */
+qx.OO.addProperty(
+  {
+    name         : "predicate",
+    defaultValue : function(fsm, event) { return true; }
+  });
+
+/**
+ * The state to transition to, if the predicate determines that this
+ * transition is acceptable.  This is documented in the constructor, and is
+ * typically provided through the constructor's transitionInfo object, but it
+ * is also possible (but highly NOT recommended) to change this dynamically.
+ */
+qx.OO.addProperty(
+  {
+    name         : "nextState",
+    defaultValue : qx.util.fsm.FiniteStateMachine.StateChange.CURRENT_STATE
+  });
+
+/**
+ * Automatic actions to take prior to calling the transition's ontransition
+ * function.  This is documented in the constructor, and is typically provided
+ * through the constructor's transitionInfo object, but it is also possible
+ * (but highly NOT recommended) to change this dynamically.
+ */
+qx.OO.addProperty(
+  {
+    name         : "autoActionsBeforeOntransition",
+    defaultValue : function(fsm, event) { }
+  });
+
+/**
+ * Automatic actions to take immediately after calling the transition's
+ * ontransition function.  This is documented in the constructor, and is
+ * typically provided through the constructor's transitionInfo object, but it
+ * is also possible (but highly NOT recommended) to change this dynamically.
+ */
+qx.OO.addProperty(
+  {
+    name         : "autoActionsAfterOntransition",
+    defaultValue : function(fsm, event) { }
+  });
+
+
+/**
+ * The function run when the transition is accepted.  This is documented in
+ * the constructor, and is typically provided through the constructor's
+ * transitionInfo object, but it is also possible (but highly NOT recommended)
+ * to change this dynamically.
+ */
+qx.OO.addProperty(
+  {
+    name         : "ontransition",
+    defaultValue : function(fsm, event) { }
+  });
+
+
+
+
+/*
+---------------------------------------------------------------------------
+  MODIFIER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto._checkName = function(propValue, propData)
+{
+  // Ensure that we got a valid state name
+  if (typeof(propValue) != "string" || propValue.length < 1)
+  {
+    throw new Error("Invalid transition name");
+  }
+
+  return propValue;
+};
+
+qx.Proto._checkPredicate = function(propValue, propData)
+{
+  // Validate the predicate.  Convert all valid types to function.
+  switch(typeof(propValue))
+  {
+    case "undefined":
+      // No predicate means predicate passes
+      return function(fsm, event) { return true; };
+
+    case "boolean":
+      // Convert boolean predicate to a function which returns that value
+      return function(fsm, event) { return propValue; };
+
+    case "function":
+      // Use user-provided function.
+      return propValue;
+
+    default:
+      throw new Error("Invalid transition predicate type: " +
+                      typeof(propValue));
+      break;
+  }
+};
+
+qx.Proto._checkNextState = function(propValue, propData)
+{
+  // Validate nextState.  It must be a string or a number.
+  switch(typeof(propValue))
+  {
+  case "string":
+    return propValue;
+
+  case "number":
+    // Ensure that it's one of the possible state-change constants
+    switch(propValue)
+    {
+    case qx.util.fsm.FiniteStateMachine.StateChange.CURRENT_STATE:
+    case qx.util.fsm.FiniteStateMachine.StateChange.PREVIOUS_STATE:
+      return propValue;
+
+    default:
+      throw new Error("Invalid transition nextState value: " +
+                      propValue +
+                      ": nextState must be an explicit state name, " +
+                      "or one of the Fsm.StateChange constants");
+    }
+    break;
+
+  default:
+    throw new Error("Invalid transition nextState type: " + typeof(propValue));
+    break;
+  }
+};
+
+qx.Proto._checkOntransition = function(propValue, propData)
+{
+  // Validate the ontransition function.  Convert undefined to function.
+  switch(typeof(propValue) )
+  {
+  case "undefined":
+    // No provided function just means do nothing.  Use a null function.
+    return function(fsm, event) { };
+
+  case "function":
+    // Use user-provided function.
+    return propValue;
+
+  default:
+    throw new Error("Invalid ontransition type: " + typeof(propValue));
+    break;
+  }
+};
+
+/*
+---------------------------------------------------------------------------
+  UTILITIES
+---------------------------------------------------------------------------
+*/
+
+
+/*
+---------------------------------------------------------------------------
+  EVENT LISTENERS
+---------------------------------------------------------------------------
+*/
+
+
+
+/*
+---------------------------------------------------------------------------
+  CLASS CONSTANTS
+---------------------------------------------------------------------------
+*/
+
+
+
+/*
+---------------------------------------------------------------------------
+  DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+  if (this.getDisposed()) {
+    return true;
+  }
+
+  return qx.core.Object.prototype.dispose.call(this);
+}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/fsm/example.txt b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/fsm/example.txt
new file mode 100644 (file)
index 0000000..bb92f70
--- /dev/null
@@ -0,0 +1,210 @@
+var fsm;
+var state;
+var trans;
+
+// Create a new finite state machine called "Test Machine"
+fsm = new qx.util.finitestatemachine.Fsm("Test machine");
+
+// State S1
+state = new qx.util.finitestatemachine.State(
+  // State name
+  "S1",
+
+  // Object with state information
+  {
+    // Function called on entry to this state
+    "onentry" :
+      function(fsm, event)
+      {
+        alert("Previous state: " + fsm.getPreviousState());
+      };
+
+    // Function called on exit from this state
+    "onexit" :
+      function(fsm, event) 
+      {
+        alert("Next state: " + fsm.getNextState());
+      };
+
+    // Automatic actions to take place before a (possibly) new state's onentry
+    // function is called.
+    "autoActionsBeforeOnentry" :
+    {
+      // The name of a function.
+      "setEnabled" :
+      [
+        {
+          // The parameter value(s), thus "setEnabled(true);"
+          "parameters"   : [ true ],
+
+          // The function would be called on each object:
+          //  this.getObject("obj1").setEnabled(true);
+          //  this.getObject("obj2").setEnabled(true);
+          "objects" : [ "obj1", "obj2" ]
+
+          // And similarly for each object in each specified group.
+          "groups"  : [ "group1", "group2" ],
+        }
+      ];
+
+      "setColor" :
+      [
+        {
+          "parameters" : [ "blue" ]
+          "groups"     : [ "group3", "group4" ],
+          "objects"    : [ "obj3", "obj4" ]
+        }
+      ];
+    };
+
+    // also available, in same format as actionsBeforeOnentry:
+    //   "actionsAfterOnentry",
+    //   "actionsBeforeOnexit"
+    //   "actionsAfterOnexit"
+
+    // Events handled by this state, or queued for processing by a future state
+    "events" :
+    {
+      // The event type "compete" is handled by one of the transitions in this
+      // state.  The transitions will be searched in order of their addition
+      // to the state, until the predicate for a transition returns true (or
+      // no predicate is specified for the transition, which is an implicit
+      // "true") That transition will be used.
+      "complete"  : qx.util.finitestatemachine.Fsm.EventHandling.PREDICATE,
+
+      // The event type "interval" has two objects specified by their
+      // "friendly name".  The action when an event of type "interval" occurs
+      // depends on which object was the target of the event.
+      "interval"  :
+      {
+        // If the target of the event was the object to which we have given
+        // the friendly name "flash" then use a transition specified by name
+        "flash"   : "S1_S3_interval_flash",
+
+        // If the target of the event was the object to which we have given
+        // the friendly name "timeout", then enqueue this event for possible
+        // processing by a future state.
+        "timeout" : qx.util.finitestatemachine.Fsm.EventHandling.BLOCKED
+      },
+
+        // The event type "execute", too, has two objects specified by their
+        // "friendly name".
+      "execute"   :
+      {
+        // If the target of the event was the object to which we have given
+        // the friend name "ok", search the transitions in order looking for
+        // one where the predicate is true
+        "ok"      : qx.util.finitestatemachine.Fsm.EventHandling.PREDICATE
+
+        // If the target of the event was the object to which we have given
+        // the friendly name "restart", then enqueue this event for possible
+        // processing by a future state.
+        "restart" : qx.util.finitestatemachine.Fsm.EventHandling.BLOCKED
+      }
+
+      // all events other than those which are handled or blocked are ignored.
+    };
+  });
+
+// Add State S1 to the finite state machine.
+fsm.addState(state);
+
+// Transition from S1 to S2 due to event 1
+trans = new qx.util.finitestatemachine.Transition(
+  // Transition name
+  "S1_S2_ev1",
+
+  // Object with transition information
+  {
+    // return TRUE to pass
+    "predicate" :
+      function(fsm, event)
+      {
+        var type = event.getType();
+        if (type == "somethingWeCareAbout")
+        {
+          return true;
+        }
+        else if (type == "somethingToHandleInAnotherState")
+        {
+          // reattempt event delivery following state transition
+          fsm.postponeEvent(event);
+
+          // do no further transition attempts for this event for now
+          return null;
+        }
+        else
+        {
+          return false;
+        }
+      },
+
+    // if event matches and predicate passes, pop the state stack and go to
+    // the state which was found at the top of the stack.  States are added to
+    // the state stack by calling fsm.pushState() during a state's onexit
+    // function or by a transition's action function.
+    "nextState" : qx.util.finintestatemachine.Fsm.StateChange.POP_STATE_STACK,
+
+    // action taken during transisition
+    "action"    :
+      function(fsm, event)
+      {
+        // save current state so a future transition can get back to
+        // this saved state
+        fsm.pushState();
+      }
+  });
+state.addTransition(trans);
+
+// Default transition (any event): remain in current state
+trans = new qx.util.finitestatemachine.Transition(
+  "S1_S1_default",
+  {
+    // true or undefined : always pass
+    "predicate" :
+      function(fsm, event)
+      {
+        // This predicate does not pass, and we return null to tell the finite
+        // state machine that no additional transitions in the transition list
+        // should be tested.  (Note that the next transition is the one
+        // explicitly called for by the "interval" event on the object with
+        // friendly name "flash".  We do not want a predicate search to find
+        // it.
+        return null;
+      },
+              
+    // return to current state
+    "nextState" : qx.util.finitestatemacine.CURRENT_STATE,
+  });
+state.addTransition(trans);
+
+// Transition from S1 to S2 due to event 2.  Since the previous transition
+// returned null in its predicate function, the only way to get to this
+// transition is when it is called out explicitly in the state's event list.
+// This one was specified for the "interval" event on the object with friendly
+// name "flash".
+trans = new qx.util.finitestatememachine.Transition(
+  "S1_S3_interval_flash",
+  {
+    // No predicate or a value of 'true' means that the predicate passes as if
+    // a predicate function returned true.
+    "predicate" : true,
+    
+    // if event matches, go to this state
+    "nextState" : "S2",
+    
+    // action taken during transisition
+    "action"    :
+      function(fsm, event)
+      {
+        alert(this.getName() + "action function");
+      }
+  });
+state.addTransition(trans);
+
+// We would, of course, need to add state S2 since it is specified in a
+// nextState property.  That is left as an exercise for the reader.
+
+
+// Initialize and start the machine running
+fsm.start();
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/xml/Core.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/xml/Core.js
new file mode 100644 (file)
index 0000000..baf3bc1
--- /dev/null
@@ -0,0 +1,77 @@
+/* ************************************************************************
+
+   qooxdoo - the new era of web development
+
+   http://qooxdoo.org
+
+   Copyright:
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+   License:
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+   Authors:
+     * Sebastian Werner (wpbasti)
+     * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+************************************************************************ */
+
+qx.OO.defineClass("qx.xml.Core");
+
+// Create a XML dom node
+qx.xml.Core.createXmlDom = function()
+{
+  // The Mozilla style
+  if (document.implementation && document.implementation.createDocument) {
+    return document.implementation.createDocument("", "", null);
+  }
+
+  // The Microsoft style
+  if (window.ActiveXObject) {
+    /*
+     According to information on the Microsoft XML Team's WebLog
+     it is recommended to check for availability of MSXML versions 6.0 and 3.0.
+     Other versions are included for completeness, 5.0 is excluded as it is
+     "off-by-default" in IE7 (which could trigger a goldbar).
+
+     http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx
+     http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/aabe29a2-bad2-4cea-8387-314174252a74.asp
+
+     See similar code in qx.lang.XmlEmu, qx.io.remote.XmlHttpTransport
+    */
+    var vServers =
+    [
+      "MSXML2.DOMDocument.6.0",
+      "MSXML2.DOMDocument.3.0",
+      "MSXML2.DOMDocument.4.0",
+      "MSXML2.DOMDocument",  // v3.0
+      "MSXML.DOMDocument",   // v2.x
+      "Microsoft.XMLDOM"     // v2.x
+    ];
+
+    var vObject;
+
+    for (var i=0, l=vServers.length; i<l; i++)
+    {
+
+      try
+      {
+        vObject = new ActiveXObject(vServers[i]);
+        break;
+      }
+      catch(ex)
+      {
+        vObject = null;
+      }
+    }
+
+    return vObject;
+  }
+
+  throw new Error("This browser does not support xml dom creation.");
+};
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/xml/Namespace.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/xml/Namespace.js
new file mode 100644 (file)
index 0000000..e974fdd
--- /dev/null
@@ -0,0 +1,51 @@
+/* ************************************************************************\r
+\r
+   qooxdoo - the new era of web development\r
+\r
+   http://qooxdoo.org\r
+\r
+   Copyright:\r
+     2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org\r
+\r
+   License:\r
+     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html\r
+\r
+   Authors:\r
+     * Sebastian Werner (wpbasti)\r
+     * Andreas Ecker (ecker)\r
+\r
+************************************************************************ */\r
+\r
+/* ************************************************************************\r
+\r
+\r
+************************************************************************ */\r
+\r
+qx.OO.defineClass("qx.xml.Namespace",\r
+{\r
+  SVG : "http://www.w3.org/2000/svg",\r
+  SMIL : "http://www.w3.org/2001/SMIL20/",\r
+  MML : "http://www.w3.org/1998/Math/MathML",\r
+  CML : "http://www.xml-cml.org",\r
+  XLINK : "http://www.w3.org/1999/xlink",\r
+  XHTML : "http://www.w3.org/1999/xhtml",\r
+  XUL : "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",\r
+  XBL : "http://www.mozilla.org/xbl",\r
+  FO : "http://www.w3.org/1999/XSL/Format",\r
+  XSL : "http://www.w3.org/1999/XSL/Transform",\r
+  XSLT : "http://www.w3.org/1999/XSL/Transform",\r
+  XI : "http://www.w3.org/2001/XInclude",\r
+  XFORMS : "http://www.w3.org/2002/01/xforms",\r
+  SAXON : "http://icl.com/saxon",\r
+  XALAN : "http://xml.apache.org/xslt",\r
+  XSD : "http://www.w3.org/2001/XMLSchema",\r
+  DT: "http://www.w3.org/2001/XMLSchema-datatypes",\r
+  XSI : "http://www.w3.org/2001/XMLSchema-instance",\r
+  RDF : "http://www.w3.org/1999/02/22-rdf-syntax-ns#",\r
+  RDFS : "http://www.w3.org/2000/01/rdf-schema#",\r
+  DC : "http://purl.org/dc/elements/1.1/",\r
+  DCQ: "http://purl.org/dc/qualifiers/1.0",\r
+  SOAPENV : "http://schemas.xmlsoap.org/soap/envelope/",\r
+  WSDL : "http://schemas.xmlsoap.org/wsdl/",\r
+  ADOBESVGEXTENSIONS : "http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"\r
+});
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/README b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/README
new file mode 100644 (file)
index 0000000..1150455
--- /dev/null
@@ -0,0 +1,20 @@
+These iconsets are licensed under different open-source
+licenses and was published for KDE (http://www.kde.org).
+The iconsets found here are not the complete ones which
+comes with KDE. Also the file and directory structure
+and naming is different. If you want to download the
+complete iconsets follow the URL listed below.
+
+* Crystal SVG
+  Copyright Everaldo (everaldo (at) everaldo.com)
+  http://everaldo.com
+  License: LGPL
+  http://www.fsf.org/licensing/licenses/lgpl.html
+
+* Nuvola
+  Copyright David Vignoni (dave (at) icon-king.com)
+  http://www.icon-king.com
+  License: LGPL
+  http://www.fsf.org/licensing/licenses/lgpl.html
+
+Please respect the licence. All rights reserved!
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/3d.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/3d.png
new file mode 100644 (file)
index 0000000..820aa28
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/3d.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/adobe-reader.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/adobe-reader.png
new file mode 100755 (executable)
index 0000000..418da6e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/adobe-reader.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/antivirus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/antivirus.png
new file mode 100644 (file)
index 0000000..381fc55
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/antivirus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/babelfish.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/babelfish.png
new file mode 100644 (file)
index 0000000..afe11a9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/babelfish.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/back.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/back.png
new file mode 100644 (file)
index 0000000..4e2e380
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/back.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/background.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/background.png
new file mode 100755 (executable)
index 0000000..dc35d81
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/background.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/bell.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/bell.png
new file mode 100644 (file)
index 0000000..530fbf6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/bell.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/bitmapgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/bitmapgraphics.png
new file mode 100644 (file)
index 0000000..f539ab6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/bitmapgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/block-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/block-device.png
new file mode 100644 (file)
index 0000000..e306892
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/block-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/bug.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/bug.png
new file mode 100644 (file)
index 0000000..50649d7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/bug.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/cache.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/cache.png
new file mode 100644 (file)
index 0000000..f926138
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/cache.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/camera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/camera.png
new file mode 100644 (file)
index 0000000..8e18069
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/camera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/cdrom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/cdrom.png
new file mode 100644 (file)
index 0000000..977ec6b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/cdrom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/char-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/char-device.png
new file mode 100644 (file)
index 0000000..7e03f79
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/char-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/chart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/chart.png
new file mode 100644 (file)
index 0000000..8d6fd8a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/chart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/clock.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/clock.png
new file mode 100644 (file)
index 0000000..692b050
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/clock.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/colors.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/colors.png
new file mode 100644 (file)
index 0000000..932e6fb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/colors.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/control-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/control-center.png
new file mode 100644 (file)
index 0000000..99a89e3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/control-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/core.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/core.png
new file mode 100644 (file)
index 0000000..013e93d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/core.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/date.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/date.png
new file mode 100644 (file)
index 0000000..f3bb99e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/date.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/desktop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/desktop.png
new file mode 100644 (file)
index 0000000..02f2f26
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/desktop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/dictionary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/dictionary.png
new file mode 100644 (file)
index 0000000..fd57f9a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/dictionary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/display.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/display.png
new file mode 100644 (file)
index 0000000..8573935
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/display.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/down.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/down.png
new file mode 100644 (file)
index 0000000..9106506
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/down.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/email.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/email.png
new file mode 100644 (file)
index 0000000..a01dfa0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/email.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/encrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/encrypted.png
new file mode 100644 (file)
index 0000000..be9140e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/encrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/energy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/energy.png
new file mode 100644 (file)
index 0000000..4ad8e61
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/energy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/error.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/error.png
new file mode 100644 (file)
index 0000000..44de257
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/error.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/exec.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/exec.png
new file mode 100644 (file)
index 0000000..f20b424
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/exec.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/favourite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/favourite.png
new file mode 100644 (file)
index 0000000..8a91592
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/favourite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/file-print.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/file-print.png
new file mode 100644 (file)
index 0000000..2625880
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/file-print.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/floppy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/floppy.png
new file mode 100644 (file)
index 0000000..726a2ba
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/floppy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/flowchart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/flowchart.png
new file mode 100644 (file)
index 0000000..4b72faa
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/flowchart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-favorite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-favorite.png
new file mode 100644 (file)
index 0000000..a607e49
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-favorite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-important.png
new file mode 100644 (file)
index 0000000..cb0f639
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-locked.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-locked.png
new file mode 100644 (file)
index 0000000..201ee49
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-locked.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-open.png
new file mode 100644 (file)
index 0000000..62faf24
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder.png
new file mode 100644 (file)
index 0000000..5823926
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/folder.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/fonts.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/fonts.png
new file mode 100644 (file)
index 0000000..f859e33
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/fonts.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/forward.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/forward.png
new file mode 100644 (file)
index 0000000..23035d2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/forward.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/graphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/graphics.png
new file mode 100644 (file)
index 0000000..29cab51
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/graphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/harddrive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/harddrive.png
new file mode 100644 (file)
index 0000000..80a84ef
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/harddrive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/hardware-info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/hardware-info.png
new file mode 100644 (file)
index 0000000..e2aced9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/hardware-info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/help-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/help-center.png
new file mode 100644 (file)
index 0000000..aff3318
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/help-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/home.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/home.png
new file mode 100644 (file)
index 0000000..1523d6e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/home.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/info.png
new file mode 100644 (file)
index 0000000..0685f86
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/joystick.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/joystick.png
new file mode 100644 (file)
index 0000000..8f36c91
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/joystick.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/keyboard-layout.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/keyboard-layout.png
new file mode 100644 (file)
index 0000000..e55efb5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/keyboard-layout.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/locale.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/locale.png
new file mode 100644 (file)
index 0000000..25403ac
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/locale.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/look-and-feel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/look-and-feel.png
new file mode 100644 (file)
index 0000000..cd1a36b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/look-and-feel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mac.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mac.png
new file mode 100644 (file)
index 0000000..258588b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mac.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-archive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-archive.png
new file mode 100755 (executable)
index 0000000..91f24d1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-archive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-binary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-binary.png
new file mode 100755 (executable)
index 0000000..e968365
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-binary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-calendar.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-calendar.png
new file mode 100755 (executable)
index 0000000..6ac9ef1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-calendar.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-card.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-card.png
new file mode 100755 (executable)
index 0000000..bf84213
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-card.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-document.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-document.png
new file mode 100755 (executable)
index 0000000..970fe33
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-document.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-html.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-html.png
new file mode 100755 (executable)
index 0000000..ab8334b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-html.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-image.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-image.png
new file mode 100755 (executable)
index 0000000..3d2fc5d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-image.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-manual.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-manual.png
new file mode 100755 (executable)
index 0000000..fdf37cc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-manual.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-multimedia.png
new file mode 100755 (executable)
index 0000000..dc4c177
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-pdf.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-pdf.png
new file mode 100755 (executable)
index 0000000..351e026
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-pdf.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-quicktime.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-quicktime.png
new file mode 100755 (executable)
index 0000000..59da2c0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-quicktime.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-rpm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-rpm.png
new file mode 100755 (executable)
index 0000000..22d8ab1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-rpm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-script.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-script.png
new file mode 100755 (executable)
index 0000000..759c0a1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-script.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-shellscript.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-shellscript.png
new file mode 100755 (executable)
index 0000000..f0bde8f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-shellscript.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-sourcecode.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-sourcecode.png
new file mode 100755 (executable)
index 0000000..203b5cb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-sourcecode.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-spreadsheet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-spreadsheet.png
new file mode 100755 (executable)
index 0000000..7c1f455
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-spreadsheet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-text.png
new file mode 100755 (executable)
index 0000000..59a7642
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-video.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-video.png
new file mode 100755 (executable)
index 0000000..eea3417
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mime-video.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/modem.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/modem.png
new file mode 100755 (executable)
index 0000000..245db42
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/modem.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mouse.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mouse.png
new file mode 100644 (file)
index 0000000..ec1f54b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mouse.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/movieplayer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/movieplayer.png
new file mode 100644 (file)
index 0000000..a6f6407
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/movieplayer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/multimedia.png
new file mode 100644 (file)
index 0000000..e04f1e1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mycomputer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mycomputer.png
new file mode 100755 (executable)
index 0000000..ed7ac28
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/mycomputer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/netscape.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/netscape.png
new file mode 100755 (executable)
index 0000000..2e5cf2c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/netscape.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/network.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/network.png
new file mode 100644 (file)
index 0000000..6be3abf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/network.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/notes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/notes.png
new file mode 100644 (file)
index 0000000..c02b59b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/notes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/organizer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/organizer.png
new file mode 100644 (file)
index 0000000..777bb03
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/organizer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/paint.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/paint.png
new file mode 100644 (file)
index 0000000..2c1bb49
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/paint.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/partitions.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/partitions.png
new file mode 100644 (file)
index 0000000..627c52f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/partitions.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/password.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/password.png
new file mode 100644 (file)
index 0000000..f12dfda
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/password.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/pda.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/pda.png
new file mode 100644 (file)
index 0000000..fababaf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/pda.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/penguin.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/penguin.png
new file mode 100644 (file)
index 0000000..ebfc696
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/penguin.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/presentation.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/presentation.png
new file mode 100644 (file)
index 0000000..ce7957a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/presentation.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/printer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/printer.png
new file mode 100755 (executable)
index 0000000..f6cb14d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/printer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/reload.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/reload.png
new file mode 100644 (file)
index 0000000..62fc026
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/reload.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/scanner.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/scanner.png
new file mode 100644 (file)
index 0000000..87fa22c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/scanner.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/services.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/services.png
new file mode 100644 (file)
index 0000000..6dbd827
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/services.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/settings.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/settings.png
new file mode 100644 (file)
index 0000000..7f537fd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/settings.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/tablet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/tablet.png
new file mode 100644 (file)
index 0000000..441a88e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/tablet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/terminal.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/terminal.png
new file mode 100644 (file)
index 0000000..4ef0cc3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/terminal.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/toys.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/toys.png
new file mode 100644 (file)
index 0000000..51737f6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/toys.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/trashcan-empty.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/trashcan-empty.png
new file mode 100644 (file)
index 0000000..52ae131
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/trashcan-empty.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/trashcan-full.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/trashcan-full.png
new file mode 100644 (file)
index 0000000..a04c817
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/trashcan-full.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/tux.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/tux.png
new file mode 100644 (file)
index 0000000..8e4e34b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/tux.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/tv.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/tv.png
new file mode 100644 (file)
index 0000000..436555f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/tv.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/up.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/up.png
new file mode 100644 (file)
index 0000000..1c64cd8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/up.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/user.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/user.png
new file mode 100644 (file)
index 0000000..f28f704
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/user.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/utilities.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/utilities.png
new file mode 100644 (file)
index 0000000..3437b21
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/utilities.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/vectorgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/vectorgraphics.png
new file mode 100644 (file)
index 0000000..82de771
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/vectorgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/wordprocessor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/wordprocessor.png
new file mode 100644 (file)
index 0000000..0495cae
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/128/wordprocessor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/3d.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/3d.png
new file mode 100644 (file)
index 0000000..305780c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/3d.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/accessibility.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/accessibility.png
new file mode 100644 (file)
index 0000000..d519c57
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/accessibility.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/adobe-reader.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/adobe-reader.png
new file mode 100755 (executable)
index 0000000..a0e057f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/adobe-reader.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/alarm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/alarm.png
new file mode 100644 (file)
index 0000000..72b7ece
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/alarm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/antivirus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/antivirus.png
new file mode 100644 (file)
index 0000000..a5fe838
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/antivirus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/appearance.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/appearance.png
new file mode 100644 (file)
index 0000000..9612cd5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/appearance.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/applications.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/applications.png
new file mode 100644 (file)
index 0000000..69f6d0f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/applications.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/apply.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/apply.png
new file mode 100644 (file)
index 0000000..543710f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/apply.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/appointment.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/appointment.png
new file mode 100644 (file)
index 0000000..b37845f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/appointment.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/attach.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/attach.png
new file mode 100644 (file)
index 0000000..3bfa627
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/attach.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/babelfish.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/babelfish.png
new file mode 100644 (file)
index 0000000..63ce64d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/babelfish.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/back.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/back.png
new file mode 100644 (file)
index 0000000..b6d9bd1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/back.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/background.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/background.png
new file mode 100755 (executable)
index 0000000..f4ef81c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/background.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bell.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bell.png
new file mode 100644 (file)
index 0000000..7a3fcae
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bell.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bitmapgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bitmapgraphics.png
new file mode 100644 (file)
index 0000000..6edbe41
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bitmapgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/block-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/block-device.png
new file mode 100644 (file)
index 0000000..a4acb09
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/block-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark-add.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark-add.png
new file mode 100644 (file)
index 0000000..b2f4090
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark-add.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark-folder.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark-folder.png
new file mode 100644 (file)
index 0000000..7da3bbe
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark-folder.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark-toolbar.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark-toolbar.png
new file mode 100644 (file)
index 0000000..fdf17ca
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark-toolbar.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark.png
new file mode 100644 (file)
index 0000000..5e76158
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bookmark.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bug.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bug.png
new file mode 100644 (file)
index 0000000..719983c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/bug.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/button-cancel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/button-cancel.png
new file mode 100644 (file)
index 0000000..2415dfc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/button-cancel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/button-ok.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/button-ok.png
new file mode 100644 (file)
index 0000000..543710f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/button-ok.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cache.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cache.png
new file mode 100644 (file)
index 0000000..9d3f243
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cache.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/calculator.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/calculator.png
new file mode 100644 (file)
index 0000000..deb6fcd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/calculator.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cam.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cam.png
new file mode 100644 (file)
index 0000000..9daf8f6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cam.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/camera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/camera.png
new file mode 100644 (file)
index 0000000..0d35dd4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/camera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cancel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cancel.png
new file mode 100644 (file)
index 0000000..1cabc6e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cancel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cdrom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cdrom.png
new file mode 100644 (file)
index 0000000..60adeb6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cdrom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/char-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/char-device.png
new file mode 100644 (file)
index 0000000..3b82c19
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/char-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/chart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/chart.png
new file mode 100644 (file)
index 0000000..d9e0ea1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/chart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/clipboard.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/clipboard.png
new file mode 100755 (executable)
index 0000000..1a396fe
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/clipboard.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/clock.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/clock.png
new file mode 100644 (file)
index 0000000..dca2c7e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/clock.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/color-fill.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/color-fill.png
new file mode 100644 (file)
index 0000000..6362976
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/color-fill.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/color-line.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/color-line.png
new file mode 100644 (file)
index 0000000..1067d6e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/color-line.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/colors.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/colors.png
new file mode 100644 (file)
index 0000000..c0a67bb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/colors.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/comment.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/comment.png
new file mode 100644 (file)
index 0000000..631d4e3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/comment.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/configure.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/configure.png
new file mode 100644 (file)
index 0000000..95bd319
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/configure.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/connect-creating.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/connect-creating.png
new file mode 100644 (file)
index 0000000..258b65b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/connect-creating.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/connect-established.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/connect-established.png
new file mode 100644 (file)
index 0000000..9465e0e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/connect-established.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/connect-no.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/connect-no.png
new file mode 100644 (file)
index 0000000..0b752fc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/connect-no.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/contents.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/contents.png
new file mode 100644 (file)
index 0000000..e2a44ec
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/contents.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/context-help.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/context-help.png
new file mode 100644 (file)
index 0000000..7b88a0c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/context-help.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/control-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/control-center.png
new file mode 100644 (file)
index 0000000..64bf8b7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/control-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cookie.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cookie.png
new file mode 100644 (file)
index 0000000..5ebe2e3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/cookie.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/core.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/core.png
new file mode 100644 (file)
index 0000000..1bbc1d3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/core.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/database.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/database.png
new file mode 100644 (file)
index 0000000..ea93206
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/database.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/date.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/date.png
new file mode 100644 (file)
index 0000000..7be5f97
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/date.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/decrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/decrypted.png
new file mode 100644 (file)
index 0000000..3a1a0d3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/decrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table-cell.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table-cell.png
new file mode 100644 (file)
index 0000000..9f14a21
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table-cell.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table-col.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table-col.png
new file mode 100644 (file)
index 0000000..9993b37
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table-col.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table-row.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table-row.png
new file mode 100644 (file)
index 0000000..974cd54
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table-row.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table.png
new file mode 100644 (file)
index 0000000..7f715fd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/delete-table.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/desktop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/desktop.png
new file mode 100644 (file)
index 0000000..883d92d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/desktop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/devices.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/devices.png
new file mode 100644 (file)
index 0000000..c7c34a1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/devices.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/dictionary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/dictionary.png
new file mode 100644 (file)
index 0000000..643500f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/dictionary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/display.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/display.png
new file mode 100644 (file)
index 0000000..2e228bd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/display.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/documentinfo.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/documentinfo.png
new file mode 100644 (file)
index 0000000..1e49965
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/documentinfo.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/down.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/down.png
new file mode 100644 (file)
index 0000000..c7fa452
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/down.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-copy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-copy.png
new file mode 100644 (file)
index 0000000..c3ff243
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-copy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-cut.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-cut.png
new file mode 100644 (file)
index 0000000..2232854
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-cut.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-delete.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-delete.png
new file mode 100644 (file)
index 0000000..6d0d29d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-delete.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-paste.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-paste.png
new file mode 100644 (file)
index 0000000..6f21061
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit-paste.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit.png
new file mode 100644 (file)
index 0000000..a8b69f7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/edit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/editor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/editor.png
new file mode 100644 (file)
index 0000000..3c939e6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/editor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/email.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/email.png
new file mode 100644 (file)
index 0000000..387ed18
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/email.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/emoticon.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/emoticon.png
new file mode 100644 (file)
index 0000000..3567cd0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/emoticon.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/encrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/encrypted.png
new file mode 100644 (file)
index 0000000..5db70d0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/encrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/energy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/energy.png
new file mode 100644 (file)
index 0000000..df22fd8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/energy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/error.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/error.png
new file mode 100644 (file)
index 0000000..9152973
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/error.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/exec.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/exec.png
new file mode 100644 (file)
index 0000000..bc00f51
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/exec.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/exit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/exit.png
new file mode 100644 (file)
index 0000000..3ce5300
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/exit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/favorites.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/favorites.png
new file mode 100644 (file)
index 0000000..6a3fc5e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/favorites.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/favourite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/favourite.png
new file mode 100644 (file)
index 0000000..9444001
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/favourite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-find.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-find.png
new file mode 100644 (file)
index 0000000..3978d1e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-find.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-manager.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-manager.png
new file mode 100644 (file)
index 0000000..4969259
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-manager.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-new.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-new.png
new file mode 100644 (file)
index 0000000..83f3752
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-new.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-open.png
new file mode 100644 (file)
index 0000000..037c2da
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-print.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-print.png
new file mode 100644 (file)
index 0000000..1cff519
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-print.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-save-as.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-save-as.png
new file mode 100644 (file)
index 0000000..3e28d5d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-save-as.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-save.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-save.png
new file mode 100644 (file)
index 0000000..41b3f43
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/file-save.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/fileshare.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/fileshare.png
new file mode 100644 (file)
index 0000000..5acd128
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/fileshare.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/find.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/find.png
new file mode 100644 (file)
index 0000000..416d064
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/find.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/flag.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/flag.png
new file mode 100644 (file)
index 0000000..3240b29
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/flag.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/floppy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/floppy.png
new file mode 100644 (file)
index 0000000..044647a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/floppy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/flowchart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/flowchart.png
new file mode 100644 (file)
index 0000000..00f1e6f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/flowchart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-favorite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-favorite.png
new file mode 100644 (file)
index 0000000..9ee26a3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-favorite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-important.png
new file mode 100644 (file)
index 0000000..d89fd1d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-locked.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-locked.png
new file mode 100644 (file)
index 0000000..a679e79
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-locked.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-open.png
new file mode 100644 (file)
index 0000000..29a0871
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder.png
new file mode 100644 (file)
index 0000000..7b6f0a7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/folder.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/font-size-down.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/font-size-down.png
new file mode 100644 (file)
index 0000000..3c9b0b0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/font-size-down.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/font-size-up.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/font-size-up.png
new file mode 100644 (file)
index 0000000..ceaff46
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/font-size-up.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/fonts.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/fonts.png
new file mode 100644 (file)
index 0000000..146dcb8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/fonts.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/format-decrease-indent.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/format-decrease-indent.png
new file mode 100644 (file)
index 0000000..f90d809
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/format-decrease-indent.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/format-increase-indent.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/format-increase-indent.png
new file mode 100644 (file)
index 0000000..64b7f0e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/format-increase-indent.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/forward.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/forward.png
new file mode 100644 (file)
index 0000000..4bc5aa9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/forward.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/funct.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/funct.png
new file mode 100644 (file)
index 0000000..e6dc31c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/funct.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/games.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/games.png
new file mode 100644 (file)
index 0000000..4a44862
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/games.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/goto.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/goto.png
new file mode 100644 (file)
index 0000000..b762fc4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/goto.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/graphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/graphics.png
new file mode 100644 (file)
index 0000000..79b1d88
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/graphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/group-event.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/group-event.png
new file mode 100644 (file)
index 0000000..31b6f33
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/group-event.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/harddrive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/harddrive.png
new file mode 100644 (file)
index 0000000..b8069a7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/harddrive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/hardware-info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/hardware-info.png
new file mode 100644 (file)
index 0000000..b8e4f32
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/hardware-info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/hardware.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/hardware.png
new file mode 100644 (file)
index 0000000..b4c146e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/hardware.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/help-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/help-center.png
new file mode 100644 (file)
index 0000000..d155536
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/help-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/help.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/help.png
new file mode 100644 (file)
index 0000000..b580f51
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/help.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/history-clear.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/history-clear.png
new file mode 100644 (file)
index 0000000..2d98639
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/history-clear.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/history.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/history.png
new file mode 100644 (file)
index 0000000..1de43d5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/history.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/home.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/home.png
new file mode 100644 (file)
index 0000000..3d26af5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/home.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/icons.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/icons.png
new file mode 100644 (file)
index 0000000..10d2a2d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/icons.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/iconthemes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/iconthemes.png
new file mode 100644 (file)
index 0000000..4a90815
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/iconthemes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/idea.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/idea.png
new file mode 100644 (file)
index 0000000..8d72794
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/idea.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/important.png
new file mode 100644 (file)
index 0000000..64d07f3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/inbox.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/inbox.png
new file mode 100644 (file)
index 0000000..cafac61
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/inbox.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/info.png
new file mode 100644 (file)
index 0000000..2ba3998
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/insert-table-col.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/insert-table-col.png
new file mode 100644 (file)
index 0000000..02a70ed
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/insert-table-col.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/insert-table-row.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/insert-table-row.png
new file mode 100644 (file)
index 0000000..8174ea1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/insert-table-row.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/insert-table.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/insert-table.png
new file mode 100644 (file)
index 0000000..98cac27
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/insert-table.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/instant-available.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/instant-available.png
new file mode 100644 (file)
index 0000000..5377f42
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/instant-available.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/instant-away.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/instant-away.png
new file mode 100644 (file)
index 0000000..cdaa5b2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/instant-away.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/joystick.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/joystick.png
new file mode 100644 (file)
index 0000000..b1c1691
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/joystick.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/keyboard-layout.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/keyboard-layout.png
new file mode 100644 (file)
index 0000000..efbbcda
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/keyboard-layout.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/launch.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/launch.png
new file mode 100644 (file)
index 0000000..838c38b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/launch.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/locale.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/locale.png
new file mode 100644 (file)
index 0000000..0dfece4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/locale.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/look-and-feel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/look-and-feel.png
new file mode 100644 (file)
index 0000000..fb41810
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/look-and-feel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mac.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mac.png
new file mode 100644 (file)
index 0000000..23e7e72
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mac.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/magnifier.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/magnifier.png
new file mode 100644 (file)
index 0000000..0773220
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/magnifier.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-delete.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-delete.png
new file mode 100644 (file)
index 0000000..65c7422
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-delete.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-find.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-find.png
new file mode 100644 (file)
index 0000000..81417be
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-find.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-forward.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-forward.png
new file mode 100644 (file)
index 0000000..150b624
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-forward.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-get.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-get.png
new file mode 100644 (file)
index 0000000..c5ea201
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-get.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-new.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-new.png
new file mode 100644 (file)
index 0000000..c388644
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-new.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-reply-all.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-reply-all.png
new file mode 100644 (file)
index 0000000..8a3ae55
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-reply-all.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-reply.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-reply.png
new file mode 100644 (file)
index 0000000..cfb9379
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-reply.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-send.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-send.png
new file mode 100644 (file)
index 0000000..d96b1ec
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail-send.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail.png
new file mode 100644 (file)
index 0000000..cf7160a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mail.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/memory.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/memory.png
new file mode 100644 (file)
index 0000000..6ddeddb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/memory.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-archive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-archive.png
new file mode 100755 (executable)
index 0000000..8bdfa8a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-archive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-binary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-binary.png
new file mode 100755 (executable)
index 0000000..e23beb1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-binary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-calendar.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-calendar.png
new file mode 100755 (executable)
index 0000000..7fb7ca8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-calendar.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-card.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-card.png
new file mode 100755 (executable)
index 0000000..8210b43
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-card.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-color.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-color.png
new file mode 100755 (executable)
index 0000000..1c2b54f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-color.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-document.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-document.png
new file mode 100755 (executable)
index 0000000..1930fb2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-document.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-html.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-html.png
new file mode 100755 (executable)
index 0000000..9e5bc52
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-html.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-image.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-image.png
new file mode 100755 (executable)
index 0000000..fdf5370
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-image.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-manual.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-manual.png
new file mode 100755 (executable)
index 0000000..708e7b4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-manual.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-multimedia.png
new file mode 100755 (executable)
index 0000000..bfe6022
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-pdf.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-pdf.png
new file mode 100755 (executable)
index 0000000..27faad6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-pdf.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-quicktime.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-quicktime.png
new file mode 100755 (executable)
index 0000000..90418af
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-quicktime.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-rpm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-rpm.png
new file mode 100755 (executable)
index 0000000..7a7cb19
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-rpm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-script.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-script.png
new file mode 100755 (executable)
index 0000000..734689e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-script.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-shellscript.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-shellscript.png
new file mode 100755 (executable)
index 0000000..b560ad5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-shellscript.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-sourcecode.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-sourcecode.png
new file mode 100755 (executable)
index 0000000..4ebc8e1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-sourcecode.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-spreadsheet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-spreadsheet.png
new file mode 100755 (executable)
index 0000000..126f1c8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-spreadsheet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-text.png
new file mode 100755 (executable)
index 0000000..d662de4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-video.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-video.png
new file mode 100755 (executable)
index 0000000..6c5f692
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mime-video.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/misc.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/misc.png
new file mode 100644 (file)
index 0000000..215fc6a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/misc.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mixer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mixer.png
new file mode 100755 (executable)
index 0000000..dbf51d2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mixer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/modem.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/modem.png
new file mode 100644 (file)
index 0000000..9b13f12
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/modem.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mouse.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mouse.png
new file mode 100644 (file)
index 0000000..3c0d31d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mouse.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mousecursor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mousecursor.png
new file mode 100644 (file)
index 0000000..c0aa322
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mousecursor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/movieplayer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/movieplayer.png
new file mode 100644 (file)
index 0000000..6959db1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/movieplayer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/multimedia.png
new file mode 100644 (file)
index 0000000..b27588d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mycomputer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mycomputer.png
new file mode 100755 (executable)
index 0000000..c399a2f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/mycomputer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/netscape.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/netscape.png
new file mode 100755 (executable)
index 0000000..c55057f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/netscape.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/network.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/network.png
new file mode 100644 (file)
index 0000000..5acff48
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/network.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/no.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/no.png
new file mode 100644 (file)
index 0000000..1cabc6e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/no.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/notes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/notes.png
new file mode 100644 (file)
index 0000000..e5eba9b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/notes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/notify.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/notify.png
new file mode 100755 (executable)
index 0000000..a893d62
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/notify.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/ok.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/ok.png
new file mode 100644 (file)
index 0000000..543710f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/ok.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/opera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/opera.png
new file mode 100755 (executable)
index 0000000..4694c2b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/opera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/organizer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/organizer.png
new file mode 100644 (file)
index 0000000..fb840c5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/organizer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/outbox.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/outbox.png
new file mode 100644 (file)
index 0000000..91e3b24
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/outbox.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/paint.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/paint.png
new file mode 100644 (file)
index 0000000..92039e4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/paint.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/partitions.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/partitions.png
new file mode 100644 (file)
index 0000000..5b6eb87
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/partitions.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/password.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/password.png
new file mode 100644 (file)
index 0000000..ca93f0d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/password.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/pda.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/pda.png
new file mode 100644 (file)
index 0000000..b1e37a6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/pda.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/penguin.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/penguin.png
new file mode 100644 (file)
index 0000000..a0a9743
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/penguin.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/pipe.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/pipe.png
new file mode 100644 (file)
index 0000000..5f4d840
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/pipe.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/presentation.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/presentation.png
new file mode 100644 (file)
index 0000000..1bfd18a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/presentation.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/printer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/printer.png
new file mode 100644 (file)
index 0000000..2fa62c3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/printer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/queue.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/queue.png
new file mode 100644 (file)
index 0000000..5dc9f93
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/queue.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/redo.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/redo.png
new file mode 100644 (file)
index 0000000..5d6121b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/redo.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/reload.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/reload.png
new file mode 100644 (file)
index 0000000..eb0388d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/reload.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/remove-comment.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/remove-comment.png
new file mode 100644 (file)
index 0000000..5513835
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/remove-comment.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/rotate.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/rotate.png
new file mode 100644 (file)
index 0000000..2434948
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/rotate.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/run.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/run.png
new file mode 100644 (file)
index 0000000..215fc6a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/run.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/scanner.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/scanner.png
new file mode 100644 (file)
index 0000000..627540c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/scanner.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/search.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/search.png
new file mode 100644 (file)
index 0000000..593a566
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/search.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/server.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/server.png
new file mode 100644 (file)
index 0000000..ef289f6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/server.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/services.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/services.png
new file mode 100644 (file)
index 0000000..b140c3c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/services.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/settings.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/settings.png
new file mode 100644 (file)
index 0000000..fa8d03b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/settings.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/signature.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/signature.png
new file mode 100644 (file)
index 0000000..62babc3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/signature.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/sound.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/sound.png
new file mode 100644 (file)
index 0000000..dbf51d2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/sound.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/spellcheck.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/spellcheck.png
new file mode 100644 (file)
index 0000000..dbb8aa6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/spellcheck.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/stop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/stop.png
new file mode 100644 (file)
index 0000000..45c03d5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/stop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/style.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/style.png
new file mode 100644 (file)
index 0000000..b727f8f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/style.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/system.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/system.png
new file mode 100644 (file)
index 0000000..b97bfb4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/system.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-duplicate.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-duplicate.png
new file mode 100755 (executable)
index 0000000..68a6bab
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-duplicate.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-new-raised.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-new-raised.png
new file mode 100755 (executable)
index 0000000..6c4423e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-new-raised.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-new.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-new.png
new file mode 100755 (executable)
index 0000000..0d0d670
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-new.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-remove.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-remove.png
new file mode 100755 (executable)
index 0000000..c33ffff
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tab-remove.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tablet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tablet.png
new file mode 100644 (file)
index 0000000..cfb9bf0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tablet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/terminal.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/terminal.png
new file mode 100644 (file)
index 0000000..75fa314
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/terminal.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-bottom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-bottom.png
new file mode 100644 (file)
index 0000000..cd9bcf7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-bottom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-color.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-color.png
new file mode 100644 (file)
index 0000000..25c654d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-color.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-strike.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-strike.png
new file mode 100644 (file)
index 0000000..6d708f6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-strike.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-sub.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-sub.png
new file mode 100644 (file)
index 0000000..eb9ee34
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-sub.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-super.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-super.png
new file mode 100644 (file)
index 0000000..dc91b70
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-super.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-top.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-top.png
new file mode 100644 (file)
index 0000000..0da698d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/text-top.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/themes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/themes.png
new file mode 100644 (file)
index 0000000..a91d85c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/themes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/toys.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/toys.png
new file mode 100644 (file)
index 0000000..a2ad6b8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/toys.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/trash.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/trash.png
new file mode 100644 (file)
index 0000000..5a8da1a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/trash.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/trashcan-empty.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/trashcan-empty.png
new file mode 100644 (file)
index 0000000..f5cb2b8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/trashcan-empty.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/trashcan-full.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/trashcan-full.png
new file mode 100644 (file)
index 0000000..5cbb146
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/trashcan-full.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tux.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tux.png
new file mode 100644 (file)
index 0000000..db2e8b7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tux.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tv.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tv.png
new file mode 100644 (file)
index 0000000..bfc206a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/tv.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/undo.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/undo.png
new file mode 100644 (file)
index 0000000..ee410a9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/undo.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/up.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/up.png
new file mode 100644 (file)
index 0000000..0777b0b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/up.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/user.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/user.png
new file mode 100644 (file)
index 0000000..8f69e2b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/user.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/utilities.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/utilities.png
new file mode 100644 (file)
index 0000000..dabbd12
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/utilities.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/vectorgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/vectorgraphics.png
new file mode 100644 (file)
index 0000000..cb53b37
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/vectorgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-bottom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-bottom.png
new file mode 100644 (file)
index 0000000..b49b717
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-bottom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-choose.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-choose.png
new file mode 100644 (file)
index 0000000..da6c77b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-choose.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-detailed.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-detailed.png
new file mode 100644 (file)
index 0000000..de55b06
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-detailed.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-icon.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-icon.png
new file mode 100644 (file)
index 0000000..8ca7c13
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-icon.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-left-right.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-left-right.png
new file mode 100755 (executable)
index 0000000..e1ce5e0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-left-right.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-multicolumn.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-multicolumn.png
new file mode 100644 (file)
index 0000000..d6c4b0f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-multicolumn.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-remove.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-remove.png
new file mode 100755 (executable)
index 0000000..7d292ea
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-remove.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-right.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-right.png
new file mode 100755 (executable)
index 0000000..2e81c99
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-right.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-sidetree.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-sidetree.png
new file mode 100644 (file)
index 0000000..1c401d1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-sidetree.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-text.png
new file mode 100644 (file)
index 0000000..0ac606c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-top-bottom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-top-bottom.png
new file mode 100755 (executable)
index 0000000..2f1f06a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-top-bottom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-tree.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-tree.png
new file mode 100755 (executable)
index 0000000..477387c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/view-tree.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-fit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-fit.png
new file mode 100644 (file)
index 0000000..1a6e263
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-fit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-minus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-minus.png
new file mode 100644 (file)
index 0000000..6a430e8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-minus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-original.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-original.png
new file mode 100644 (file)
index 0000000..dadd3ed
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-original.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-plus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-plus.png
new file mode 100644 (file)
index 0000000..902b292
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag-plus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag.png
new file mode 100644 (file)
index 0000000..593a566
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/viewmag.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/wizard.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/wizard.png
new file mode 100644 (file)
index 0000000..3107990
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/wizard.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/wordprocessor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/wordprocessor.png
new file mode 100644 (file)
index 0000000..71ee960
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/16/wordprocessor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/adobe-reader.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/adobe-reader.png
new file mode 100755 (executable)
index 0000000..7950b65
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/adobe-reader.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/alarm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/alarm.png
new file mode 100644 (file)
index 0000000..212eb18
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/alarm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/antivirus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/antivirus.png
new file mode 100644 (file)
index 0000000..4ac0c80
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/antivirus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/appearance.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/appearance.png
new file mode 100644 (file)
index 0000000..985147d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/appearance.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/appointment.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/appointment.png
new file mode 100644 (file)
index 0000000..22aa13e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/appointment.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/attach.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/attach.png
new file mode 100644 (file)
index 0000000..2760b33
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/attach.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/babelfish.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/babelfish.png
new file mode 100644 (file)
index 0000000..a93b2af
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/babelfish.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/back.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/back.png
new file mode 100644 (file)
index 0000000..4148ab8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/back.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/background.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/background.png
new file mode 100755 (executable)
index 0000000..5ab7323
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/background.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bell.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bell.png
new file mode 100644 (file)
index 0000000..3482bac
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bell.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bitmapgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bitmapgraphics.png
new file mode 100644 (file)
index 0000000..253cc09
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bitmapgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/block-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/block-device.png
new file mode 100644 (file)
index 0000000..c1330e8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/block-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bookmark-add.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bookmark-add.png
new file mode 100644 (file)
index 0000000..ce4fea6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bookmark-add.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bookmark.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bookmark.png
new file mode 100644 (file)
index 0000000..ced954c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/bookmark.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/button-cancel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/button-cancel.png
new file mode 100644 (file)
index 0000000..9691957
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/button-cancel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/button-ok.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/button-ok.png
new file mode 100644 (file)
index 0000000..31c064b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/button-ok.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/cache.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/cache.png
new file mode 100644 (file)
index 0000000..a9d0dd2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/cache.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/camera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/camera.png
new file mode 100644 (file)
index 0000000..c15f626
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/camera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/cancel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/cancel.png
new file mode 100644 (file)
index 0000000..9691957
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/cancel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/cdrom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/cdrom.png
new file mode 100644 (file)
index 0000000..2a9bb9f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/cdrom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/char-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/char-device.png
new file mode 100644 (file)
index 0000000..3d26f0c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/char-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/clock.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/clock.png
new file mode 100644 (file)
index 0000000..d109933
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/clock.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/color-fill.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/color-fill.png
new file mode 100644 (file)
index 0000000..71d4e2e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/color-fill.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/color-line.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/color-line.png
new file mode 100644 (file)
index 0000000..86f35a7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/color-line.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/colors.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/colors.png
new file mode 100644 (file)
index 0000000..a2fb946
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/colors.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/configure.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/configure.png
new file mode 100644 (file)
index 0000000..96ba433
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/configure.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/connect-creating.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/connect-creating.png
new file mode 100644 (file)
index 0000000..437b9b6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/connect-creating.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/connect-established.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/connect-established.png
new file mode 100644 (file)
index 0000000..73b3cba
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/connect-established.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/connect-no.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/connect-no.png
new file mode 100644 (file)
index 0000000..66c4e7f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/connect-no.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/contents.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/contents.png
new file mode 100644 (file)
index 0000000..7596e67
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/contents.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/control-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/control-center.png
new file mode 100644 (file)
index 0000000..28a7199
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/control-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/core.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/core.png
new file mode 100644 (file)
index 0000000..73197f5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/core.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/date.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/date.png
new file mode 100644 (file)
index 0000000..706eacb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/date.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/decrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/decrypted.png
new file mode 100644 (file)
index 0000000..2228639
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/decrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/delete-table-col.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/delete-table-col.png
new file mode 100644 (file)
index 0000000..86800e4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/delete-table-col.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/delete-table-row.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/delete-table-row.png
new file mode 100644 (file)
index 0000000..e3a4a56
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/delete-table-row.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/desktop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/desktop.png
new file mode 100644 (file)
index 0000000..7a90fa1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/desktop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/dictionary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/dictionary.png
new file mode 100644 (file)
index 0000000..ba7df51
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/dictionary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/display.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/display.png
new file mode 100644 (file)
index 0000000..4c8a288
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/display.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/down.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/down.png
new file mode 100644 (file)
index 0000000..43b7aca
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/down.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-copy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-copy.png
new file mode 100644 (file)
index 0000000..eac4d8c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-copy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-cut.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-cut.png
new file mode 100644 (file)
index 0000000..192b575
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-cut.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-delete.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-delete.png
new file mode 100644 (file)
index 0000000..6fb193f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-delete.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-paste.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-paste.png
new file mode 100644 (file)
index 0000000..b8454f9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit-paste.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit.png
new file mode 100644 (file)
index 0000000..ce8b226
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/edit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/effect.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/effect.png
new file mode 100644 (file)
index 0000000..1ba5312
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/effect.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/email.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/email.png
new file mode 100644 (file)
index 0000000..a21f68f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/email.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/encrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/encrypted.png
new file mode 100644 (file)
index 0000000..39a52b6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/encrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/energy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/energy.png
new file mode 100644 (file)
index 0000000..f70a153
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/energy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/error.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/error.png
new file mode 100644 (file)
index 0000000..ddce82a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/error.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/exec.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/exec.png
new file mode 100644 (file)
index 0000000..8e3b5a9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/exec.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/exit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/exit.png
new file mode 100644 (file)
index 0000000..119e5ef
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/exit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/favourite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/favourite.png
new file mode 100644 (file)
index 0000000..00880af
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/favourite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-find.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-find.png
new file mode 100644 (file)
index 0000000..40762a0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-find.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-new.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-new.png
new file mode 100644 (file)
index 0000000..7be37e8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-new.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-open.png
new file mode 100644 (file)
index 0000000..a79982e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-print.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-print.png
new file mode 100644 (file)
index 0000000..3a96c4a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-print.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-save-as.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-save-as.png
new file mode 100644 (file)
index 0000000..517fc2e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-save-as.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-save.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-save.png
new file mode 100644 (file)
index 0000000..f85b99a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/file-save.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/find.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/find.png
new file mode 100644 (file)
index 0000000..da3da6d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/find.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/floppy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/floppy.png
new file mode 100644 (file)
index 0000000..0ff7434
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/floppy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/flowchart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/flowchart.png
new file mode 100644 (file)
index 0000000..d07de88
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/flowchart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-favorite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-favorite.png
new file mode 100644 (file)
index 0000000..c2633f6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-favorite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-important.png
new file mode 100644 (file)
index 0000000..8ed96f8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-locked.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-locked.png
new file mode 100644 (file)
index 0000000..38bfb79
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-locked.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-open.png
new file mode 100644 (file)
index 0000000..bfb8e8d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder.png
new file mode 100644 (file)
index 0000000..d44563c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/folder.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/font-size-down.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/font-size-down.png
new file mode 100644 (file)
index 0000000..dc21e60
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/font-size-down.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/font-size-up.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/font-size-up.png
new file mode 100644 (file)
index 0000000..d06fc81
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/font-size-up.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/fonts.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/fonts.png
new file mode 100644 (file)
index 0000000..1741a2e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/fonts.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/format-decrease-indent.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/format-decrease-indent.png
new file mode 100644 (file)
index 0000000..6a58ff5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/format-decrease-indent.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/format-increase-indent.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/format-increase-indent.png
new file mode 100644 (file)
index 0000000..581605d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/format-increase-indent.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/forward.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/forward.png
new file mode 100644 (file)
index 0000000..b6e026a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/forward.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/funct.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/funct.png
new file mode 100644 (file)
index 0000000..a7a50a5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/funct.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/graphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/graphics.png
new file mode 100644 (file)
index 0000000..5cf9859
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/graphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/harddrive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/harddrive.png
new file mode 100644 (file)
index 0000000..e8f8504
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/harddrive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/hardware-info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/hardware-info.png
new file mode 100644 (file)
index 0000000..8d0c3cf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/hardware-info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/help-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/help-center.png
new file mode 100644 (file)
index 0000000..44588c9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/help-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/help.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/help.png
new file mode 100644 (file)
index 0000000..9fe7652
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/help.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/history.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/history.png
new file mode 100644 (file)
index 0000000..ea64540
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/history.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/home.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/home.png
new file mode 100644 (file)
index 0000000..14ee484
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/home.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/idea.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/idea.png
new file mode 100644 (file)
index 0000000..d9e7d12
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/idea.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/inbox.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/inbox.png
new file mode 100644 (file)
index 0000000..0a921b6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/inbox.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/info.png
new file mode 100644 (file)
index 0000000..5b97b2f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/insert-table-col.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/insert-table-col.png
new file mode 100644 (file)
index 0000000..cf2283d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/insert-table-col.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/insert-table-row.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/insert-table-row.png
new file mode 100644 (file)
index 0000000..5af5fbe
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/insert-table-row.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/instant-available.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/instant-available.png
new file mode 100644 (file)
index 0000000..1449318
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/instant-available.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/instant-away.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/instant-away.png
new file mode 100644 (file)
index 0000000..370144e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/instant-away.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/joystick.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/joystick.png
new file mode 100644 (file)
index 0000000..8821428
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/joystick.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/keyboard-layout.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/keyboard-layout.png
new file mode 100644 (file)
index 0000000..8e417a7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/keyboard-layout.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/launch.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/launch.png
new file mode 100644 (file)
index 0000000..da97aef
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/launch.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/locale.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/locale.png
new file mode 100644 (file)
index 0000000..553e683
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/locale.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/look-and-feel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/look-and-feel.png
new file mode 100644 (file)
index 0000000..0792b3a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/look-and-feel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mac.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mac.png
new file mode 100644 (file)
index 0000000..1e8db45
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mac.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-delete.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-delete.png
new file mode 100644 (file)
index 0000000..7b1430a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-delete.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-find.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-find.png
new file mode 100644 (file)
index 0000000..202275a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-find.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-forward.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-forward.png
new file mode 100644 (file)
index 0000000..919b41e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-forward.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-get.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-get.png
new file mode 100644 (file)
index 0000000..d8d2deb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-get.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-new.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-new.png
new file mode 100644 (file)
index 0000000..384cbf3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-new.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-reply-all.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-reply-all.png
new file mode 100644 (file)
index 0000000..742a40b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-reply-all.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-reply.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-reply.png
new file mode 100644 (file)
index 0000000..e0f50a7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-reply.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-send.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-send.png
new file mode 100644 (file)
index 0000000..a802f04
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail-send.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail.png
new file mode 100644 (file)
index 0000000..732b5b6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mail.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-archive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-archive.png
new file mode 100755 (executable)
index 0000000..fdc7a52
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-archive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-binary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-binary.png
new file mode 100755 (executable)
index 0000000..28d3bea
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-binary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-calendar.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-calendar.png
new file mode 100755 (executable)
index 0000000..d754cb4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-calendar.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-card.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-card.png
new file mode 100755 (executable)
index 0000000..a8b9429
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-card.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-document.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-document.png
new file mode 100755 (executable)
index 0000000..8901c3a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-document.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-html.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-html.png
new file mode 100755 (executable)
index 0000000..d0df8e9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-html.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-image.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-image.png
new file mode 100755 (executable)
index 0000000..a6f715e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-image.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-manual.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-manual.png
new file mode 100755 (executable)
index 0000000..d35a197
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-manual.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-multimedia.png
new file mode 100755 (executable)
index 0000000..2fab2df
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-pdf.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-pdf.png
new file mode 100755 (executable)
index 0000000..41bbe56
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-pdf.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-quicktime.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-quicktime.png
new file mode 100755 (executable)
index 0000000..9149170
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-quicktime.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-rpm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-rpm.png
new file mode 100755 (executable)
index 0000000..ebef4c7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-rpm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-script.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-script.png
new file mode 100755 (executable)
index 0000000..bdd0471
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-script.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-shellscript.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-shellscript.png
new file mode 100755 (executable)
index 0000000..59de8cf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-shellscript.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-sourcecode.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-sourcecode.png
new file mode 100755 (executable)
index 0000000..20cdf4c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-sourcecode.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-spreadsheet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-spreadsheet.png
new file mode 100755 (executable)
index 0000000..4e478c0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-spreadsheet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-text.png
new file mode 100755 (executable)
index 0000000..2ae8d9c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-video.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-video.png
new file mode 100755 (executable)
index 0000000..643fc45
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mime-video.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/misc.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/misc.png
new file mode 100644 (file)
index 0000000..b5c8949
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/misc.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/modem.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/modem.png
new file mode 100755 (executable)
index 0000000..3d1b26a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/modem.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mouse.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mouse.png
new file mode 100644 (file)
index 0000000..db3ddfa
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mouse.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/movieplayer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/movieplayer.png
new file mode 100644 (file)
index 0000000..53ffcde
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/movieplayer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/multimedia.png
new file mode 100644 (file)
index 0000000..305915c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mycomputer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mycomputer.png
new file mode 100755 (executable)
index 0000000..c707081
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/mycomputer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/netscape.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/netscape.png
new file mode 100755 (executable)
index 0000000..25cb9da
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/netscape.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/network.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/network.png
new file mode 100644 (file)
index 0000000..c8ae2d8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/network.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/ok.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/ok.png
new file mode 100644 (file)
index 0000000..13ba71d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/ok.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/outbox.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/outbox.png
new file mode 100644 (file)
index 0000000..1e8dc24
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/outbox.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/paint.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/paint.png
new file mode 100644 (file)
index 0000000..faa687b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/paint.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/partitions.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/partitions.png
new file mode 100644 (file)
index 0000000..286ed29
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/partitions.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/password.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/password.png
new file mode 100644 (file)
index 0000000..2c84ee4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/password.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/pda.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/pda.png
new file mode 100644 (file)
index 0000000..e471f2c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/pda.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/penguin.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/penguin.png
new file mode 100644 (file)
index 0000000..83819e5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/penguin.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/printer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/printer.png
new file mode 100755 (executable)
index 0000000..a127444
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/printer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/queue.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/queue.png
new file mode 100644 (file)
index 0000000..a379214
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/queue.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/redo.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/redo.png
new file mode 100644 (file)
index 0000000..8a4c817
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/redo.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/reload.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/reload.png
new file mode 100644 (file)
index 0000000..9b80d87
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/reload.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/run.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/run.png
new file mode 100644 (file)
index 0000000..b5c8949
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/run.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/scanner.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/scanner.png
new file mode 100644 (file)
index 0000000..5c33844
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/scanner.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/search.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/search.png
new file mode 100644 (file)
index 0000000..4f880ab
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/search.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/server.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/server.png
new file mode 100644 (file)
index 0000000..3d09040
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/server.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/services.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/services.png
new file mode 100644 (file)
index 0000000..7592ac3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/services.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/settings.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/settings.png
new file mode 100644 (file)
index 0000000..c611e63
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/settings.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/signature.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/signature.png
new file mode 100644 (file)
index 0000000..d6e767c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/signature.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/spellcheck.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/spellcheck.png
new file mode 100644 (file)
index 0000000..444dce6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/spellcheck.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/stop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/stop.png
new file mode 100644 (file)
index 0000000..830e2e6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/stop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/tablet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/tablet.png
new file mode 100644 (file)
index 0000000..ed68ce8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/tablet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/terminal.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/terminal.png
new file mode 100644 (file)
index 0000000..bd7fd77
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/terminal.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/text-strike.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/text-strike.png
new file mode 100644 (file)
index 0000000..c060b4a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/text-strike.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/toys.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/toys.png
new file mode 100644 (file)
index 0000000..2202ff6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/toys.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/trashcan-empty.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/trashcan-empty.png
new file mode 100644 (file)
index 0000000..e9bc350
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/trashcan-empty.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/trashcan-full.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/trashcan-full.png
new file mode 100644 (file)
index 0000000..7b7b610
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/trashcan-full.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/tux.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/tux.png
new file mode 100644 (file)
index 0000000..32c8514
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/tux.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/tv.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/tv.png
new file mode 100644 (file)
index 0000000..321d666
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/tv.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/undo.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/undo.png
new file mode 100644 (file)
index 0000000..a63c3ef
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/undo.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/up.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/up.png
new file mode 100644 (file)
index 0000000..dfd2fd0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/up.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/user.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/user.png
new file mode 100644 (file)
index 0000000..ee321d4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/user.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/utilities.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/utilities.png
new file mode 100644 (file)
index 0000000..23193e4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/utilities.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/vectorgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/vectorgraphics.png
new file mode 100644 (file)
index 0000000..503d9b3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/vectorgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-bottom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-bottom.png
new file mode 100644 (file)
index 0000000..2607a50
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-bottom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-choose.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-choose.png
new file mode 100644 (file)
index 0000000..21ec5a3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-choose.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-detailed.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-detailed.png
new file mode 100644 (file)
index 0000000..19ab36e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-detailed.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-icon.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-icon.png
new file mode 100644 (file)
index 0000000..f6ced88
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-icon.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-left-right.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-left-right.png
new file mode 100755 (executable)
index 0000000..7de6ba0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-left-right.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-multicolumn.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-multicolumn.png
new file mode 100644 (file)
index 0000000..aa834c3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-multicolumn.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-remove.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-remove.png
new file mode 100755 (executable)
index 0000000..abfcae8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-remove.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-right.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-right.png
new file mode 100755 (executable)
index 0000000..542f977
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-right.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-sidetree.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-sidetree.png
new file mode 100644 (file)
index 0000000..ddf73f5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-sidetree.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-text.png
new file mode 100644 (file)
index 0000000..f789dda
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-top-bottom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-top-bottom.png
new file mode 100755 (executable)
index 0000000..6384728
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-top-bottom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-tree.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-tree.png
new file mode 100755 (executable)
index 0000000..7eb7909
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/view-tree.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-fit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-fit.png
new file mode 100644 (file)
index 0000000..4d8b061
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-fit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-minus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-minus.png
new file mode 100644 (file)
index 0000000..7ecf08f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-minus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-original.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-original.png
new file mode 100644 (file)
index 0000000..e09aa1e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-original.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-plus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-plus.png
new file mode 100644 (file)
index 0000000..df1f1a9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag-plus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag.png
new file mode 100644 (file)
index 0000000..4f880ab
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/viewmag.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/wizard.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/wizard.png
new file mode 100644 (file)
index 0000000..21d5e2f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/22/wizard.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/3d.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/3d.png
new file mode 100644 (file)
index 0000000..226d45a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/3d.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/accessibility.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/accessibility.png
new file mode 100644 (file)
index 0000000..58429ca
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/accessibility.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/adobe-reader.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/adobe-reader.png
new file mode 100755 (executable)
index 0000000..75f1fc2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/adobe-reader.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/alarm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/alarm.png
new file mode 100644 (file)
index 0000000..3c5b9f0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/alarm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/antivirus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/antivirus.png
new file mode 100644 (file)
index 0000000..eaca74a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/antivirus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/appearance.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/appearance.png
new file mode 100644 (file)
index 0000000..3b39c56
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/appearance.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/applications.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/applications.png
new file mode 100644 (file)
index 0000000..4d53100
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/applications.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/appointment.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/appointment.png
new file mode 100644 (file)
index 0000000..21fb6dd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/appointment.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/attach.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/attach.png
new file mode 100644 (file)
index 0000000..10b7dfc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/attach.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/babelfish.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/babelfish.png
new file mode 100644 (file)
index 0000000..96b4201
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/babelfish.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/back.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/back.png
new file mode 100644 (file)
index 0000000..895755e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/back.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/background.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/background.png
new file mode 100755 (executable)
index 0000000..45d81ed
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/background.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bell.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bell.png
new file mode 100644 (file)
index 0000000..6f8293f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bell.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bitmapgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bitmapgraphics.png
new file mode 100644 (file)
index 0000000..ea7af0f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bitmapgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/block-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/block-device.png
new file mode 100644 (file)
index 0000000..6553907
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/block-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bookmark-add.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bookmark-add.png
new file mode 100644 (file)
index 0000000..9b95bd3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bookmark-add.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bookmark.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bookmark.png
new file mode 100644 (file)
index 0000000..028869c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bookmark.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bug.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bug.png
new file mode 100644 (file)
index 0000000..41d2051
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/bug.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/button-cancel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/button-cancel.png
new file mode 100644 (file)
index 0000000..c6464d9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/button-cancel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/button-ok.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/button-ok.png
new file mode 100644 (file)
index 0000000..230de53
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/button-ok.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cache.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cache.png
new file mode 100644 (file)
index 0000000..7700fd9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cache.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/calculator.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/calculator.png
new file mode 100644 (file)
index 0000000..3406316
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/calculator.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cam.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cam.png
new file mode 100644 (file)
index 0000000..6bd468b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cam.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/camera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/camera.png
new file mode 100644 (file)
index 0000000..f32b85a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/camera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cdrom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cdrom.png
new file mode 100644 (file)
index 0000000..ad3239a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cdrom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/char-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/char-device.png
new file mode 100644 (file)
index 0000000..6ebcc04
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/char-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/chart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/chart.png
new file mode 100644 (file)
index 0000000..943b8bd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/chart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/clipboard.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/clipboard.png
new file mode 100755 (executable)
index 0000000..e84fa76
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/clipboard.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/clock.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/clock.png
new file mode 100644 (file)
index 0000000..0f93b36
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/clock.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/colors.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/colors.png
new file mode 100644 (file)
index 0000000..e5aa87c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/colors.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/configure.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/configure.png
new file mode 100644 (file)
index 0000000..1141564
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/configure.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/connect-creating.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/connect-creating.png
new file mode 100644 (file)
index 0000000..0c217aa
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/connect-creating.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/connect-established.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/connect-established.png
new file mode 100644 (file)
index 0000000..efe48f7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/connect-established.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/connect-no.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/connect-no.png
new file mode 100644 (file)
index 0000000..da9ed96
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/connect-no.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/contents.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/contents.png
new file mode 100644 (file)
index 0000000..2e86079
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/contents.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/control-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/control-center.png
new file mode 100644 (file)
index 0000000..6537ba7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/control-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cookie.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cookie.png
new file mode 100644 (file)
index 0000000..c062d07
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/cookie.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/core.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/core.png
new file mode 100644 (file)
index 0000000..9f4b6cc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/core.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/date.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/date.png
new file mode 100644 (file)
index 0000000..2e20985
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/date.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/decrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/decrypted.png
new file mode 100644 (file)
index 0000000..0becd65
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/decrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/delete-table-col.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/delete-table-col.png
new file mode 100644 (file)
index 0000000..e1d58ac
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/delete-table-col.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/delete-table-row.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/delete-table-row.png
new file mode 100644 (file)
index 0000000..8a9df47
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/delete-table-row.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/desktop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/desktop.png
new file mode 100644 (file)
index 0000000..85b495e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/desktop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/devices.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/devices.png
new file mode 100644 (file)
index 0000000..d6354ad
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/devices.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/dictionary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/dictionary.png
new file mode 100644 (file)
index 0000000..fa3a053
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/dictionary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/display.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/display.png
new file mode 100644 (file)
index 0000000..1d9b132
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/display.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/down.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/down.png
new file mode 100644 (file)
index 0000000..adb188b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/down.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-copy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-copy.png
new file mode 100644 (file)
index 0000000..cfa9cb4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-copy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-cut.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-cut.png
new file mode 100644 (file)
index 0000000..79d2dca
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-cut.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-delete.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-delete.png
new file mode 100644 (file)
index 0000000..945d221
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-delete.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-paste.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-paste.png
new file mode 100644 (file)
index 0000000..a192060
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit-paste.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit.png
new file mode 100644 (file)
index 0000000..1d69145
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/edit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/editor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/editor.png
new file mode 100644 (file)
index 0000000..e4185bf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/editor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/email.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/email.png
new file mode 100644 (file)
index 0000000..edaba05
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/email.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/encrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/encrypted.png
new file mode 100644 (file)
index 0000000..61bf0de
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/encrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/energy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/energy.png
new file mode 100644 (file)
index 0000000..97681a4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/energy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/error.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/error.png
new file mode 100644 (file)
index 0000000..1327c24
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/error.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/exec.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/exec.png
new file mode 100644 (file)
index 0000000..6d21477
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/exec.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/exit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/exit.png
new file mode 100644 (file)
index 0000000..4877f19
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/exit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/favorites.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/favorites.png
new file mode 100644 (file)
index 0000000..b7e10c4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/favorites.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/favourite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/favourite.png
new file mode 100644 (file)
index 0000000..e75523b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/favourite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-find.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-find.png
new file mode 100644 (file)
index 0000000..418a8ad
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-find.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-manager.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-manager.png
new file mode 100644 (file)
index 0000000..699c0dd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-manager.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-new.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-new.png
new file mode 100644 (file)
index 0000000..8a303b7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-new.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-open.png
new file mode 100644 (file)
index 0000000..503a004
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-print.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-print.png
new file mode 100644 (file)
index 0000000..4325b61
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-print.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-save-as.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-save-as.png
new file mode 100644 (file)
index 0000000..61a080e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-save-as.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-save.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-save.png
new file mode 100644 (file)
index 0000000..dd00abd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/file-save.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/fileshare.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/fileshare.png
new file mode 100644 (file)
index 0000000..e4642e8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/fileshare.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/find.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/find.png
new file mode 100644 (file)
index 0000000..91f6eb6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/find.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/floppy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/floppy.png
new file mode 100644 (file)
index 0000000..b593aea
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/floppy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/flowchart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/flowchart.png
new file mode 100644 (file)
index 0000000..b1443c7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/flowchart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-favorite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-favorite.png
new file mode 100644 (file)
index 0000000..f810eb7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-favorite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-important.png
new file mode 100644 (file)
index 0000000..fd35b91
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-locked.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-locked.png
new file mode 100644 (file)
index 0000000..1b4b616
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-locked.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-open.png
new file mode 100644 (file)
index 0000000..18cfb60
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder.png
new file mode 100644 (file)
index 0000000..5194d1b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/folder.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/fonts.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/fonts.png
new file mode 100644 (file)
index 0000000..cc01e0e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/fonts.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/forward.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/forward.png
new file mode 100644 (file)
index 0000000..6e8a04b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/forward.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/funct.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/funct.png
new file mode 100644 (file)
index 0000000..987cdb0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/funct.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/games.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/games.png
new file mode 100644 (file)
index 0000000..2bb69e7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/games.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/goto.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/goto.png
new file mode 100644 (file)
index 0000000..101162f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/goto.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/graphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/graphics.png
new file mode 100644 (file)
index 0000000..62dae0d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/graphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/harddrive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/harddrive.png
new file mode 100644 (file)
index 0000000..bec63d5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/harddrive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/hardware-info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/hardware-info.png
new file mode 100644 (file)
index 0000000..c9ad3a0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/hardware-info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/hardware.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/hardware.png
new file mode 100644 (file)
index 0000000..84d4058
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/hardware.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/help-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/help-center.png
new file mode 100644 (file)
index 0000000..a626c9d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/help-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/help.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/help.png
new file mode 100644 (file)
index 0000000..5858f03
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/help.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/home.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/home.png
new file mode 100644 (file)
index 0000000..5205539
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/home.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/icons.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/icons.png
new file mode 100644 (file)
index 0000000..a12f847
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/icons.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/iconthemes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/iconthemes.png
new file mode 100644 (file)
index 0000000..c532675
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/iconthemes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/important.png
new file mode 100644 (file)
index 0000000..d83f349
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/inbox.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/inbox.png
new file mode 100644 (file)
index 0000000..62aefcc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/inbox.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/info.png
new file mode 100644 (file)
index 0000000..8f5f806
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/insert-table-col.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/insert-table-col.png
new file mode 100644 (file)
index 0000000..f0dab49
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/insert-table-col.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/insert-table-row.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/insert-table-row.png
new file mode 100644 (file)
index 0000000..504b9b0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/insert-table-row.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/instant-available.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/instant-available.png
new file mode 100644 (file)
index 0000000..24d280b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/instant-available.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/instant-away.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/instant-away.png
new file mode 100644 (file)
index 0000000..c13f522
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/instant-away.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/joystick.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/joystick.png
new file mode 100644 (file)
index 0000000..35ed317
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/joystick.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/keyboard-layout.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/keyboard-layout.png
new file mode 100644 (file)
index 0000000..672c593
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/keyboard-layout.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/launch.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/launch.png
new file mode 100644 (file)
index 0000000..5f61bea
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/launch.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/locale.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/locale.png
new file mode 100644 (file)
index 0000000..96b4201
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/locale.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/look-and-feel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/look-and-feel.png
new file mode 100644 (file)
index 0000000..75e2921
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/look-and-feel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mac.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mac.png
new file mode 100644 (file)
index 0000000..68b8b66
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mac.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/magnifier.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/magnifier.png
new file mode 100644 (file)
index 0000000..af1e065
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/magnifier.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-delete.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-delete.png
new file mode 100644 (file)
index 0000000..f66cc05
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-delete.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-find.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-find.png
new file mode 100644 (file)
index 0000000..7992c47
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-find.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-get.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-get.png
new file mode 100644 (file)
index 0000000..e0362d7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-get.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-new.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-new.png
new file mode 100644 (file)
index 0000000..e8dfc7c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-new.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-send.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-send.png
new file mode 100644 (file)
index 0000000..01bd046
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail-send.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail.png
new file mode 100644 (file)
index 0000000..4d9cf72
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mail.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/memory.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/memory.png
new file mode 100644 (file)
index 0000000..8b50f37
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/memory.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-archive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-archive.png
new file mode 100755 (executable)
index 0000000..2d092f3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-archive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-binary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-binary.png
new file mode 100755 (executable)
index 0000000..cb2ff54
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-binary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-calendar.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-calendar.png
new file mode 100755 (executable)
index 0000000..4e0b082
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-calendar.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-card.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-card.png
new file mode 100755 (executable)
index 0000000..326feb1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-card.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-document.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-document.png
new file mode 100755 (executable)
index 0000000..1ddec27
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-document.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-html.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-html.png
new file mode 100755 (executable)
index 0000000..9490e6e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-html.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-image.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-image.png
new file mode 100755 (executable)
index 0000000..d6a9bc3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-image.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-manual.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-manual.png
new file mode 100755 (executable)
index 0000000..99b740a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-manual.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-multimedia.png
new file mode 100755 (executable)
index 0000000..9fefada
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-pdf.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-pdf.png
new file mode 100755 (executable)
index 0000000..fca2c67
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-pdf.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-quicktime.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-quicktime.png
new file mode 100755 (executable)
index 0000000..637d392
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-quicktime.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-rpm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-rpm.png
new file mode 100755 (executable)
index 0000000..8c0ea5e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-rpm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-script.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-script.png
new file mode 100755 (executable)
index 0000000..99d8d82
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-script.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-shellscript.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-shellscript.png
new file mode 100755 (executable)
index 0000000..a0f6727
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-shellscript.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-sourcecode.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-sourcecode.png
new file mode 100755 (executable)
index 0000000..e9d7305
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-sourcecode.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-spreadsheet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-spreadsheet.png
new file mode 100755 (executable)
index 0000000..b9b8d56
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-spreadsheet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-text.png
new file mode 100755 (executable)
index 0000000..cdd115f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-video.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-video.png
new file mode 100755 (executable)
index 0000000..de00f0e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mime-video.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/misc.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/misc.png
new file mode 100644 (file)
index 0000000..6d21477
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/misc.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mixer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mixer.png
new file mode 100755 (executable)
index 0000000..c122c88
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mixer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/modem.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/modem.png
new file mode 100644 (file)
index 0000000..bedd810
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/modem.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mouse.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mouse.png
new file mode 100644 (file)
index 0000000..c4a2d46
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mouse.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/movieplayer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/movieplayer.png
new file mode 100644 (file)
index 0000000..b700836
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/movieplayer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/multimedia.png
new file mode 100644 (file)
index 0000000..ffcb28e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mycomputer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mycomputer.png
new file mode 100755 (executable)
index 0000000..ac09548
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/mycomputer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/netscape.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/netscape.png
new file mode 100755 (executable)
index 0000000..9167a85
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/netscape.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/network.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/network.png
new file mode 100644 (file)
index 0000000..e6f894d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/network.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/notes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/notes.png
new file mode 100644 (file)
index 0000000..73b1da5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/notes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/notify.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/notify.png
new file mode 100755 (executable)
index 0000000..ede0d8e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/notify.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/opera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/opera.png
new file mode 100755 (executable)
index 0000000..616f3ab
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/opera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/organizer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/organizer.png
new file mode 100644 (file)
index 0000000..3add587
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/organizer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/outbox.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/outbox.png
new file mode 100644 (file)
index 0000000..c056e7f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/outbox.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/paint.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/paint.png
new file mode 100644 (file)
index 0000000..6abbe8c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/paint.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/partitions.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/partitions.png
new file mode 100644 (file)
index 0000000..e5a746f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/partitions.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/password.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/password.png
new file mode 100644 (file)
index 0000000..f59040a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/password.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/pda.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/pda.png
new file mode 100644 (file)
index 0000000..7229831
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/pda.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/penguin.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/penguin.png
new file mode 100644 (file)
index 0000000..28f86e3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/penguin.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/pipe.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/pipe.png
new file mode 100644 (file)
index 0000000..b23fad2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/pipe.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/presentation.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/presentation.png
new file mode 100644 (file)
index 0000000..4323bb6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/presentation.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/printer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/printer.png
new file mode 100755 (executable)
index 0000000..2636edc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/printer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/queue.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/queue.png
new file mode 100644 (file)
index 0000000..f53c0a4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/queue.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/redo.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/redo.png
new file mode 100644 (file)
index 0000000..8a065dd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/redo.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/reload.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/reload.png
new file mode 100644 (file)
index 0000000..b6b5cc1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/reload.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/run.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/run.png
new file mode 100644 (file)
index 0000000..6d21477
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/run.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/scanner.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/scanner.png
new file mode 100644 (file)
index 0000000..c972caf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/scanner.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/search.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/search.png
new file mode 100644 (file)
index 0000000..f507381
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/search.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/server.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/server.png
new file mode 100644 (file)
index 0000000..6e75e89
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/server.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/services.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/services.png
new file mode 100644 (file)
index 0000000..92291fa
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/services.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/settings.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/settings.png
new file mode 100644 (file)
index 0000000..9c2e384
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/settings.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/sound.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/sound.png
new file mode 100644 (file)
index 0000000..c122c88
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/sound.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/stop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/stop.png
new file mode 100644 (file)
index 0000000..62823a1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/stop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/style.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/style.png
new file mode 100644 (file)
index 0000000..2e29a93
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/style.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/system.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/system.png
new file mode 100644 (file)
index 0000000..726784a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/system.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/tablet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/tablet.png
new file mode 100644 (file)
index 0000000..121029a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/tablet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/terminal.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/terminal.png
new file mode 100644 (file)
index 0000000..7819e47
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/terminal.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/themes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/themes.png
new file mode 100644 (file)
index 0000000..2bf6a77
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/themes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/toys.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/toys.png
new file mode 100644 (file)
index 0000000..88df4ab
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/toys.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/trashcan-empty.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/trashcan-empty.png
new file mode 100644 (file)
index 0000000..422151c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/trashcan-empty.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/trashcan-full.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/trashcan-full.png
new file mode 100644 (file)
index 0000000..245eeb6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/trashcan-full.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/tux.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/tux.png
new file mode 100644 (file)
index 0000000..c0c562e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/tux.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/tv.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/tv.png
new file mode 100644 (file)
index 0000000..9ae5c96
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/tv.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/undo.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/undo.png
new file mode 100644 (file)
index 0000000..0cbd408
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/undo.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/up.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/up.png
new file mode 100644 (file)
index 0000000..4c06a24
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/up.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/user.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/user.png
new file mode 100644 (file)
index 0000000..a5cbf22
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/user.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/utilities.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/utilities.png
new file mode 100644 (file)
index 0000000..bee68c9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/utilities.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/vectorgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/vectorgraphics.png
new file mode 100644 (file)
index 0000000..ea40eab
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/vectorgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-bottom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-bottom.png
new file mode 100644 (file)
index 0000000..2508244
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-bottom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-choose.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-choose.png
new file mode 100644 (file)
index 0000000..d23705e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-choose.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-detailed.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-detailed.png
new file mode 100644 (file)
index 0000000..f3f6fc2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-detailed.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-icon.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-icon.png
new file mode 100644 (file)
index 0000000..589cecd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-icon.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-left-right.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-left-right.png
new file mode 100755 (executable)
index 0000000..c244998
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-left-right.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-multicolumn.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-multicolumn.png
new file mode 100644 (file)
index 0000000..cf33991
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-multicolumn.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-remove.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-remove.png
new file mode 100755 (executable)
index 0000000..a3baa58
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-remove.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-right.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-right.png
new file mode 100755 (executable)
index 0000000..fcd428b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-right.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-sidetree.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-sidetree.png
new file mode 100644 (file)
index 0000000..2970a1c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-sidetree.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-text.png
new file mode 100644 (file)
index 0000000..ea06f93
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-top-bottom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-top-bottom.png
new file mode 100755 (executable)
index 0000000..c63f75e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-top-bottom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-tree.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-tree.png
new file mode 100755 (executable)
index 0000000..5280317
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/view-tree.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-fit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-fit.png
new file mode 100644 (file)
index 0000000..2ef0fd5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-fit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-minus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-minus.png
new file mode 100644 (file)
index 0000000..18002f9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-minus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-original.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-original.png
new file mode 100644 (file)
index 0000000..7f07810
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-original.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-plus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-plus.png
new file mode 100644 (file)
index 0000000..15b2fa1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag-plus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag.png
new file mode 100644 (file)
index 0000000..f507381
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/viewmag.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/wordprocessor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/wordprocessor.png
new file mode 100644 (file)
index 0000000..20bc585
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/32/wordprocessor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/3d.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/3d.png
new file mode 100644 (file)
index 0000000..546e045
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/3d.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/accessibility.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/accessibility.png
new file mode 100644 (file)
index 0000000..2b5f2e6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/accessibility.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/adobe-reader.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/adobe-reader.png
new file mode 100755 (executable)
index 0000000..93f864b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/adobe-reader.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/alarm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/alarm.png
new file mode 100644 (file)
index 0000000..8351a1e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/alarm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/antivirus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/antivirus.png
new file mode 100644 (file)
index 0000000..2218bf1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/antivirus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/applications.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/applications.png
new file mode 100644 (file)
index 0000000..671fc7d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/applications.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/babelfish.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/babelfish.png
new file mode 100644 (file)
index 0000000..da9f0a9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/babelfish.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/back.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/back.png
new file mode 100644 (file)
index 0000000..fb16850
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/back.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/background.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/background.png
new file mode 100755 (executable)
index 0000000..7b7bf37
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/background.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/bell.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/bell.png
new file mode 100644 (file)
index 0000000..0c4b6c5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/bell.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/bitmapgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/bitmapgraphics.png
new file mode 100644 (file)
index 0000000..b290713
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/bitmapgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/block-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/block-device.png
new file mode 100644 (file)
index 0000000..894d148
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/block-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/bug.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/bug.png
new file mode 100644 (file)
index 0000000..e57255d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/bug.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/cache.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/cache.png
new file mode 100644 (file)
index 0000000..df779f4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/cache.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/calculator.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/calculator.png
new file mode 100644 (file)
index 0000000..53e673a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/calculator.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/camera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/camera.png
new file mode 100644 (file)
index 0000000..fbb290f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/camera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/cdrom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/cdrom.png
new file mode 100644 (file)
index 0000000..b20c507
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/cdrom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/char-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/char-device.png
new file mode 100644 (file)
index 0000000..c3308ee
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/char-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/chart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/chart.png
new file mode 100644 (file)
index 0000000..109c6dd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/chart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/clipboard.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/clipboard.png
new file mode 100755 (executable)
index 0000000..e808a3c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/clipboard.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/clock.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/clock.png
new file mode 100644 (file)
index 0000000..b974797
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/clock.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/colors.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/colors.png
new file mode 100644 (file)
index 0000000..4be4e35
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/colors.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/control-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/control-center.png
new file mode 100644 (file)
index 0000000..bde85be
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/control-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/core.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/core.png
new file mode 100644 (file)
index 0000000..b37fa6f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/core.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/date.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/date.png
new file mode 100644 (file)
index 0000000..b4cdd35
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/date.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/desktop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/desktop.png
new file mode 100644 (file)
index 0000000..7abb750
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/desktop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/devices.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/devices.png
new file mode 100644 (file)
index 0000000..59f5d18
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/devices.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/dictionary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/dictionary.png
new file mode 100644 (file)
index 0000000..40efecd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/dictionary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/display.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/display.png
new file mode 100644 (file)
index 0000000..de72273
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/display.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/down.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/down.png
new file mode 100644 (file)
index 0000000..119a099
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/down.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/editor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/editor.png
new file mode 100644 (file)
index 0000000..08c72ef
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/editor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/email.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/email.png
new file mode 100644 (file)
index 0000000..431e692
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/email.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/encrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/encrypted.png
new file mode 100644 (file)
index 0000000..b4ada7a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/encrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/energy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/energy.png
new file mode 100644 (file)
index 0000000..1e033ab
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/energy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/error.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/error.png
new file mode 100644 (file)
index 0000000..99579f1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/error.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/exec.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/exec.png
new file mode 100644 (file)
index 0000000..bb18406
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/exec.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/favorites.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/favorites.png
new file mode 100644 (file)
index 0000000..d1f5e91
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/favorites.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/favourite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/favourite.png
new file mode 100644 (file)
index 0000000..a22f281
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/favourite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/file-manager.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/file-manager.png
new file mode 100644 (file)
index 0000000..bb0b2a7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/file-manager.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/file-print.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/file-print.png
new file mode 100644 (file)
index 0000000..2be5baa
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/file-print.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/fileshare.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/fileshare.png
new file mode 100644 (file)
index 0000000..6a1ef70
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/fileshare.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/floppy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/floppy.png
new file mode 100644 (file)
index 0000000..3170423
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/floppy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/flowchart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/flowchart.png
new file mode 100644 (file)
index 0000000..3df005c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/flowchart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-favorite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-favorite.png
new file mode 100644 (file)
index 0000000..2e8fc5f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-favorite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-important.png
new file mode 100644 (file)
index 0000000..8f252a4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-locked.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-locked.png
new file mode 100644 (file)
index 0000000..9ef4067
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-locked.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-open.png
new file mode 100644 (file)
index 0000000..3996a2c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder.png
new file mode 100644 (file)
index 0000000..dcae5b4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/folder.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/fonts.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/fonts.png
new file mode 100644 (file)
index 0000000..c52d620
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/fonts.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/forward.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/forward.png
new file mode 100644 (file)
index 0000000..69d0e53
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/forward.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/games.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/games.png
new file mode 100644 (file)
index 0000000..9565ce1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/games.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/graphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/graphics.png
new file mode 100644 (file)
index 0000000..ae0ef02
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/graphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/harddrive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/harddrive.png
new file mode 100644 (file)
index 0000000..117ea38
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/harddrive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/hardware-info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/hardware-info.png
new file mode 100644 (file)
index 0000000..67ba0e9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/hardware-info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/hardware.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/hardware.png
new file mode 100644 (file)
index 0000000..b685596
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/hardware.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/help-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/help-center.png
new file mode 100644 (file)
index 0000000..970075d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/help-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/home.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/home.png
new file mode 100644 (file)
index 0000000..d08e6ab
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/home.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/icons.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/icons.png
new file mode 100644 (file)
index 0000000..a9100e7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/icons.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/iconthemes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/iconthemes.png
new file mode 100644 (file)
index 0000000..05c6c4b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/iconthemes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/important.png
new file mode 100644 (file)
index 0000000..fc64e63
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/inbox.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/inbox.png
new file mode 100644 (file)
index 0000000..4ecf5c2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/inbox.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/info.png
new file mode 100644 (file)
index 0000000..f21142b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/instant-available.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/instant-available.png
new file mode 100644 (file)
index 0000000..51678b3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/instant-available.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/instant-away.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/instant-away.png
new file mode 100644 (file)
index 0000000..f31bf9b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/instant-away.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/joystick.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/joystick.png
new file mode 100644 (file)
index 0000000..e7e3a15
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/joystick.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/keyboard-layout.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/keyboard-layout.png
new file mode 100644 (file)
index 0000000..ba03594
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/keyboard-layout.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/locale.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/locale.png
new file mode 100644 (file)
index 0000000..e7defac
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/locale.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/look-and-feel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/look-and-feel.png
new file mode 100644 (file)
index 0000000..342ebd7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/look-and-feel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mac.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mac.png
new file mode 100644 (file)
index 0000000..40b1613
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mac.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/magnifier.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/magnifier.png
new file mode 100644 (file)
index 0000000..1909643
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/magnifier.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/memory.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/memory.png
new file mode 100644 (file)
index 0000000..3424cfa
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/memory.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-archive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-archive.png
new file mode 100755 (executable)
index 0000000..d3bf2ab
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-archive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-binary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-binary.png
new file mode 100755 (executable)
index 0000000..bb46510
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-binary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-calendar.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-calendar.png
new file mode 100755 (executable)
index 0000000..f311783
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-calendar.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-card.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-card.png
new file mode 100755 (executable)
index 0000000..5031409
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-card.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-document.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-document.png
new file mode 100755 (executable)
index 0000000..21f079b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-document.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-html.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-html.png
new file mode 100755 (executable)
index 0000000..bddde59
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-html.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-image.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-image.png
new file mode 100755 (executable)
index 0000000..e174c3a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-image.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-manual.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-manual.png
new file mode 100755 (executable)
index 0000000..b221fd5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-manual.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-multimedia.png
new file mode 100755 (executable)
index 0000000..b80dc41
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-pdf.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-pdf.png
new file mode 100755 (executable)
index 0000000..9dee728
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-pdf.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-quicktime.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-quicktime.png
new file mode 100755 (executable)
index 0000000..fa14e61
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-quicktime.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-rpm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-rpm.png
new file mode 100755 (executable)
index 0000000..70b1ab6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-rpm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-script.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-script.png
new file mode 100755 (executable)
index 0000000..f3631a8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-script.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-shellscript.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-shellscript.png
new file mode 100755 (executable)
index 0000000..bc37e0d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-shellscript.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-sourcecode.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-sourcecode.png
new file mode 100755 (executable)
index 0000000..ee13140
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-sourcecode.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-spreadsheet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-spreadsheet.png
new file mode 100755 (executable)
index 0000000..f6a8d59
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-spreadsheet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-text.png
new file mode 100755 (executable)
index 0000000..39af2b3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-video.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-video.png
new file mode 100755 (executable)
index 0000000..2012711
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mime-video.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mixer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mixer.png
new file mode 100755 (executable)
index 0000000..e88e686
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mixer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/modem.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/modem.png
new file mode 100644 (file)
index 0000000..b416b46
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/modem.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mouse.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mouse.png
new file mode 100644 (file)
index 0000000..a35c240
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mouse.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/movieplayer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/movieplayer.png
new file mode 100644 (file)
index 0000000..fa6f116
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/movieplayer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/multimedia.png
new file mode 100644 (file)
index 0000000..97edf2f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mycomputer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mycomputer.png
new file mode 100755 (executable)
index 0000000..abe2119
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/mycomputer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/netscape.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/netscape.png
new file mode 100755 (executable)
index 0000000..795ade4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/netscape.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/network.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/network.png
new file mode 100644 (file)
index 0000000..47b78a9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/network.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/notes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/notes.png
new file mode 100644 (file)
index 0000000..a832988
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/notes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/notify.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/notify.png
new file mode 100755 (executable)
index 0000000..b0aa6e8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/notify.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/opera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/opera.png
new file mode 100755 (executable)
index 0000000..f092f4e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/opera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/organizer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/organizer.png
new file mode 100644 (file)
index 0000000..42eea3e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/organizer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/outbox.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/outbox.png
new file mode 100644 (file)
index 0000000..9b88a59
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/outbox.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/paint.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/paint.png
new file mode 100644 (file)
index 0000000..2de7bfc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/paint.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/partitions.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/partitions.png
new file mode 100644 (file)
index 0000000..bddfa43
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/partitions.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/password.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/password.png
new file mode 100644 (file)
index 0000000..cfe82a9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/password.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/pda.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/pda.png
new file mode 100644 (file)
index 0000000..5f6fb62
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/pda.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/penguin.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/penguin.png
new file mode 100644 (file)
index 0000000..61c96a2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/penguin.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/pipe.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/pipe.png
new file mode 100644 (file)
index 0000000..9b75ef8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/pipe.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/presentation.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/presentation.png
new file mode 100644 (file)
index 0000000..a8aebef
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/presentation.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/printer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/printer.png
new file mode 100755 (executable)
index 0000000..ff6ff9a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/printer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/reload.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/reload.png
new file mode 100644 (file)
index 0000000..1830406
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/reload.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/scanner.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/scanner.png
new file mode 100644 (file)
index 0000000..7b03612
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/scanner.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/server.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/server.png
new file mode 100644 (file)
index 0000000..b21caca
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/server.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/services.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/services.png
new file mode 100644 (file)
index 0000000..de0678c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/services.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/settings.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/settings.png
new file mode 100644 (file)
index 0000000..d935079
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/settings.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/style.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/style.png
new file mode 100644 (file)
index 0000000..5d8af7e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/style.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/system.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/system.png
new file mode 100644 (file)
index 0000000..3ed096d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/system.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/tablet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/tablet.png
new file mode 100644 (file)
index 0000000..92cbe4a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/tablet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/terminal.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/terminal.png
new file mode 100644 (file)
index 0000000..de458c1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/terminal.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/themes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/themes.png
new file mode 100644 (file)
index 0000000..50430c7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/themes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/toys.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/toys.png
new file mode 100644 (file)
index 0000000..b8e20c4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/toys.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/trashcan-empty.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/trashcan-empty.png
new file mode 100644 (file)
index 0000000..a54e6ec
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/trashcan-empty.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/trashcan-full.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/trashcan-full.png
new file mode 100644 (file)
index 0000000..a69a3b4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/trashcan-full.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/tux.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/tux.png
new file mode 100644 (file)
index 0000000..d75f61b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/tux.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/tv.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/tv.png
new file mode 100644 (file)
index 0000000..17c96a1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/tv.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/up.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/up.png
new file mode 100644 (file)
index 0000000..5231986
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/up.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/user.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/user.png
new file mode 100644 (file)
index 0000000..d8b241c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/user.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/utilities.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/utilities.png
new file mode 100644 (file)
index 0000000..a4cef2f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/utilities.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/vectorgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/vectorgraphics.png
new file mode 100644 (file)
index 0000000..6023daa
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/vectorgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/wordprocessor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/wordprocessor.png
new file mode 100644 (file)
index 0000000..a422266
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/48/wordprocessor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/3d.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/3d.png
new file mode 100644 (file)
index 0000000..1e1cd08
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/3d.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/adobe-reader.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/adobe-reader.png
new file mode 100755 (executable)
index 0000000..4797367
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/adobe-reader.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/antivirus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/antivirus.png
new file mode 100644 (file)
index 0000000..c4aac8a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/antivirus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/applications.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/applications.png
new file mode 100644 (file)
index 0000000..d85a736
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/applications.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/babelfish.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/babelfish.png
new file mode 100644 (file)
index 0000000..22783ae
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/babelfish.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/back.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/back.png
new file mode 100644 (file)
index 0000000..1941c2f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/back.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/background.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/background.png
new file mode 100755 (executable)
index 0000000..617f37b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/background.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/bell.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/bell.png
new file mode 100644 (file)
index 0000000..f83c409
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/bell.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/bitmapgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/bitmapgraphics.png
new file mode 100644 (file)
index 0000000..dd5a891
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/bitmapgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/block-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/block-device.png
new file mode 100644 (file)
index 0000000..656b6e7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/block-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/bug.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/bug.png
new file mode 100644 (file)
index 0000000..af1bd42
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/bug.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/cache.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/cache.png
new file mode 100644 (file)
index 0000000..a49b55d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/cache.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/calculator.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/calculator.png
new file mode 100644 (file)
index 0000000..5ebe853
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/calculator.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/camera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/camera.png
new file mode 100644 (file)
index 0000000..4e4c55c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/camera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/cdrom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/cdrom.png
new file mode 100644 (file)
index 0000000..8b3eeb6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/cdrom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/char-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/char-device.png
new file mode 100644 (file)
index 0000000..337e291
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/char-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/chart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/chart.png
new file mode 100644 (file)
index 0000000..c99c69d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/chart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/clipboard.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/clipboard.png
new file mode 100755 (executable)
index 0000000..8d966f2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/clipboard.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/clock.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/clock.png
new file mode 100644 (file)
index 0000000..5698b5e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/clock.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/colors.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/colors.png
new file mode 100644 (file)
index 0000000..6c76da0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/colors.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/control-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/control-center.png
new file mode 100644 (file)
index 0000000..4d4db5d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/control-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/core.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/core.png
new file mode 100644 (file)
index 0000000..8c60308
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/core.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/date.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/date.png
new file mode 100644 (file)
index 0000000..ef1e4f7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/date.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/desktop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/desktop.png
new file mode 100644 (file)
index 0000000..e0dc3b0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/desktop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/devices.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/devices.png
new file mode 100644 (file)
index 0000000..396b3d3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/devices.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/dictionary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/dictionary.png
new file mode 100644 (file)
index 0000000..ba6ed63
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/dictionary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/display.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/display.png
new file mode 100644 (file)
index 0000000..81beb9a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/display.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/down.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/down.png
new file mode 100644 (file)
index 0000000..75e6ffe
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/down.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/editor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/editor.png
new file mode 100644 (file)
index 0000000..c553a93
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/editor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/email.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/email.png
new file mode 100644 (file)
index 0000000..8a2ac80
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/email.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/encrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/encrypted.png
new file mode 100644 (file)
index 0000000..867039f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/encrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/energy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/energy.png
new file mode 100644 (file)
index 0000000..ef4017f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/energy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/error.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/error.png
new file mode 100644 (file)
index 0000000..c486063
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/error.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/exec.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/exec.png
new file mode 100644 (file)
index 0000000..da16a98
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/exec.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/favourite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/favourite.png
new file mode 100644 (file)
index 0000000..6e56343
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/favourite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/file-manager.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/file-manager.png
new file mode 100644 (file)
index 0000000..b4552f7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/file-manager.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/file-print.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/file-print.png
new file mode 100644 (file)
index 0000000..758bb8e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/file-print.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/fileshare.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/fileshare.png
new file mode 100644 (file)
index 0000000..7c9a4fa
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/fileshare.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/floppy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/floppy.png
new file mode 100644 (file)
index 0000000..b5b8e2c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/floppy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/flowchart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/flowchart.png
new file mode 100644 (file)
index 0000000..9872c4a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/flowchart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-favorite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-favorite.png
new file mode 100644 (file)
index 0000000..2394145
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-favorite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-important.png
new file mode 100644 (file)
index 0000000..481aae7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-locked.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-locked.png
new file mode 100644 (file)
index 0000000..07ee77c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-locked.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-open.png
new file mode 100644 (file)
index 0000000..d454d56
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder.png
new file mode 100644 (file)
index 0000000..8b35d24
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/folder.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/fonts.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/fonts.png
new file mode 100644 (file)
index 0000000..6fdab33
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/fonts.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/forward.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/forward.png
new file mode 100644 (file)
index 0000000..2776d66
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/forward.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/games.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/games.png
new file mode 100644 (file)
index 0000000..e87b2db
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/games.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/graphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/graphics.png
new file mode 100644 (file)
index 0000000..e001cb7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/graphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/harddrive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/harddrive.png
new file mode 100644 (file)
index 0000000..f84b68e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/harddrive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/hardware-info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/hardware-info.png
new file mode 100644 (file)
index 0000000..f08a5e5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/hardware-info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/hardware.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/hardware.png
new file mode 100644 (file)
index 0000000..372f725
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/hardware.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/help-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/help-center.png
new file mode 100644 (file)
index 0000000..44ddf68
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/help-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/home.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/home.png
new file mode 100644 (file)
index 0000000..acf3e4a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/home.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/icons.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/icons.png
new file mode 100644 (file)
index 0000000..3891bc7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/icons.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/important.png
new file mode 100644 (file)
index 0000000..2da725a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/info.png
new file mode 100644 (file)
index 0000000..3a75f4a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/joystick.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/joystick.png
new file mode 100644 (file)
index 0000000..c1fb9f5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/joystick.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/keyboard-layout.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/keyboard-layout.png
new file mode 100644 (file)
index 0000000..0aa7eaf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/keyboard-layout.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/locale.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/locale.png
new file mode 100644 (file)
index 0000000..042c0d3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/locale.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/look-and-feel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/look-and-feel.png
new file mode 100644 (file)
index 0000000..b73346e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/look-and-feel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mac.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mac.png
new file mode 100644 (file)
index 0000000..6945109
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mac.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/magnifier.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/magnifier.png
new file mode 100644 (file)
index 0000000..5049025
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/magnifier.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/memory.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/memory.png
new file mode 100644 (file)
index 0000000..61f7cc5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/memory.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-archive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-archive.png
new file mode 100755 (executable)
index 0000000..352f7e8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-archive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-binary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-binary.png
new file mode 100755 (executable)
index 0000000..11f7c83
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-binary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-calendar.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-calendar.png
new file mode 100755 (executable)
index 0000000..1033eb9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-calendar.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-card.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-card.png
new file mode 100755 (executable)
index 0000000..f6cc43f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-card.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-document.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-document.png
new file mode 100755 (executable)
index 0000000..ed0799b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-document.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-html.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-html.png
new file mode 100755 (executable)
index 0000000..da2e709
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-html.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-image.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-image.png
new file mode 100755 (executable)
index 0000000..787eebc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-image.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-manual.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-manual.png
new file mode 100755 (executable)
index 0000000..c95bead
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-manual.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-multimedia.png
new file mode 100755 (executable)
index 0000000..20e124a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-pdf.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-pdf.png
new file mode 100755 (executable)
index 0000000..96756b5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-pdf.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-quicktime.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-quicktime.png
new file mode 100755 (executable)
index 0000000..18c524d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-quicktime.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-rpm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-rpm.png
new file mode 100755 (executable)
index 0000000..e14d5b3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-rpm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-script.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-script.png
new file mode 100755 (executable)
index 0000000..3400326
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-script.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-shellscript.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-shellscript.png
new file mode 100755 (executable)
index 0000000..5d31452
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-shellscript.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-sourcecode.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-sourcecode.png
new file mode 100755 (executable)
index 0000000..6ea5b6d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-sourcecode.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-spreadsheet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-spreadsheet.png
new file mode 100755 (executable)
index 0000000..62a0df0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-spreadsheet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-text.png
new file mode 100755 (executable)
index 0000000..f87f166
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-video.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-video.png
new file mode 100755 (executable)
index 0000000..9dfb9a5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mime-video.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mixer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mixer.png
new file mode 100755 (executable)
index 0000000..fbe8e6d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mixer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/modem.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/modem.png
new file mode 100644 (file)
index 0000000..d904be0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/modem.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mouse.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mouse.png
new file mode 100644 (file)
index 0000000..b00e361
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mouse.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/movieplayer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/movieplayer.png
new file mode 100644 (file)
index 0000000..3da95eb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/movieplayer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/multimedia.png
new file mode 100644 (file)
index 0000000..93f13f7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mycomputer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mycomputer.png
new file mode 100755 (executable)
index 0000000..935e5a1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/mycomputer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/netscape.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/netscape.png
new file mode 100755 (executable)
index 0000000..ca5c65d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/netscape.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/network.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/network.png
new file mode 100644 (file)
index 0000000..3f7323c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/network.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/notes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/notes.png
new file mode 100644 (file)
index 0000000..80cbca2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/notes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/notify.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/notify.png
new file mode 100755 (executable)
index 0000000..3a4d918
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/notify.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/organizer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/organizer.png
new file mode 100644 (file)
index 0000000..84a3200
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/organizer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/paint.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/paint.png
new file mode 100644 (file)
index 0000000..8d602ce
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/paint.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/partitions.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/partitions.png
new file mode 100644 (file)
index 0000000..1bcce6d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/partitions.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/password.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/password.png
new file mode 100644 (file)
index 0000000..2144538
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/password.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/pda.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/pda.png
new file mode 100644 (file)
index 0000000..d66da4a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/pda.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/penguin.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/penguin.png
new file mode 100644 (file)
index 0000000..6c37b89
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/penguin.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/pipe.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/pipe.png
new file mode 100644 (file)
index 0000000..a8ab425
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/pipe.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/presentation.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/presentation.png
new file mode 100644 (file)
index 0000000..651ea1b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/presentation.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/printer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/printer.png
new file mode 100755 (executable)
index 0000000..70bd23f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/printer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/reload.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/reload.png
new file mode 100644 (file)
index 0000000..8f0e77a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/reload.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/scanner.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/scanner.png
new file mode 100644 (file)
index 0000000..74fa14a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/scanner.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/services.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/services.png
new file mode 100644 (file)
index 0000000..5672cff
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/services.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/settings.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/settings.png
new file mode 100644 (file)
index 0000000..fb818b3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/settings.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/style.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/style.png
new file mode 100644 (file)
index 0000000..d3f70b0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/style.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/system.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/system.png
new file mode 100644 (file)
index 0000000..86cd9c7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/system.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/tablet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/tablet.png
new file mode 100644 (file)
index 0000000..86e53f9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/tablet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/terminal.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/terminal.png
new file mode 100644 (file)
index 0000000..efe6429
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/terminal.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/themes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/themes.png
new file mode 100644 (file)
index 0000000..784b5ae
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/themes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/toys.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/toys.png
new file mode 100644 (file)
index 0000000..368eb4c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/toys.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/trashcan-empty.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/trashcan-empty.png
new file mode 100644 (file)
index 0000000..c9529cd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/trashcan-empty.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/trashcan-full.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/trashcan-full.png
new file mode 100644 (file)
index 0000000..91d4caf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/trashcan-full.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/tux.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/tux.png
new file mode 100644 (file)
index 0000000..99f3465
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/tux.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/tv.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/tv.png
new file mode 100644 (file)
index 0000000..3c53997
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/tv.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/up.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/up.png
new file mode 100644 (file)
index 0000000..89f77e6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/up.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/user.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/user.png
new file mode 100644 (file)
index 0000000..57c5726
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/user.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/utilities.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/utilities.png
new file mode 100644 (file)
index 0000000..5e25510
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/utilities.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/vectorgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/vectorgraphics.png
new file mode 100644 (file)
index 0000000..a9f08de
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/vectorgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/wordprocessor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/wordprocessor.png
new file mode 100644 (file)
index 0000000..d3e0939
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/crystalsvg/64/wordprocessor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/adobe-reader.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/adobe-reader.png
new file mode 100644 (file)
index 0000000..f67c5d6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/adobe-reader.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/background.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/background.png
new file mode 100644 (file)
index 0000000..a4a92b0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/background.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/bell.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/bell.png
new file mode 100644 (file)
index 0000000..5ad1cd4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/bell.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/bitmapgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/bitmapgraphics.png
new file mode 100644 (file)
index 0000000..fb1a088
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/bitmapgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/bug.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/bug.png
new file mode 100644 (file)
index 0000000..2a68ed4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/bug.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/cache.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/cache.png
new file mode 100644 (file)
index 0000000..2ffacac
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/cache.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/camera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/camera.png
new file mode 100644 (file)
index 0000000..b98eb0b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/camera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/cdrom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/cdrom.png
new file mode 100644 (file)
index 0000000..caa027b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/cdrom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/char-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/char-device.png
new file mode 100644 (file)
index 0000000..b2e4a96
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/char-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/chart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/chart.png
new file mode 100644 (file)
index 0000000..34d5696
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/chart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/clock.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/clock.png
new file mode 100644 (file)
index 0000000..a4794d8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/clock.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/colors.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/colors.png
new file mode 100644 (file)
index 0000000..e728b66
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/colors.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/control-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/control-center.png
new file mode 100644 (file)
index 0000000..e79094c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/control-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/core.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/core.png
new file mode 100644 (file)
index 0000000..8fd16f5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/core.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/date.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/date.png
new file mode 100644 (file)
index 0000000..532d4d3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/date.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/desktop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/desktop.png
new file mode 100644 (file)
index 0000000..91d7bd5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/desktop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/dictionary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/dictionary.png
new file mode 100644 (file)
index 0000000..60a698d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/dictionary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/display.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/display.png
new file mode 100644 (file)
index 0000000..fc0da13
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/display.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/email.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/email.png
new file mode 100644 (file)
index 0000000..7bca49a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/email.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/encrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/encrypted.png
new file mode 100644 (file)
index 0000000..07d0603
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/encrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/energy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/energy.png
new file mode 100644 (file)
index 0000000..4b2dbc4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/energy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/error.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/error.png
new file mode 100644 (file)
index 0000000..d0152da
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/error.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/exec.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/exec.png
new file mode 100644 (file)
index 0000000..7354a54
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/exec.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/floppy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/floppy.png
new file mode 100644 (file)
index 0000000..3918232
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/floppy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/flowchart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/flowchart.png
new file mode 100644 (file)
index 0000000..8d1bb46
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/flowchart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-favorite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-favorite.png
new file mode 100644 (file)
index 0000000..99b2572
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-favorite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-important.png
new file mode 100644 (file)
index 0000000..7be7064
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-locked.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-locked.png
new file mode 100644 (file)
index 0000000..0cc9cfd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-locked.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-open.png
new file mode 100644 (file)
index 0000000..73a193a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder.png
new file mode 100644 (file)
index 0000000..9b62a3b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/folder.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/fonts.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/fonts.png
new file mode 100644 (file)
index 0000000..36e54ab
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/fonts.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/graphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/graphics.png
new file mode 100644 (file)
index 0000000..516e3d5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/graphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/harddrive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/harddrive.png
new file mode 100644 (file)
index 0000000..1fb21b4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/harddrive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/hardware-info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/hardware-info.png
new file mode 100644 (file)
index 0000000..cbfa846
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/hardware-info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/help-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/help-center.png
new file mode 100644 (file)
index 0000000..c767aaf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/help-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/info.png
new file mode 100644 (file)
index 0000000..77ca807
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/joystick.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/joystick.png
new file mode 100644 (file)
index 0000000..c0f3954
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/joystick.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/keyboard-layout.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/keyboard-layout.png
new file mode 100644 (file)
index 0000000..2c4c9c3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/keyboard-layout.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/locale.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/locale.png
new file mode 100644 (file)
index 0000000..9b3e233
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/locale.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/look-and-feel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/look-and-feel.png
new file mode 100644 (file)
index 0000000..197021b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/look-and-feel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-archive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-archive.png
new file mode 100644 (file)
index 0000000..a55d3b3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-archive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-binary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-binary.png
new file mode 100644 (file)
index 0000000..02cea51
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-binary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-calendar.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-calendar.png
new file mode 100644 (file)
index 0000000..fcfb27c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-calendar.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-card.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-card.png
new file mode 100644 (file)
index 0000000..37ec929
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-card.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-document.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-document.png
new file mode 100644 (file)
index 0000000..6283f85
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-document.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-html.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-html.png
new file mode 100644 (file)
index 0000000..bec7479
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-html.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-image.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-image.png
new file mode 100644 (file)
index 0000000..120072d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-image.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-manual.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-manual.png
new file mode 100644 (file)
index 0000000..4169c7d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-manual.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-multimedia.png
new file mode 100644 (file)
index 0000000..2a567b1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-pdf.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-pdf.png
new file mode 100644 (file)
index 0000000..6fcc0cf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-pdf.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-quicktime.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-quicktime.png
new file mode 100755 (executable)
index 0000000..619ecc3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-quicktime.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-rpm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-rpm.png
new file mode 100644 (file)
index 0000000..0786bfa
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-rpm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-script.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-script.png
new file mode 100644 (file)
index 0000000..ef2262e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-script.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-shellscript.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-shellscript.png
new file mode 100644 (file)
index 0000000..e635af7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-shellscript.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-sourcecode.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-sourcecode.png
new file mode 100644 (file)
index 0000000..b6d7621
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-sourcecode.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-spreadsheet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-spreadsheet.png
new file mode 100644 (file)
index 0000000..771744a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-spreadsheet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-text.png
new file mode 100644 (file)
index 0000000..66e2f9c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-video.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-video.png
new file mode 100644 (file)
index 0000000..208bea5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mime-video.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/modem.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/modem.png
new file mode 100644 (file)
index 0000000..e6d369f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/modem.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mouse.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mouse.png
new file mode 100644 (file)
index 0000000..2708fbc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mouse.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/movieplayer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/movieplayer.png
new file mode 100644 (file)
index 0000000..7db093a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/movieplayer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/multimedia.png
new file mode 100644 (file)
index 0000000..3d30da2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mycomputer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mycomputer.png
new file mode 100644 (file)
index 0000000..a6736ba
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/mycomputer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/netscape.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/netscape.png
new file mode 100644 (file)
index 0000000..26bf224
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/netscape.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/network.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/network.png
new file mode 100644 (file)
index 0000000..99d1fed
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/network.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/notes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/notes.png
new file mode 100644 (file)
index 0000000..31e01eb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/notes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/organizer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/organizer.png
new file mode 100644 (file)
index 0000000..b4ab1fe
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/organizer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/paint.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/paint.png
new file mode 100644 (file)
index 0000000..b1ceb3e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/paint.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/partitions.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/partitions.png
new file mode 100644 (file)
index 0000000..8bcaf64
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/partitions.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/password.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/password.png
new file mode 100644 (file)
index 0000000..ffe9b37
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/password.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/pda.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/pda.png
new file mode 100644 (file)
index 0000000..4de6d95
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/pda.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/presentation.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/presentation.png
new file mode 100644 (file)
index 0000000..4b269d9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/presentation.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/printer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/printer.png
new file mode 100644 (file)
index 0000000..cbdfa8d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/printer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/scanner.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/scanner.png
new file mode 100644 (file)
index 0000000..9832997
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/scanner.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/services.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/services.png
new file mode 100644 (file)
index 0000000..b1fee2e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/services.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/settings.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/settings.png
new file mode 100644 (file)
index 0000000..8924ca1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/settings.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/tablet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/tablet.png
new file mode 100644 (file)
index 0000000..34dcbe0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/tablet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/terminal.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/terminal.png
new file mode 100644 (file)
index 0000000..a8ff70e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/terminal.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/toys.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/toys.png
new file mode 100644 (file)
index 0000000..c86b352
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/toys.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/trashcan-empty.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/trashcan-empty.png
new file mode 100644 (file)
index 0000000..7c5085f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/trashcan-empty.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/trashcan-full.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/trashcan-full.png
new file mode 100644 (file)
index 0000000..a0545dc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/trashcan-full.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/tv.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/tv.png
new file mode 100644 (file)
index 0000000..710a947
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/tv.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/user.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/user.png
new file mode 100644 (file)
index 0000000..6ed54d4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/user.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/utilities.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/utilities.png
new file mode 100644 (file)
index 0000000..097983e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/utilities.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/wordprocessor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/wordprocessor.png
new file mode 100644 (file)
index 0000000..6e166b2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/128/wordprocessor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/accessibility.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/accessibility.png
new file mode 100644 (file)
index 0000000..c6a670b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/accessibility.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/adobe-reader.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/adobe-reader.png
new file mode 100644 (file)
index 0000000..b50f4a7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/adobe-reader.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/alarm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/alarm.png
new file mode 100644 (file)
index 0000000..fa1751a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/alarm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/applications.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/applications.png
new file mode 100644 (file)
index 0000000..ba4fb07
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/applications.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/apply.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/apply.png
new file mode 100644 (file)
index 0000000..5b0f6a6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/apply.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/attach.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/attach.png
new file mode 100644 (file)
index 0000000..faa19ed
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/attach.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/back.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/back.png
new file mode 100644 (file)
index 0000000..3fe8b17
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/back.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/background.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/background.png
new file mode 100644 (file)
index 0000000..14ea3e4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/background.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bell.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bell.png
new file mode 100644 (file)
index 0000000..6a10c01
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bell.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bitmapgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bitmapgraphics.png
new file mode 100644 (file)
index 0000000..b13dbea
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bitmapgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark-add.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark-add.png
new file mode 100644 (file)
index 0000000..452da8d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark-add.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark-folder.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark-folder.png
new file mode 100644 (file)
index 0000000..f0dc74a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark-folder.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark-toolbar.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark-toolbar.png
new file mode 100644 (file)
index 0000000..d044ca6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark-toolbar.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark.png
new file mode 100644 (file)
index 0000000..2cd6947
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bookmark.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bug.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bug.png
new file mode 100644 (file)
index 0000000..8cb2d5d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/bug.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/button-cancel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/button-cancel.png
new file mode 100644 (file)
index 0000000..a432b49
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/button-cancel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/button-ok.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/button-ok.png
new file mode 100644 (file)
index 0000000..5b0f6a6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/button-ok.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cache.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cache.png
new file mode 100644 (file)
index 0000000..b789c54
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cache.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/calculator.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/calculator.png
new file mode 100644 (file)
index 0000000..905db5c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/calculator.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/camera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/camera.png
new file mode 100644 (file)
index 0000000..45d1436
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/camera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cancel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cancel.png
new file mode 100644 (file)
index 0000000..a432b49
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cancel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cdrom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cdrom.png
new file mode 100644 (file)
index 0000000..e2e3f67
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cdrom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/char-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/char-device.png
new file mode 100644 (file)
index 0000000..96c49df
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/char-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/chart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/chart.png
new file mode 100644 (file)
index 0000000..82e15c1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/chart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/clipboard.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/clipboard.png
new file mode 100644 (file)
index 0000000..a2c0cfb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/clipboard.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/clock.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/clock.png
new file mode 100644 (file)
index 0000000..7c622a0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/clock.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/color-fill.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/color-fill.png
new file mode 100644 (file)
index 0000000..13631ec
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/color-fill.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/color-line.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/color-line.png
new file mode 100644 (file)
index 0000000..33de951
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/color-line.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/colors.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/colors.png
new file mode 100644 (file)
index 0000000..fc6a195
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/colors.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/configure.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/configure.png
new file mode 100644 (file)
index 0000000..a4a3834
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/configure.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/connect-creating.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/connect-creating.png
new file mode 100644 (file)
index 0000000..f37d33a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/connect-creating.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/connect-established.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/connect-established.png
new file mode 100644 (file)
index 0000000..0f6b9f9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/connect-established.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/connect-no.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/connect-no.png
new file mode 100644 (file)
index 0000000..ccac9f6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/connect-no.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/control-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/control-center.png
new file mode 100644 (file)
index 0000000..f9c503e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/control-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cookie.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cookie.png
new file mode 100644 (file)
index 0000000..5c1ca3c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/cookie.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/core.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/core.png
new file mode 100644 (file)
index 0000000..e8b59fc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/core.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/date.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/date.png
new file mode 100644 (file)
index 0000000..bd4b4c6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/date.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/decrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/decrypted.png
new file mode 100644 (file)
index 0000000..42dd93e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/decrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/desktop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/desktop.png
new file mode 100644 (file)
index 0000000..291f8a4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/desktop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/devices.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/devices.png
new file mode 100644 (file)
index 0000000..dbba948
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/devices.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/dictionary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/dictionary.png
new file mode 100644 (file)
index 0000000..2bfe4d8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/dictionary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/display.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/display.png
new file mode 100644 (file)
index 0000000..ededc0b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/display.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/down.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/down.png
new file mode 100644 (file)
index 0000000..f3bc4cd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/down.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-copy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-copy.png
new file mode 100644 (file)
index 0000000..b7c938a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-copy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-cut.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-cut.png
new file mode 100644 (file)
index 0000000..49f3591
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-cut.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-delete.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-delete.png
new file mode 100644 (file)
index 0000000..d33c344
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-delete.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-paste.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-paste.png
new file mode 100644 (file)
index 0000000..4c43ddf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit-paste.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit.png
new file mode 100644 (file)
index 0000000..423187c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/edit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/editor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/editor.png
new file mode 100644 (file)
index 0000000..4a52bb1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/editor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/email.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/email.png
new file mode 100644 (file)
index 0000000..694a8e0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/email.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/encrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/encrypted.png
new file mode 100644 (file)
index 0000000..8035712
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/encrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/energy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/energy.png
new file mode 100644 (file)
index 0000000..733dfcf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/energy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/error.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/error.png
new file mode 100644 (file)
index 0000000..2997461
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/error.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/exec.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/exec.png
new file mode 100644 (file)
index 0000000..4e7fc43
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/exec.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/exit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/exit.png
new file mode 100644 (file)
index 0000000..6323241
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/exit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-manager.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-manager.png
new file mode 100644 (file)
index 0000000..df01df2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-manager.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-new.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-new.png
new file mode 100644 (file)
index 0000000..f38d02e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-new.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-open.png
new file mode 100644 (file)
index 0000000..2d8e3ba
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-print.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-print.png
new file mode 100644 (file)
index 0000000..3a87543
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-print.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-save-as.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-save-as.png
new file mode 100644 (file)
index 0000000..71602bc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-save-as.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-save.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-save.png
new file mode 100644 (file)
index 0000000..fd0048d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/file-save.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/find.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/find.png
new file mode 100644 (file)
index 0000000..e912de2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/find.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/floppy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/floppy.png
new file mode 100644 (file)
index 0000000..68a4eab
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/floppy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/flowchart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/flowchart.png
new file mode 100644 (file)
index 0000000..3bae38d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/flowchart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-favorite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-favorite.png
new file mode 100644 (file)
index 0000000..1e217e7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-favorite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-important.png
new file mode 100644 (file)
index 0000000..5cadf9d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-locked.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-locked.png
new file mode 100644 (file)
index 0000000..e9c5bfd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-locked.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-open.png
new file mode 100644 (file)
index 0000000..2c55c56
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder.png
new file mode 100644 (file)
index 0000000..9232553
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/folder.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/fonts.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/fonts.png
new file mode 100644 (file)
index 0000000..3aab3bd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/fonts.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/forward.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/forward.png
new file mode 100644 (file)
index 0000000..3e9562c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/forward.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/games.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/games.png
new file mode 100644 (file)
index 0000000..4b78616
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/games.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/graphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/graphics.png
new file mode 100644 (file)
index 0000000..2382100
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/graphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/harddrive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/harddrive.png
new file mode 100644 (file)
index 0000000..f570c51
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/harddrive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/hardware-info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/hardware-info.png
new file mode 100644 (file)
index 0000000..1f49a9f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/hardware-info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/help-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/help-center.png
new file mode 100644 (file)
index 0000000..096b00c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/help-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/help.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/help.png
new file mode 100644 (file)
index 0000000..28a0f9e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/help.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/history-clear.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/history-clear.png
new file mode 100644 (file)
index 0000000..12bf37b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/history-clear.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/history.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/history.png
new file mode 100644 (file)
index 0000000..8d658e0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/history.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/home.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/home.png
new file mode 100644 (file)
index 0000000..a93612f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/home.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/icons.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/icons.png
new file mode 100644 (file)
index 0000000..df51f18
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/icons.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/iconthemes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/iconthemes.png
new file mode 100644 (file)
index 0000000..a5dcbe0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/iconthemes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/important.png
new file mode 100644 (file)
index 0000000..2b3d4f0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/info.png
new file mode 100644 (file)
index 0000000..cfc3089
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/joystick.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/joystick.png
new file mode 100644 (file)
index 0000000..4b78616
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/joystick.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/keyboard-layout.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/keyboard-layout.png
new file mode 100644 (file)
index 0000000..40ad9e4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/keyboard-layout.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/locale.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/locale.png
new file mode 100644 (file)
index 0000000..a79df4e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/locale.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/look-and-feel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/look-and-feel.png
new file mode 100644 (file)
index 0000000..7d7da74
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/look-and-feel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/magnifier.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/magnifier.png
new file mode 100644 (file)
index 0000000..02b3a5d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/magnifier.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-delete.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-delete.png
new file mode 100644 (file)
index 0000000..dc9c020
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-delete.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-find.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-find.png
new file mode 100644 (file)
index 0000000..1e230e2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-find.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-forward.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-forward.png
new file mode 100644 (file)
index 0000000..0bb1ee2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-forward.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-get.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-get.png
new file mode 100644 (file)
index 0000000..f87d1ee
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-get.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-new.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-new.png
new file mode 100644 (file)
index 0000000..7656cbc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-new.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-reply-all.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-reply-all.png
new file mode 100644 (file)
index 0000000..6e825cc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-reply-all.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-reply.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-reply.png
new file mode 100644 (file)
index 0000000..c898649
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-reply.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-send.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-send.png
new file mode 100644 (file)
index 0000000..2113017
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail-send.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail.png
new file mode 100644 (file)
index 0000000..2de442b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mail.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/memory.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/memory.png
new file mode 100644 (file)
index 0000000..c749034
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/memory.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-archive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-archive.png
new file mode 100755 (executable)
index 0000000..184f959
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-archive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-binary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-binary.png
new file mode 100644 (file)
index 0000000..3f4def6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-binary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-calendar.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-calendar.png
new file mode 100644 (file)
index 0000000..9769146
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-calendar.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-card.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-card.png
new file mode 100644 (file)
index 0000000..f6905dd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-card.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-color.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-color.png
new file mode 100644 (file)
index 0000000..9c12b3c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-color.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-document.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-document.png
new file mode 100644 (file)
index 0000000..24c9c57
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-document.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-html.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-html.png
new file mode 100644 (file)
index 0000000..f56567f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-html.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-image.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-image.png
new file mode 100644 (file)
index 0000000..246a66c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-image.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-manual.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-manual.png
new file mode 100644 (file)
index 0000000..b15c3c3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-manual.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-multimedia.png
new file mode 100644 (file)
index 0000000..7f4d973
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-pdf.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-pdf.png
new file mode 100644 (file)
index 0000000..f4863cb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-pdf.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-quicktime.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-quicktime.png
new file mode 100755 (executable)
index 0000000..f0bc57a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-quicktime.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-rpm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-rpm.png
new file mode 100644 (file)
index 0000000..a584ce1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-rpm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-script.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-script.png
new file mode 100644 (file)
index 0000000..336dd1e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-script.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-shellscript.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-shellscript.png
new file mode 100755 (executable)
index 0000000..a2b8d2e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-shellscript.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-sourcecode.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-sourcecode.png
new file mode 100644 (file)
index 0000000..5a218fe
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-sourcecode.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-spreadsheet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-spreadsheet.png
new file mode 100644 (file)
index 0000000..f7fa7b9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-spreadsheet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-text.png
new file mode 100644 (file)
index 0000000..8e771b7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-video.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-video.png
new file mode 100644 (file)
index 0000000..dd51e90
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mime-video.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/misc.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/misc.png
new file mode 100644 (file)
index 0000000..98d4b99
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/misc.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mixer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mixer.png
new file mode 100644 (file)
index 0000000..5e84e63
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mixer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/modem.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/modem.png
new file mode 100644 (file)
index 0000000..91d89d0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/modem.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mouse.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mouse.png
new file mode 100644 (file)
index 0000000..e8d2b45
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mouse.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/movieplayer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/movieplayer.png
new file mode 100644 (file)
index 0000000..e616061
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/movieplayer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/multimedia.png
new file mode 100644 (file)
index 0000000..0bea4d8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mycomputer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mycomputer.png
new file mode 100644 (file)
index 0000000..0a929f0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/mycomputer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/netscape.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/netscape.png
new file mode 100644 (file)
index 0000000..4734d0c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/netscape.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/network.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/network.png
new file mode 100644 (file)
index 0000000..03ef9a5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/network.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/no.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/no.png
new file mode 100644 (file)
index 0000000..37a7c74
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/no.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/notes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/notes.png
new file mode 100644 (file)
index 0000000..1e27e9c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/notes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/notify.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/notify.png
new file mode 100644 (file)
index 0000000..e9897ef
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/notify.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/ok.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/ok.png
new file mode 100644 (file)
index 0000000..5b0f6a6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/ok.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/opera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/opera.png
new file mode 100644 (file)
index 0000000..963449b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/opera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/organizer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/organizer.png
new file mode 100644 (file)
index 0000000..6c86544
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/organizer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/paint.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/paint.png
new file mode 100644 (file)
index 0000000..dd0b147
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/paint.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/partitions.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/partitions.png
new file mode 100644 (file)
index 0000000..7e219d6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/partitions.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/password.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/password.png
new file mode 100644 (file)
index 0000000..5656824
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/password.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/pda.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/pda.png
new file mode 100644 (file)
index 0000000..655fc02
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/pda.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/pipe.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/pipe.png
new file mode 100644 (file)
index 0000000..5fe6401
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/pipe.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/presentation.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/presentation.png
new file mode 100644 (file)
index 0000000..5bbcd04
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/presentation.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/printer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/printer.png
new file mode 100644 (file)
index 0000000..fdf67a1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/printer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/queue.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/queue.png
new file mode 100644 (file)
index 0000000..fc3d105
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/queue.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/redo.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/redo.png
new file mode 100644 (file)
index 0000000..f1e45cf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/redo.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/reload.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/reload.png
new file mode 100644 (file)
index 0000000..1c026d3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/reload.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/rotate.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/rotate.png
new file mode 100644 (file)
index 0000000..26d6ed9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/rotate.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/run.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/run.png
new file mode 100644 (file)
index 0000000..7514245
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/run.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/scanner.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/scanner.png
new file mode 100644 (file)
index 0000000..fa0f83d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/scanner.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/services.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/services.png
new file mode 100644 (file)
index 0000000..11b9177
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/services.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/settings.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/settings.png
new file mode 100644 (file)
index 0000000..8d8bd6f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/settings.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/signature.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/signature.png
new file mode 100644 (file)
index 0000000..8834f3f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/signature.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/spellcheck.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/spellcheck.png
new file mode 100644 (file)
index 0000000..b044b8c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/spellcheck.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/stop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/stop.png
new file mode 100644 (file)
index 0000000..dfb80b2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/stop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/style.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/style.png
new file mode 100644 (file)
index 0000000..d5210b4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/style.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/system.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/system.png
new file mode 100644 (file)
index 0000000..7a750b9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/system.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-duplicate.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-duplicate.png
new file mode 100644 (file)
index 0000000..fd3ac89
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-duplicate.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-new-raised.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-new-raised.png
new file mode 100644 (file)
index 0000000..9ee2e23
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-new-raised.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-new.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-new.png
new file mode 100644 (file)
index 0000000..e00a8aa
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-new.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-remove.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-remove.png
new file mode 100644 (file)
index 0000000..3ce06bb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tab-remove.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tablet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tablet.png
new file mode 100644 (file)
index 0000000..321876c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tablet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/terminal.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/terminal.png
new file mode 100644 (file)
index 0000000..75ce701
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/terminal.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/themes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/themes.png
new file mode 100644 (file)
index 0000000..ced431a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/themes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/toys.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/toys.png
new file mode 100644 (file)
index 0000000..9e24ab9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/toys.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/trashcan-empty.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/trashcan-empty.png
new file mode 100644 (file)
index 0000000..1e9b810
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/trashcan-empty.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/trashcan-full.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/trashcan-full.png
new file mode 100644 (file)
index 0000000..aa9d732
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/trashcan-full.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tv.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tv.png
new file mode 100644 (file)
index 0000000..ffcc835
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/tv.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/undo.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/undo.png
new file mode 100644 (file)
index 0000000..6129fa0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/undo.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/up.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/up.png
new file mode 100644 (file)
index 0000000..184c118
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/up.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/user.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/user.png
new file mode 100644 (file)
index 0000000..8e649a8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/user.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/utilities.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/utilities.png
new file mode 100644 (file)
index 0000000..0ec53c9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/utilities.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-bottom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-bottom.png
new file mode 100644 (file)
index 0000000..e883ed1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-bottom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-choose.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-choose.png
new file mode 100644 (file)
index 0000000..5bd6336
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-choose.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-detailed.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-detailed.png
new file mode 100644 (file)
index 0000000..89feaeb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-detailed.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-icon.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-icon.png
new file mode 100644 (file)
index 0000000..be9effb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-icon.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-left-right.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-left-right.png
new file mode 100644 (file)
index 0000000..a574838
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-left-right.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-multicolumn.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-multicolumn.png
new file mode 100644 (file)
index 0000000..083052d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-multicolumn.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-remove.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-remove.png
new file mode 100644 (file)
index 0000000..2253ae8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-remove.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-right.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-right.png
new file mode 100644 (file)
index 0000000..294b3d2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-right.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-sidetree.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-sidetree.png
new file mode 100644 (file)
index 0000000..5cfa622
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-sidetree.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-text.png
new file mode 100644 (file)
index 0000000..c688d5f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-top-bottom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-top-bottom.png
new file mode 100644 (file)
index 0000000..cdd2d2c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-top-bottom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-tree.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-tree.png
new file mode 100644 (file)
index 0000000..4c23c9a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/view-tree.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-fit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-fit.png
new file mode 100644 (file)
index 0000000..fa590fb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-fit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-minus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-minus.png
new file mode 100644 (file)
index 0000000..f276ad5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-minus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-original.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-original.png
new file mode 100644 (file)
index 0000000..41b0d86
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-original.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-plus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-plus.png
new file mode 100644 (file)
index 0000000..f10b2ec
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag-plus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag.png
new file mode 100644 (file)
index 0000000..6dd1931
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/viewmag.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/wizard.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/wizard.png
new file mode 100644 (file)
index 0000000..c37091c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/wizard.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/wordprocessor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/wordprocessor.png
new file mode 100644 (file)
index 0000000..1570283
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/16/wordprocessor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/adobe-reader.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/adobe-reader.png
new file mode 100644 (file)
index 0000000..1ba5a7f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/adobe-reader.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/alarm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/alarm.png
new file mode 100644 (file)
index 0000000..5da3da4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/alarm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/attach.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/attach.png
new file mode 100644 (file)
index 0000000..ccd7dcf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/attach.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/back.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/back.png
new file mode 100644 (file)
index 0000000..f392596
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/back.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/background.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/background.png
new file mode 100644 (file)
index 0000000..da010da
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/background.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bell.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bell.png
new file mode 100644 (file)
index 0000000..3fddea5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bell.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bitmapgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bitmapgraphics.png
new file mode 100644 (file)
index 0000000..e678d47
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bitmapgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bookmark-add.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bookmark-add.png
new file mode 100644 (file)
index 0000000..1b0dbda
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bookmark-add.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bookmark.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bookmark.png
new file mode 100644 (file)
index 0000000..51fb06b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/bookmark.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/button-cancel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/button-cancel.png
new file mode 100644 (file)
index 0000000..816e06a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/button-cancel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/button-ok.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/button-ok.png
new file mode 100644 (file)
index 0000000..2166fdf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/button-ok.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/cache.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/cache.png
new file mode 100644 (file)
index 0000000..f83e9b7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/cache.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/camera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/camera.png
new file mode 100644 (file)
index 0000000..d9aaad7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/camera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/cancel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/cancel.png
new file mode 100644 (file)
index 0000000..816e06a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/cancel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/cdrom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/cdrom.png
new file mode 100644 (file)
index 0000000..2a7b970
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/cdrom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/char-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/char-device.png
new file mode 100644 (file)
index 0000000..13199b3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/char-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/clock.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/clock.png
new file mode 100644 (file)
index 0000000..8857153
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/clock.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/color-fill.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/color-fill.png
new file mode 100644 (file)
index 0000000..d95177a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/color-fill.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/color-line.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/color-line.png
new file mode 100644 (file)
index 0000000..445c5c7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/color-line.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/colors.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/colors.png
new file mode 100644 (file)
index 0000000..4b925cd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/colors.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/configure.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/configure.png
new file mode 100644 (file)
index 0000000..9e205a0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/configure.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/connect-creating.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/connect-creating.png
new file mode 100644 (file)
index 0000000..004382c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/connect-creating.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/connect-established.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/connect-established.png
new file mode 100644 (file)
index 0000000..52c36b6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/connect-established.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/connect-no.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/connect-no.png
new file mode 100644 (file)
index 0000000..66a4dd2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/connect-no.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/control-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/control-center.png
new file mode 100644 (file)
index 0000000..e4d376d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/control-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/core.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/core.png
new file mode 100644 (file)
index 0000000..fbcf936
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/core.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/date.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/date.png
new file mode 100644 (file)
index 0000000..1b7fd5c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/date.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/decrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/decrypted.png
new file mode 100644 (file)
index 0000000..bdac7c1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/decrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/desktop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/desktop.png
new file mode 100644 (file)
index 0000000..c78e07e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/desktop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/dictionary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/dictionary.png
new file mode 100644 (file)
index 0000000..4037e12
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/dictionary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/display.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/display.png
new file mode 100644 (file)
index 0000000..2e64d18
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/display.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/down.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/down.png
new file mode 100644 (file)
index 0000000..0733092
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/down.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-copy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-copy.png
new file mode 100644 (file)
index 0000000..df03cf3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-copy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-cut.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-cut.png
new file mode 100644 (file)
index 0000000..9845a42
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-cut.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-delete.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-delete.png
new file mode 100644 (file)
index 0000000..51839a2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-delete.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-paste.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-paste.png
new file mode 100644 (file)
index 0000000..8b7c300
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit-paste.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit.png
new file mode 100644 (file)
index 0000000..de1659e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/edit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/email.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/email.png
new file mode 100644 (file)
index 0000000..789a5ea
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/email.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/encrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/encrypted.png
new file mode 100644 (file)
index 0000000..b25238e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/encrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/energy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/energy.png
new file mode 100644 (file)
index 0000000..06502e2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/energy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/error.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/error.png
new file mode 100644 (file)
index 0000000..f089ffb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/error.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/exec.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/exec.png
new file mode 100644 (file)
index 0000000..a861875
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/exec.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/exit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/exit.png
new file mode 100644 (file)
index 0000000..78a43ef
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/exit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-new.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-new.png
new file mode 100644 (file)
index 0000000..6e2700a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-new.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-open.png
new file mode 100644 (file)
index 0000000..61c388c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-print.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-print.png
new file mode 100644 (file)
index 0000000..7183109
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-print.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-save-as.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-save-as.png
new file mode 100644 (file)
index 0000000..4321ca7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-save-as.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-save.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-save.png
new file mode 100644 (file)
index 0000000..74b37b0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/file-save.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/find.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/find.png
new file mode 100644 (file)
index 0000000..12f7ca8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/find.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/floppy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/floppy.png
new file mode 100644 (file)
index 0000000..dc46878
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/floppy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-favorite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-favorite.png
new file mode 100644 (file)
index 0000000..1196675
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-favorite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-important.png
new file mode 100644 (file)
index 0000000..39e944d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-locked.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-locked.png
new file mode 100644 (file)
index 0000000..c15328d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-locked.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-open.png
new file mode 100644 (file)
index 0000000..a801665
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder.png
new file mode 100644 (file)
index 0000000..8b020e5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/folder.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/fonts.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/fonts.png
new file mode 100644 (file)
index 0000000..9cf824d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/fonts.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/forward.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/forward.png
new file mode 100644 (file)
index 0000000..96ae3a5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/forward.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/graphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/graphics.png
new file mode 100644 (file)
index 0000000..246ce9e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/graphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/harddrive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/harddrive.png
new file mode 100644 (file)
index 0000000..74fe0c7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/harddrive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/hardware-info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/hardware-info.png
new file mode 100644 (file)
index 0000000..312a4ea
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/hardware-info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/help-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/help-center.png
new file mode 100644 (file)
index 0000000..37cdb27
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/help-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/help.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/help.png
new file mode 100644 (file)
index 0000000..8aef08e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/help.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/history.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/history.png
new file mode 100644 (file)
index 0000000..d7b86ef
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/history.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/home.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/home.png
new file mode 100644 (file)
index 0000000..74c6933
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/home.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/info.png
new file mode 100644 (file)
index 0000000..c337112
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/joystick.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/joystick.png
new file mode 100644 (file)
index 0000000..ab81e1b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/joystick.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/keyboard-layout.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/keyboard-layout.png
new file mode 100644 (file)
index 0000000..f54761f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/keyboard-layout.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/locale.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/locale.png
new file mode 100644 (file)
index 0000000..bee7d40
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/locale.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-delete.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-delete.png
new file mode 100644 (file)
index 0000000..035a9f0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-delete.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-find.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-find.png
new file mode 100644 (file)
index 0000000..76af932
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-find.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-forward.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-forward.png
new file mode 100644 (file)
index 0000000..5086ef8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-forward.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-get.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-get.png
new file mode 100644 (file)
index 0000000..4bbcd5a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-get.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-new.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-new.png
new file mode 100644 (file)
index 0000000..969fec5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-new.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-reply-all.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-reply-all.png
new file mode 100644 (file)
index 0000000..6ec45ee
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-reply-all.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-reply.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-reply.png
new file mode 100644 (file)
index 0000000..17e89e4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-reply.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-send.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-send.png
new file mode 100644 (file)
index 0000000..4b72194
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail-send.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail.png
new file mode 100644 (file)
index 0000000..5123785
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mail.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-archive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-archive.png
new file mode 100644 (file)
index 0000000..d7b3186
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-archive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-binary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-binary.png
new file mode 100644 (file)
index 0000000..984d511
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-binary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-calendar.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-calendar.png
new file mode 100644 (file)
index 0000000..a8a0666
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-calendar.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-card.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-card.png
new file mode 100644 (file)
index 0000000..1b04136
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-card.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-document.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-document.png
new file mode 100644 (file)
index 0000000..1a81ef6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-document.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-html.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-html.png
new file mode 100644 (file)
index 0000000..8766e83
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-html.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-image.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-image.png
new file mode 100644 (file)
index 0000000..26f4688
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-image.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-manual.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-manual.png
new file mode 100644 (file)
index 0000000..4a58e72
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-manual.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-multimedia.png
new file mode 100644 (file)
index 0000000..fcba408
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-pdf.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-pdf.png
new file mode 100644 (file)
index 0000000..30cf778
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-pdf.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-quicktime.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-quicktime.png
new file mode 100755 (executable)
index 0000000..d98c59d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-quicktime.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-rpm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-rpm.png
new file mode 100644 (file)
index 0000000..0ff3864
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-rpm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-script.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-script.png
new file mode 100644 (file)
index 0000000..1eefecc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-script.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-shellscript.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-shellscript.png
new file mode 100644 (file)
index 0000000..552eeae
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-shellscript.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-sourcecode.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-sourcecode.png
new file mode 100644 (file)
index 0000000..bb18aa8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-sourcecode.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-spreadsheet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-spreadsheet.png
new file mode 100644 (file)
index 0000000..adbbc4c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-spreadsheet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-text.png
new file mode 100644 (file)
index 0000000..70f412a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-video.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-video.png
new file mode 100644 (file)
index 0000000..37c4b60
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mime-video.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/misc.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/misc.png
new file mode 100644 (file)
index 0000000..625285f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/misc.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/modem.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/modem.png
new file mode 100644 (file)
index 0000000..413a766
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/modem.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mouse.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mouse.png
new file mode 100644 (file)
index 0000000..b058538
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mouse.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/multimedia.png
new file mode 100644 (file)
index 0000000..6c6d9e0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mycomputer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mycomputer.png
new file mode 100644 (file)
index 0000000..c52d85a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/mycomputer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/netscape.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/netscape.png
new file mode 100644 (file)
index 0000000..00bf497
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/netscape.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/network.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/network.png
new file mode 100644 (file)
index 0000000..88d8e31
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/network.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/ok.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/ok.png
new file mode 100644 (file)
index 0000000..2166fdf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/ok.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/paint.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/paint.png
new file mode 100644 (file)
index 0000000..f20282b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/paint.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/partitions.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/partitions.png
new file mode 100644 (file)
index 0000000..733f2f3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/partitions.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/password.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/password.png
new file mode 100644 (file)
index 0000000..96fb4cd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/password.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/pda.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/pda.png
new file mode 100644 (file)
index 0000000..cdf73e7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/pda.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/printer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/printer.png
new file mode 100644 (file)
index 0000000..0e02d8d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/printer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/queue.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/queue.png
new file mode 100644 (file)
index 0000000..9fad202
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/queue.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/redo.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/redo.png
new file mode 100644 (file)
index 0000000..7067f58
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/redo.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/reload.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/reload.png
new file mode 100644 (file)
index 0000000..0d1ae45
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/reload.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/run.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/run.png
new file mode 100644 (file)
index 0000000..d108327
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/run.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/scanner.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/scanner.png
new file mode 100644 (file)
index 0000000..af1506e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/scanner.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/settings.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/settings.png
new file mode 100644 (file)
index 0000000..d201e91
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/settings.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/signature.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/signature.png
new file mode 100644 (file)
index 0000000..a45ece2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/signature.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/spellcheck.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/spellcheck.png
new file mode 100644 (file)
index 0000000..45fe909
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/spellcheck.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/stop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/stop.png
new file mode 100644 (file)
index 0000000..da1e944
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/stop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/tablet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/tablet.png
new file mode 100644 (file)
index 0000000..176692e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/tablet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/terminal.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/terminal.png
new file mode 100644 (file)
index 0000000..1c4ca34
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/terminal.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/toys.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/toys.png
new file mode 100644 (file)
index 0000000..55bd0cb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/toys.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/trashcan-empty.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/trashcan-empty.png
new file mode 100644 (file)
index 0000000..2b48848
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/trashcan-empty.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/trashcan-full.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/trashcan-full.png
new file mode 100644 (file)
index 0000000..56d90a4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/trashcan-full.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/tv.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/tv.png
new file mode 100644 (file)
index 0000000..fd50b07
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/tv.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/undo.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/undo.png
new file mode 100644 (file)
index 0000000..a1021b6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/undo.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/up.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/up.png
new file mode 100644 (file)
index 0000000..7475f6a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/up.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/user.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/user.png
new file mode 100644 (file)
index 0000000..c5c8dc6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/user.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/utilities.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/utilities.png
new file mode 100644 (file)
index 0000000..08d5366
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/utilities.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-bottom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-bottom.png
new file mode 100644 (file)
index 0000000..fd26846
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-bottom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-choose.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-choose.png
new file mode 100644 (file)
index 0000000..317ee8a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-choose.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-detailed.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-detailed.png
new file mode 100644 (file)
index 0000000..eea5649
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-detailed.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-icon.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-icon.png
new file mode 100644 (file)
index 0000000..aa6dea5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-icon.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-left-right.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-left-right.png
new file mode 100644 (file)
index 0000000..98e0510
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-left-right.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-multicolumn.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-multicolumn.png
new file mode 100644 (file)
index 0000000..b965f8d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-multicolumn.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-remove.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-remove.png
new file mode 100644 (file)
index 0000000..0e50c69
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-remove.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-right.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-right.png
new file mode 100644 (file)
index 0000000..f49e4a5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-right.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-sidetree.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-sidetree.png
new file mode 100644 (file)
index 0000000..0aceb0f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-sidetree.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-text.png
new file mode 100644 (file)
index 0000000..c271063
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-top-bottom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-top-bottom.png
new file mode 100644 (file)
index 0000000..8571e59
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-top-bottom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-tree.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-tree.png
new file mode 100644 (file)
index 0000000..888a879
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/view-tree.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-fit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-fit.png
new file mode 100644 (file)
index 0000000..7d8ff85
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-fit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-minus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-minus.png
new file mode 100644 (file)
index 0000000..911a5c0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-minus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-original.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-original.png
new file mode 100644 (file)
index 0000000..ff1292f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-original.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-plus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-plus.png
new file mode 100644 (file)
index 0000000..22c31ac
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag-plus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag.png
new file mode 100644 (file)
index 0000000..e845f6d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/viewmag.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/wizard.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/wizard.png
new file mode 100644 (file)
index 0000000..ad4436d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/22/wizard.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/accessibility.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/accessibility.png
new file mode 100644 (file)
index 0000000..dfad3c5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/accessibility.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/adobe-reader.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/adobe-reader.png
new file mode 100644 (file)
index 0000000..43670f7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/adobe-reader.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/alarm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/alarm.png
new file mode 100644 (file)
index 0000000..a4fca9c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/alarm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/applications.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/applications.png
new file mode 100644 (file)
index 0000000..105d21e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/applications.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/attach.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/attach.png
new file mode 100644 (file)
index 0000000..3bc6ae9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/attach.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/back.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/back.png
new file mode 100644 (file)
index 0000000..2568b59
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/back.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/background.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/background.png
new file mode 100644 (file)
index 0000000..e292b87
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/background.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bell.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bell.png
new file mode 100644 (file)
index 0000000..32b6d89
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bell.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bitmapgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bitmapgraphics.png
new file mode 100644 (file)
index 0000000..455018c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bitmapgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bookmark-add.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bookmark-add.png
new file mode 100644 (file)
index 0000000..18f0a81
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bookmark-add.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bookmark.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bookmark.png
new file mode 100644 (file)
index 0000000..6cccfd9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bookmark.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bug.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bug.png
new file mode 100644 (file)
index 0000000..8d46060
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/bug.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/button-cancel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/button-cancel.png
new file mode 100644 (file)
index 0000000..2d5e260
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/button-cancel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/button-ok.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/button-ok.png
new file mode 100644 (file)
index 0000000..592ce6f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/button-ok.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/cache.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/cache.png
new file mode 100644 (file)
index 0000000..ff4298b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/cache.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/calculator.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/calculator.png
new file mode 100644 (file)
index 0000000..00b5426
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/calculator.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/camera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/camera.png
new file mode 100644 (file)
index 0000000..b41b44c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/camera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/cdrom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/cdrom.png
new file mode 100644 (file)
index 0000000..209af79
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/cdrom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/char-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/char-device.png
new file mode 100644 (file)
index 0000000..dfc16aa
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/char-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/chart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/chart.png
new file mode 100644 (file)
index 0000000..7460cab
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/chart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/clipboard.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/clipboard.png
new file mode 100644 (file)
index 0000000..def2ea1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/clipboard.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/clock.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/clock.png
new file mode 100644 (file)
index 0000000..1836149
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/clock.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/colors.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/colors.png
new file mode 100644 (file)
index 0000000..212adb0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/colors.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/configure.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/configure.png
new file mode 100644 (file)
index 0000000..feebf2b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/configure.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/connect-creating.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/connect-creating.png
new file mode 100644 (file)
index 0000000..f625d29
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/connect-creating.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/connect-established.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/connect-established.png
new file mode 100644 (file)
index 0000000..6b77a05
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/connect-established.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/connect-no.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/connect-no.png
new file mode 100644 (file)
index 0000000..25a59f3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/connect-no.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/contents.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/contents.png
new file mode 100644 (file)
index 0000000..d3ba528
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/contents.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/control-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/control-center.png
new file mode 100644 (file)
index 0000000..6f3b1f4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/control-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/cookie.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/cookie.png
new file mode 100644 (file)
index 0000000..db4bd61
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/cookie.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/core.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/core.png
new file mode 100644 (file)
index 0000000..e112fb7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/core.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/date.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/date.png
new file mode 100644 (file)
index 0000000..41fa2ac
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/date.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/decrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/decrypted.png
new file mode 100644 (file)
index 0000000..2b49969
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/decrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/desktop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/desktop.png
new file mode 100644 (file)
index 0000000..9b993a5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/desktop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/devices.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/devices.png
new file mode 100644 (file)
index 0000000..b29ec1e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/devices.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/dictionary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/dictionary.png
new file mode 100644 (file)
index 0000000..9aa7d66
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/dictionary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/display.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/display.png
new file mode 100644 (file)
index 0000000..30f1dfa
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/display.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/down.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/down.png
new file mode 100644 (file)
index 0000000..5cbe6bb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/down.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-copy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-copy.png
new file mode 100644 (file)
index 0000000..18627b7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-copy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-cut.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-cut.png
new file mode 100644 (file)
index 0000000..ad6fbb1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-cut.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-delete.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-delete.png
new file mode 100644 (file)
index 0000000..ab71fae
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-delete.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-paste.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-paste.png
new file mode 100644 (file)
index 0000000..9e224a9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit-paste.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit.png
new file mode 100644 (file)
index 0000000..f3ec32e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/edit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/editor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/editor.png
new file mode 100644 (file)
index 0000000..89ef01b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/editor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/email.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/email.png
new file mode 100644 (file)
index 0000000..6379207
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/email.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/encrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/encrypted.png
new file mode 100644 (file)
index 0000000..36adbc8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/encrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/energy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/energy.png
new file mode 100644 (file)
index 0000000..a530b1b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/energy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/error.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/error.png
new file mode 100644 (file)
index 0000000..538cb90
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/error.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/exec.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/exec.png
new file mode 100644 (file)
index 0000000..1780eaf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/exec.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/exit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/exit.png
new file mode 100644 (file)
index 0000000..08e97b4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/exit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-manager.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-manager.png
new file mode 100644 (file)
index 0000000..e551d98
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-manager.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-new.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-new.png
new file mode 100644 (file)
index 0000000..a71c1a2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-new.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-open.png
new file mode 100644 (file)
index 0000000..77c992f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-print.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-print.png
new file mode 100644 (file)
index 0000000..a510ec6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-print.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-save-as.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-save-as.png
new file mode 100644 (file)
index 0000000..55ca1ec
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-save-as.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-save.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-save.png
new file mode 100644 (file)
index 0000000..ae13a15
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/file-save.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/find.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/find.png
new file mode 100644 (file)
index 0000000..f1ad60c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/find.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/floppy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/floppy.png
new file mode 100644 (file)
index 0000000..51c0b00
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/floppy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/flowchart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/flowchart.png
new file mode 100644 (file)
index 0000000..af286d9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/flowchart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-favorite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-favorite.png
new file mode 100644 (file)
index 0000000..e83d7d2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-favorite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-important.png
new file mode 100644 (file)
index 0000000..3f10462
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-locked.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-locked.png
new file mode 100644 (file)
index 0000000..e540a90
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-locked.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-open.png
new file mode 100644 (file)
index 0000000..376aa6e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder.png
new file mode 100644 (file)
index 0000000..bd433f4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/folder.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/fonts.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/fonts.png
new file mode 100644 (file)
index 0000000..fbe6709
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/fonts.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/forward.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/forward.png
new file mode 100644 (file)
index 0000000..3453bde
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/forward.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/games.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/games.png
new file mode 100644 (file)
index 0000000..538e3ec
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/games.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/graphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/graphics.png
new file mode 100644 (file)
index 0000000..cf1c60d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/graphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/harddrive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/harddrive.png
new file mode 100644 (file)
index 0000000..bc399f2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/harddrive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/hardware-info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/hardware-info.png
new file mode 100644 (file)
index 0000000..41d50b7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/hardware-info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/help-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/help-center.png
new file mode 100644 (file)
index 0000000..c59d5a0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/help-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/help.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/help.png
new file mode 100644 (file)
index 0000000..d56ba2c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/help.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/home.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/home.png
new file mode 100644 (file)
index 0000000..86ea229
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/home.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/icons.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/icons.png
new file mode 100644 (file)
index 0000000..86cd87b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/icons.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/iconthemes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/iconthemes.png
new file mode 100644 (file)
index 0000000..6345bea
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/iconthemes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/important.png
new file mode 100644 (file)
index 0000000..284e5e3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/info.png
new file mode 100644 (file)
index 0000000..a4e834f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/joystick.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/joystick.png
new file mode 100644 (file)
index 0000000..1fee257
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/joystick.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/keyboard-layout.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/keyboard-layout.png
new file mode 100644 (file)
index 0000000..501fe2e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/keyboard-layout.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/locale.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/locale.png
new file mode 100644 (file)
index 0000000..9181746
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/locale.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/look-and-feel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/look-and-feel.png
new file mode 100644 (file)
index 0000000..377440b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/look-and-feel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/magnifier.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/magnifier.png
new file mode 100644 (file)
index 0000000..87a73a1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/magnifier.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-delete.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-delete.png
new file mode 100644 (file)
index 0000000..7014f9f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-delete.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-find.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-find.png
new file mode 100644 (file)
index 0000000..81d6088
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-find.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-get.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-get.png
new file mode 100644 (file)
index 0000000..fa88beb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-get.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-new.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-new.png
new file mode 100644 (file)
index 0000000..825459f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-new.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-send.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-send.png
new file mode 100644 (file)
index 0000000..241544b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail-send.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail.png
new file mode 100644 (file)
index 0000000..356a2e7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mail.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/memory.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/memory.png
new file mode 100644 (file)
index 0000000..e0a295d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/memory.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-archive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-archive.png
new file mode 100644 (file)
index 0000000..3f83ddf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-archive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-binary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-binary.png
new file mode 100644 (file)
index 0000000..d417499
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-binary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-calendar.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-calendar.png
new file mode 100644 (file)
index 0000000..67498ea
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-calendar.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-card.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-card.png
new file mode 100644 (file)
index 0000000..bdb23ae
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-card.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-document.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-document.png
new file mode 100644 (file)
index 0000000..ac2ff05
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-document.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-html.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-html.png
new file mode 100644 (file)
index 0000000..ba0ee38
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-html.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-image.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-image.png
new file mode 100644 (file)
index 0000000..b0f0c90
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-image.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-manual.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-manual.png
new file mode 100644 (file)
index 0000000..13a3d11
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-manual.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-multimedia.png
new file mode 100644 (file)
index 0000000..80f005b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-pdf.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-pdf.png
new file mode 100644 (file)
index 0000000..5c1e8e2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-pdf.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-quicktime.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-quicktime.png
new file mode 100755 (executable)
index 0000000..3bea4d7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-quicktime.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-rpm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-rpm.png
new file mode 100644 (file)
index 0000000..bf95b1a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-rpm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-script.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-script.png
new file mode 100644 (file)
index 0000000..e151a68
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-script.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-shellscript.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-shellscript.png
new file mode 100644 (file)
index 0000000..eea60d0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-shellscript.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-sourcecode.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-sourcecode.png
new file mode 100644 (file)
index 0000000..fac883e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-sourcecode.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-spreadsheet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-spreadsheet.png
new file mode 100644 (file)
index 0000000..366c67c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-spreadsheet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-text.png
new file mode 100644 (file)
index 0000000..788d0e7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-video.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-video.png
new file mode 100644 (file)
index 0000000..68efea6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mime-video.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/misc.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/misc.png
new file mode 100644 (file)
index 0000000..135fd11
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/misc.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mixer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mixer.png
new file mode 100644 (file)
index 0000000..2c8b5be
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mixer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/modem.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/modem.png
new file mode 100644 (file)
index 0000000..ac870be
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/modem.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mouse.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mouse.png
new file mode 100644 (file)
index 0000000..91ae19a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mouse.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/movieplayer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/movieplayer.png
new file mode 100644 (file)
index 0000000..68726f5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/movieplayer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/multimedia.png
new file mode 100644 (file)
index 0000000..b34aa66
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mycomputer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mycomputer.png
new file mode 100644 (file)
index 0000000..de11b2b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/mycomputer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/netscape.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/netscape.png
new file mode 100644 (file)
index 0000000..5b6775b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/netscape.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/network.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/network.png
new file mode 100644 (file)
index 0000000..e164a9f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/network.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/notes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/notes.png
new file mode 100644 (file)
index 0000000..0a9d209
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/notes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/notify.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/notify.png
new file mode 100644 (file)
index 0000000..bfbc795
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/notify.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/opera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/opera.png
new file mode 100644 (file)
index 0000000..c3a0ee4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/opera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/organizer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/organizer.png
new file mode 100644 (file)
index 0000000..caeff82
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/organizer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/paint.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/paint.png
new file mode 100644 (file)
index 0000000..9ec1a85
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/paint.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/partitions.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/partitions.png
new file mode 100644 (file)
index 0000000..856484f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/partitions.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/password.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/password.png
new file mode 100644 (file)
index 0000000..b74e831
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/password.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/pda.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/pda.png
new file mode 100644 (file)
index 0000000..1458d9b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/pda.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/pipe.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/pipe.png
new file mode 100644 (file)
index 0000000..5df1cc4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/pipe.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/presentation.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/presentation.png
new file mode 100644 (file)
index 0000000..54c19d1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/presentation.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/printer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/printer.png
new file mode 100644 (file)
index 0000000..16b7f8f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/printer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/queue.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/queue.png
new file mode 100644 (file)
index 0000000..47e59f2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/queue.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/redo.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/redo.png
new file mode 100644 (file)
index 0000000..36bf9b6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/redo.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/reload.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/reload.png
new file mode 100644 (file)
index 0000000..4b0e37a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/reload.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/run.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/run.png
new file mode 100644 (file)
index 0000000..db5111a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/run.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/scanner.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/scanner.png
new file mode 100644 (file)
index 0000000..974635d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/scanner.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/services.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/services.png
new file mode 100644 (file)
index 0000000..135fd11
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/services.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/settings.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/settings.png
new file mode 100644 (file)
index 0000000..f37127e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/settings.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/stop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/stop.png
new file mode 100644 (file)
index 0000000..b953dd7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/stop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/style.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/style.png
new file mode 100644 (file)
index 0000000..0788864
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/style.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/system.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/system.png
new file mode 100644 (file)
index 0000000..6398704
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/system.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/tablet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/tablet.png
new file mode 100644 (file)
index 0000000..fa871f5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/tablet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/terminal.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/terminal.png
new file mode 100644 (file)
index 0000000..290f723
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/terminal.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/themes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/themes.png
new file mode 100644 (file)
index 0000000..ff1e6f2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/themes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/toys.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/toys.png
new file mode 100644 (file)
index 0000000..c8d129d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/toys.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/trashcan-empty.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/trashcan-empty.png
new file mode 100644 (file)
index 0000000..df07ab4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/trashcan-empty.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/trashcan-full.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/trashcan-full.png
new file mode 100644 (file)
index 0000000..f19899d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/trashcan-full.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/tv.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/tv.png
new file mode 100644 (file)
index 0000000..a2d1c28
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/tv.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/undo.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/undo.png
new file mode 100644 (file)
index 0000000..28915c0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/undo.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/up.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/up.png
new file mode 100644 (file)
index 0000000..899ad4f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/up.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/user.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/user.png
new file mode 100644 (file)
index 0000000..b368c3d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/user.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/utilities.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/utilities.png
new file mode 100644 (file)
index 0000000..885d476
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/utilities.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-bottom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-bottom.png
new file mode 100644 (file)
index 0000000..f2aa1cb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-bottom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-choose.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-choose.png
new file mode 100644 (file)
index 0000000..8b0e144
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-choose.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-detailed.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-detailed.png
new file mode 100644 (file)
index 0000000..8c315cf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-detailed.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-icon.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-icon.png
new file mode 100644 (file)
index 0000000..2b5d655
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-icon.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-left-right.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-left-right.png
new file mode 100644 (file)
index 0000000..d2a15ba
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-left-right.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-multicolumn.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-multicolumn.png
new file mode 100644 (file)
index 0000000..5230fba
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-multicolumn.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-remove.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-remove.png
new file mode 100644 (file)
index 0000000..9c2bedc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-remove.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-right.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-right.png
new file mode 100644 (file)
index 0000000..5c0179d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-right.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-sidetree.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-sidetree.png
new file mode 100644 (file)
index 0000000..f682b94
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-sidetree.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-text.png
new file mode 100644 (file)
index 0000000..ed6d2e0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-top-bottom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-top-bottom.png
new file mode 100644 (file)
index 0000000..223c7b4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-top-bottom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-tree.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-tree.png
new file mode 100644 (file)
index 0000000..b896d17
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/view-tree.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-fit.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-fit.png
new file mode 100644 (file)
index 0000000..b4f5514
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-fit.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-minus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-minus.png
new file mode 100644 (file)
index 0000000..0dc9662
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-minus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-original.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-original.png
new file mode 100644 (file)
index 0000000..f0ca554
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-original.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-plus.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-plus.png
new file mode 100644 (file)
index 0000000..cfb5a19
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag-plus.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag.png
new file mode 100644 (file)
index 0000000..de5ef3a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/viewmag.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/wordprocessor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/wordprocessor.png
new file mode 100644 (file)
index 0000000..46dd911
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/32/wordprocessor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/accessibility.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/accessibility.png
new file mode 100644 (file)
index 0000000..3974578
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/accessibility.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/adobe-reader.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/adobe-reader.png
new file mode 100644 (file)
index 0000000..1ed9165
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/adobe-reader.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/alarm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/alarm.png
new file mode 100644 (file)
index 0000000..3b77e47
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/alarm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/applications.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/applications.png
new file mode 100644 (file)
index 0000000..43f6a58
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/applications.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/back.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/back.png
new file mode 100644 (file)
index 0000000..753b14f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/back.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/background.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/background.png
new file mode 100644 (file)
index 0000000..50a848f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/background.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/bell.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/bell.png
new file mode 100644 (file)
index 0000000..be0c6e6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/bell.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/bitmapgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/bitmapgraphics.png
new file mode 100644 (file)
index 0000000..1c16253
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/bitmapgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/bug.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/bug.png
new file mode 100644 (file)
index 0000000..51c48a2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/bug.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/cache.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/cache.png
new file mode 100644 (file)
index 0000000..321e824
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/cache.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/calculator.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/calculator.png
new file mode 100644 (file)
index 0000000..8875263
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/calculator.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/camera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/camera.png
new file mode 100644 (file)
index 0000000..68046fa
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/camera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/cdrom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/cdrom.png
new file mode 100644 (file)
index 0000000..1b0a503
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/cdrom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/char-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/char-device.png
new file mode 100644 (file)
index 0000000..6347861
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/char-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/chart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/chart.png
new file mode 100644 (file)
index 0000000..384e9bd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/chart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/clipboard.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/clipboard.png
new file mode 100644 (file)
index 0000000..ea9c78e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/clipboard.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/clock.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/clock.png
new file mode 100644 (file)
index 0000000..17e760a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/clock.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/colors.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/colors.png
new file mode 100644 (file)
index 0000000..641c9d8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/colors.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/control-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/control-center.png
new file mode 100644 (file)
index 0000000..a359543
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/control-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/core.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/core.png
new file mode 100644 (file)
index 0000000..b4543b4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/core.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/date.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/date.png
new file mode 100644 (file)
index 0000000..d3b8f47
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/date.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/desktop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/desktop.png
new file mode 100644 (file)
index 0000000..9a0cf87
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/desktop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/devices.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/devices.png
new file mode 100644 (file)
index 0000000..aaae19b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/devices.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/dictionary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/dictionary.png
new file mode 100644 (file)
index 0000000..f96a2aa
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/dictionary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/display.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/display.png
new file mode 100644 (file)
index 0000000..6b9ab9e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/display.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/down.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/down.png
new file mode 100644 (file)
index 0000000..5648bf1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/down.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/editor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/editor.png
new file mode 100644 (file)
index 0000000..36459cf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/editor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/email.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/email.png
new file mode 100644 (file)
index 0000000..19c7cfd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/email.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/encrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/encrypted.png
new file mode 100644 (file)
index 0000000..4d42a7e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/encrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/energy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/energy.png
new file mode 100644 (file)
index 0000000..94ce36b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/energy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/error.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/error.png
new file mode 100644 (file)
index 0000000..e1841e4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/error.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/exec.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/exec.png
new file mode 100644 (file)
index 0000000..8467ec1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/exec.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/file-manager.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/file-manager.png
new file mode 100644 (file)
index 0000000..ebdeaa3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/file-manager.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/file-print.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/file-print.png
new file mode 100644 (file)
index 0000000..05e1598
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/file-print.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/floppy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/floppy.png
new file mode 100644 (file)
index 0000000..69d70f2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/floppy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/flowchart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/flowchart.png
new file mode 100644 (file)
index 0000000..21e00d1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/flowchart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-favorite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-favorite.png
new file mode 100644 (file)
index 0000000..9196b88
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-favorite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-important.png
new file mode 100644 (file)
index 0000000..d91b77c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-locked.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-locked.png
new file mode 100644 (file)
index 0000000..f165846
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-locked.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-open.png
new file mode 100644 (file)
index 0000000..f7314b3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder.png
new file mode 100644 (file)
index 0000000..31c8a7e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/folder.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/fonts.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/fonts.png
new file mode 100644 (file)
index 0000000..41ebf4d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/fonts.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/forward.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/forward.png
new file mode 100644 (file)
index 0000000..88eb4cf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/forward.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/games.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/games.png
new file mode 100644 (file)
index 0000000..f3a73f8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/games.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/graphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/graphics.png
new file mode 100644 (file)
index 0000000..624d07f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/graphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/harddrive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/harddrive.png
new file mode 100644 (file)
index 0000000..046a530
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/harddrive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/hardware-info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/hardware-info.png
new file mode 100644 (file)
index 0000000..2c7b760
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/hardware-info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/help-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/help-center.png
new file mode 100644 (file)
index 0000000..614b0f9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/help-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/home.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/home.png
new file mode 100644 (file)
index 0000000..d2b3dfc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/home.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/icons.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/icons.png
new file mode 100644 (file)
index 0000000..5aaece3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/icons.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/iconthemes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/iconthemes.png
new file mode 100644 (file)
index 0000000..ba4744f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/iconthemes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/important.png
new file mode 100644 (file)
index 0000000..a763d82
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/info.png
new file mode 100644 (file)
index 0000000..d2051a8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/joystick.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/joystick.png
new file mode 100644 (file)
index 0000000..d743431
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/joystick.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/keyboard-layout.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/keyboard-layout.png
new file mode 100644 (file)
index 0000000..c17c9f1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/keyboard-layout.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/locale.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/locale.png
new file mode 100644 (file)
index 0000000..a784df5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/locale.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/look-and-feel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/look-and-feel.png
new file mode 100644 (file)
index 0000000..69f5db9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/look-and-feel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/magnifier.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/magnifier.png
new file mode 100644 (file)
index 0000000..538d656
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/magnifier.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/memory.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/memory.png
new file mode 100644 (file)
index 0000000..ecd8072
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/memory.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-archive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-archive.png
new file mode 100644 (file)
index 0000000..b81636d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-archive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-binary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-binary.png
new file mode 100644 (file)
index 0000000..a898930
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-binary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-calendar.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-calendar.png
new file mode 100644 (file)
index 0000000..f34f15a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-calendar.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-card.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-card.png
new file mode 100644 (file)
index 0000000..51926b5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-card.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-document.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-document.png
new file mode 100644 (file)
index 0000000..b545d96
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-document.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-html.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-html.png
new file mode 100644 (file)
index 0000000..017f9d3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-html.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-image.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-image.png
new file mode 100644 (file)
index 0000000..3d09494
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-image.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-manual.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-manual.png
new file mode 100644 (file)
index 0000000..290e293
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-manual.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-multimedia.png
new file mode 100644 (file)
index 0000000..6a9d422
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-pdf.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-pdf.png
new file mode 100644 (file)
index 0000000..4e5e18e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-pdf.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-quicktime.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-quicktime.png
new file mode 100755 (executable)
index 0000000..004b077
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-quicktime.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-rpm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-rpm.png
new file mode 100644 (file)
index 0000000..4e4c562
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-rpm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-script.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-script.png
new file mode 100644 (file)
index 0000000..00cc8a7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-script.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-shellscript.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-shellscript.png
new file mode 100644 (file)
index 0000000..85f8a89
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-shellscript.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-sourcecode.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-sourcecode.png
new file mode 100644 (file)
index 0000000..b14e8f2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-sourcecode.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-spreadsheet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-spreadsheet.png
new file mode 100644 (file)
index 0000000..05f4aff
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-spreadsheet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-text.png
new file mode 100644 (file)
index 0000000..884c362
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-video.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-video.png
new file mode 100644 (file)
index 0000000..29a1a8c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mime-video.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mixer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mixer.png
new file mode 100644 (file)
index 0000000..fb5ca52
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mixer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/modem.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/modem.png
new file mode 100644 (file)
index 0000000..af8c783
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/modem.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mouse.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mouse.png
new file mode 100644 (file)
index 0000000..ba460dd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mouse.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/movieplayer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/movieplayer.png
new file mode 100644 (file)
index 0000000..59a8b19
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/movieplayer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/multimedia.png
new file mode 100644 (file)
index 0000000..5a9c231
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mycomputer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mycomputer.png
new file mode 100644 (file)
index 0000000..8f07fa9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/mycomputer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/netscape.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/netscape.png
new file mode 100644 (file)
index 0000000..4ff1a20
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/netscape.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/network.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/network.png
new file mode 100644 (file)
index 0000000..b5f28c4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/network.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/notes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/notes.png
new file mode 100644 (file)
index 0000000..d0d7cba
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/notes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/notify.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/notify.png
new file mode 100644 (file)
index 0000000..40205ad
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/notify.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/opera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/opera.png
new file mode 100644 (file)
index 0000000..6fb9136
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/opera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/organizer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/organizer.png
new file mode 100644 (file)
index 0000000..e11737f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/organizer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/paint.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/paint.png
new file mode 100644 (file)
index 0000000..6e9fdc7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/paint.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/partitions.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/partitions.png
new file mode 100644 (file)
index 0000000..c29409a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/partitions.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/password.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/password.png
new file mode 100644 (file)
index 0000000..98d7607
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/password.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/pda.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/pda.png
new file mode 100644 (file)
index 0000000..7a4a13f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/pda.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/pipe.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/pipe.png
new file mode 100644 (file)
index 0000000..d479c1b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/pipe.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/presentation.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/presentation.png
new file mode 100644 (file)
index 0000000..ebc2349
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/presentation.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/printer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/printer.png
new file mode 100644 (file)
index 0000000..1e160cd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/printer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/reload.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/reload.png
new file mode 100644 (file)
index 0000000..248f614
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/reload.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/scanner.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/scanner.png
new file mode 100644 (file)
index 0000000..71aed18
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/scanner.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/services.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/services.png
new file mode 100644 (file)
index 0000000..086c850
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/services.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/settings.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/settings.png
new file mode 100644 (file)
index 0000000..34dc628
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/settings.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/style.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/style.png
new file mode 100644 (file)
index 0000000..c9c4381
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/style.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/system.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/system.png
new file mode 100644 (file)
index 0000000..9962b4b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/system.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/tablet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/tablet.png
new file mode 100644 (file)
index 0000000..8de5ba6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/tablet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/terminal.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/terminal.png
new file mode 100644 (file)
index 0000000..c7bdedf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/terminal.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/themes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/themes.png
new file mode 100644 (file)
index 0000000..22040c3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/themes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/toys.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/toys.png
new file mode 100644 (file)
index 0000000..123d8fb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/toys.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/trashcan-empty.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/trashcan-empty.png
new file mode 100644 (file)
index 0000000..37a8aa2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/trashcan-empty.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/trashcan-full.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/trashcan-full.png
new file mode 100644 (file)
index 0000000..37b1486
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/trashcan-full.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/tv.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/tv.png
new file mode 100644 (file)
index 0000000..9c2740a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/tv.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/up.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/up.png
new file mode 100644 (file)
index 0000000..6af2494
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/up.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/user.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/user.png
new file mode 100644 (file)
index 0000000..fe74c00
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/user.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/utilities.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/utilities.png
new file mode 100644 (file)
index 0000000..baac6ad
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/utilities.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/wordprocessor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/wordprocessor.png
new file mode 100644 (file)
index 0000000..95cd69c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/48/wordprocessor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/adobe-reader.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/adobe-reader.png
new file mode 100644 (file)
index 0000000..63d4175
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/adobe-reader.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/applications.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/applications.png
new file mode 100644 (file)
index 0000000..d4c1c7f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/applications.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/background.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/background.png
new file mode 100644 (file)
index 0000000..eecc4f4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/background.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/bell.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/bell.png
new file mode 100644 (file)
index 0000000..d8d7ec7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/bell.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/bitmapgraphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/bitmapgraphics.png
new file mode 100644 (file)
index 0000000..68321ff
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/bitmapgraphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/bug.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/bug.png
new file mode 100644 (file)
index 0000000..b5003f6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/bug.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/cache.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/cache.png
new file mode 100644 (file)
index 0000000..c42bf4a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/cache.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/calculator.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/calculator.png
new file mode 100644 (file)
index 0000000..c5ee12e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/calculator.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/camera.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/camera.png
new file mode 100644 (file)
index 0000000..9fa861b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/camera.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/cdrom.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/cdrom.png
new file mode 100644 (file)
index 0000000..95af804
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/cdrom.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/char-device.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/char-device.png
new file mode 100644 (file)
index 0000000..078f4cd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/char-device.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/chart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/chart.png
new file mode 100644 (file)
index 0000000..b579eca
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/chart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/clipboard.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/clipboard.png
new file mode 100644 (file)
index 0000000..300827a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/clipboard.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/clock.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/clock.png
new file mode 100644 (file)
index 0000000..dda46a5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/clock.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/colors.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/colors.png
new file mode 100644 (file)
index 0000000..dfe8f95
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/colors.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/control-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/control-center.png
new file mode 100644 (file)
index 0000000..0ecbfe5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/control-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/core.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/core.png
new file mode 100644 (file)
index 0000000..410dd3a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/core.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/date.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/date.png
new file mode 100644 (file)
index 0000000..4746c98
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/date.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/desktop.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/desktop.png
new file mode 100644 (file)
index 0000000..fd2b4a7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/desktop.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/devices.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/devices.png
new file mode 100644 (file)
index 0000000..b303411
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/devices.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/dictionary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/dictionary.png
new file mode 100644 (file)
index 0000000..4d2ecd2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/dictionary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/display.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/display.png
new file mode 100644 (file)
index 0000000..5e93201
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/display.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/editor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/editor.png
new file mode 100644 (file)
index 0000000..1e54b37
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/editor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/email.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/email.png
new file mode 100644 (file)
index 0000000..442141d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/email.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/encrypted.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/encrypted.png
new file mode 100644 (file)
index 0000000..2e06c17
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/encrypted.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/energy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/energy.png
new file mode 100644 (file)
index 0000000..9a82987
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/energy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/error.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/error.png
new file mode 100644 (file)
index 0000000..e597c46
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/error.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/exec.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/exec.png
new file mode 100644 (file)
index 0000000..a1b6850
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/exec.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/file-manager.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/file-manager.png
new file mode 100644 (file)
index 0000000..b569517
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/file-manager.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/floppy.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/floppy.png
new file mode 100644 (file)
index 0000000..fac5eeb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/floppy.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/flowchart.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/flowchart.png
new file mode 100644 (file)
index 0000000..a29a779
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/flowchart.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-favorite.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-favorite.png
new file mode 100644 (file)
index 0000000..f57ed10
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-favorite.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-important.png
new file mode 100644 (file)
index 0000000..1c97def
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-locked.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-locked.png
new file mode 100644 (file)
index 0000000..9e9bbd9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-locked.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-open.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-open.png
new file mode 100644 (file)
index 0000000..f5bddaf
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder-open.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder.png
new file mode 100644 (file)
index 0000000..5ef5754
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/folder.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/fonts.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/fonts.png
new file mode 100644 (file)
index 0000000..779f19a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/fonts.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/games.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/games.png
new file mode 100644 (file)
index 0000000..a040f39
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/games.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/graphics.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/graphics.png
new file mode 100644 (file)
index 0000000..417d2ff
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/graphics.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/harddrive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/harddrive.png
new file mode 100644 (file)
index 0000000..b14dbbc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/harddrive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/hardware-info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/hardware-info.png
new file mode 100644 (file)
index 0000000..bc015a7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/hardware-info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/help-center.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/help-center.png
new file mode 100644 (file)
index 0000000..ebb8462
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/help-center.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/icons.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/icons.png
new file mode 100644 (file)
index 0000000..a591696
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/icons.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/important.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/important.png
new file mode 100644 (file)
index 0000000..db52b85
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/important.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/info.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/info.png
new file mode 100644 (file)
index 0000000..f8c50e1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/info.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/joystick.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/joystick.png
new file mode 100644 (file)
index 0000000..b9ceaf9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/joystick.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/keyboard-layout.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/keyboard-layout.png
new file mode 100644 (file)
index 0000000..911d281
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/keyboard-layout.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/locale.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/locale.png
new file mode 100644 (file)
index 0000000..ed5d411
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/locale.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/look-and-feel.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/look-and-feel.png
new file mode 100644 (file)
index 0000000..dc65d51
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/look-and-feel.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/magnifier.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/magnifier.png
new file mode 100644 (file)
index 0000000..ac682e1
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/magnifier.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/memory.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/memory.png
new file mode 100644 (file)
index 0000000..8b9e8fb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/memory.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-archive.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-archive.png
new file mode 100644 (file)
index 0000000..35c93d2
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-archive.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-binary.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-binary.png
new file mode 100644 (file)
index 0000000..005d8c0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-binary.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-calendar.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-calendar.png
new file mode 100644 (file)
index 0000000..3e74ca5
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-calendar.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-card.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-card.png
new file mode 100644 (file)
index 0000000..c3f8a68
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-card.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-document.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-document.png
new file mode 100644 (file)
index 0000000..46b2871
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-document.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-html.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-html.png
new file mode 100644 (file)
index 0000000..2d408f4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-html.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-image.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-image.png
new file mode 100644 (file)
index 0000000..6059559
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-image.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-manual.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-manual.png
new file mode 100644 (file)
index 0000000..d4fb46d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-manual.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-multimedia.png
new file mode 100644 (file)
index 0000000..aef284b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-pdf.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-pdf.png
new file mode 100644 (file)
index 0000000..4c90633
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-pdf.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-quicktime.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-quicktime.png
new file mode 100755 (executable)
index 0000000..f3e6647
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-quicktime.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-rpm.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-rpm.png
new file mode 100644 (file)
index 0000000..eb6ae55
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-rpm.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-script.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-script.png
new file mode 100644 (file)
index 0000000..9e662f9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-script.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-shellscript.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-shellscript.png
new file mode 100644 (file)
index 0000000..8afcf55
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-shellscript.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-sourcecode.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-sourcecode.png
new file mode 100644 (file)
index 0000000..27a1e41
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-sourcecode.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-spreadsheet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-spreadsheet.png
new file mode 100644 (file)
index 0000000..e1d4168
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-spreadsheet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-text.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-text.png
new file mode 100644 (file)
index 0000000..3584b3f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-text.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-video.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-video.png
new file mode 100644 (file)
index 0000000..bb54b53
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mime-video.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mixer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mixer.png
new file mode 100644 (file)
index 0000000..67cc062
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mixer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/modem.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/modem.png
new file mode 100644 (file)
index 0000000..f890c68
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/modem.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mouse.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mouse.png
new file mode 100644 (file)
index 0000000..75e3d8e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mouse.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/movieplayer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/movieplayer.png
new file mode 100644 (file)
index 0000000..a7d9457
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/movieplayer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/multimedia.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/multimedia.png
new file mode 100644 (file)
index 0000000..7e7afff
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/multimedia.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mycomputer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mycomputer.png
new file mode 100644 (file)
index 0000000..41a501e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/mycomputer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/netscape.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/netscape.png
new file mode 100644 (file)
index 0000000..f2e34e9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/netscape.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/network.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/network.png
new file mode 100644 (file)
index 0000000..2d0fdf9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/network.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/notes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/notes.png
new file mode 100644 (file)
index 0000000..926ad8a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/notes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/notify.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/notify.png
new file mode 100644 (file)
index 0000000..3f0d99d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/notify.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/organizer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/organizer.png
new file mode 100644 (file)
index 0000000..a460213
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/organizer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/paint.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/paint.png
new file mode 100644 (file)
index 0000000..a08cec3
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/paint.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/partitions.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/partitions.png
new file mode 100644 (file)
index 0000000..9b7b60b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/partitions.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/password.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/password.png
new file mode 100644 (file)
index 0000000..bf8d7e4
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/password.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/pda.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/pda.png
new file mode 100644 (file)
index 0000000..205718b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/pda.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/pipe.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/pipe.png
new file mode 100644 (file)
index 0000000..85e7142
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/pipe.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/presentation.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/presentation.png
new file mode 100644 (file)
index 0000000..31b4c6b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/presentation.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/printer.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/printer.png
new file mode 100644 (file)
index 0000000..0291e3f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/printer.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/scanner.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/scanner.png
new file mode 100644 (file)
index 0000000..372d90e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/scanner.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/services.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/services.png
new file mode 100644 (file)
index 0000000..de50a74
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/services.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/settings.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/settings.png
new file mode 100644 (file)
index 0000000..80e4689
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/settings.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/style.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/style.png
new file mode 100644 (file)
index 0000000..2d5a61d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/style.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/system.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/system.png
new file mode 100644 (file)
index 0000000..ea8e84f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/system.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/tablet.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/tablet.png
new file mode 100644 (file)
index 0000000..1ba6fef
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/tablet.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/terminal.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/terminal.png
new file mode 100644 (file)
index 0000000..f6d04d6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/terminal.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/themes.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/themes.png
new file mode 100644 (file)
index 0000000..54a6f19
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/themes.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/toys.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/toys.png
new file mode 100644 (file)
index 0000000..6ddb9cb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/toys.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/trashcan-empty.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/trashcan-empty.png
new file mode 100644 (file)
index 0000000..47b6517
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/trashcan-empty.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/trashcan-full.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/trashcan-full.png
new file mode 100644 (file)
index 0000000..07d9337
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/trashcan-full.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/tv.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/tv.png
new file mode 100644 (file)
index 0000000..7c5f4ac
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/tv.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/user.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/user.png
new file mode 100644 (file)
index 0000000..3e443c9
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/user.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/utilities.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/utilities.png
new file mode 100644 (file)
index 0000000..5b2af79
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/utilities.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/wordprocessor.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/wordprocessor.png
new file mode 100644 (file)
index 0000000..20ee428
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/icon/nuvola/64/wordprocessor.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/static/history/historyHelper.html b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/static/history/historyHelper.html
new file mode 100644 (file)
index 0000000..55a9427
--- /dev/null
@@ -0,0 +1,4 @@
+<html>
+<head></head>
+<body onload="parent.qx.client.History.getInstance()._onHistoryLoad(window.location)"></body>
+</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/static/image/blank.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/static/image/blank.gif
new file mode 100644 (file)
index 0000000..75b945d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/static/image/blank.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/static/image/dotted_white.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/static/image/dotted_white.gif
new file mode 100644 (file)
index 0000000..467da46
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/static/image/dotted_white.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/down.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/down.gif
new file mode 100644 (file)
index 0000000..7a73f82
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/down.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/down_small.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/down_small.gif
new file mode 100644 (file)
index 0000000..ea60995
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/down_small.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/down_tiny.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/down_tiny.gif
new file mode 100644 (file)
index 0000000..928f528
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/down_tiny.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/first.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/first.png
new file mode 100644 (file)
index 0000000..89fcc75
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/first.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/forward.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/forward.gif
new file mode 100644 (file)
index 0000000..809e8fd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/forward.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/last.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/last.png
new file mode 100644 (file)
index 0000000..f7bcbed
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/last.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/left.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/left.png
new file mode 100644 (file)
index 0000000..ace0782
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/left.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/minimize.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/minimize.gif
new file mode 100644 (file)
index 0000000..c5b586e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/minimize.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/next.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/next.gif
new file mode 100644 (file)
index 0000000..d9c246f
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/next.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/previous.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/previous.gif
new file mode 100644 (file)
index 0000000..7189c23
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/previous.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/rewind.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/rewind.gif
new file mode 100644 (file)
index 0000000..2ad0910
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/rewind.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/right.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/right.png
new file mode 100644 (file)
index 0000000..2c3e8ed
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/right.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/up.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/up.gif
new file mode 100644 (file)
index 0000000..9452da0
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/up.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/up_small.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/up_small.gif
new file mode 100644 (file)
index 0000000..fc815ba
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/up_small.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/up_tiny.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/up_tiny.gif
new file mode 100644 (file)
index 0000000..34dc4e8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/arrows/up_tiny.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-field.jpg b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-field.jpg
new file mode 100644 (file)
index 0000000..008984d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-field.jpg differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-handle.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-handle.gif
new file mode 100644 (file)
index 0000000..7cf8022
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-handle.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-field.jpg b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-field.jpg
new file mode 100644 (file)
index 0000000..36d2d79
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-field.jpg differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-handle.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-handle.gif
new file mode 100644 (file)
index 0000000..2fcaaec
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-handle.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/alias.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/alias.gif
new file mode 100644 (file)
index 0000000..3b46c72
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/alias.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/copy.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/copy.gif
new file mode 100644 (file)
index 0000000..2a59a4a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/copy.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/move.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/move.gif
new file mode 100644 (file)
index 0000000..adc9a64
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/move.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/nodrop.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/nodrop.gif
new file mode 100644 (file)
index 0000000..3a25866
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/cursors/nodrop.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastMonth.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastMonth.png
new file mode 100644 (file)
index 0000000..1eb3f40
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastMonth.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastYear.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastYear.png
new file mode 100644 (file)
index 0000000..147d427
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastYear.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextMonth.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextMonth.png
new file mode 100644 (file)
index 0000000..05e5647
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextMonth.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextYear.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextYear.png
new file mode 100644 (file)
index 0000000..79a6278
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextYear.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/menu/checkbox.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/menu/checkbox.gif
new file mode 100644 (file)
index 0000000..767f285
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/menu/checkbox.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/menu/menu-blank.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/menu/menu-blank.gif
new file mode 100644 (file)
index 0000000..40aeb6b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/menu/menu-blank.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/menu/radiobutton.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/menu/radiobutton.gif
new file mode 100644 (file)
index 0000000..b6cfa37
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/menu/radiobutton.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-horizontal.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-horizontal.png
new file mode 100644 (file)
index 0000000..da5ade6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-horizontal.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-vertical.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-vertical.png
new file mode 100644 (file)
index 0000000..945ad4d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-vertical.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/ascending.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/ascending.png
new file mode 100644 (file)
index 0000000..de27cce
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/ascending.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/boolean-false.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/boolean-false.png
new file mode 100644 (file)
index 0000000..dce9d38
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/boolean-false.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/boolean-true.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/boolean-true.png
new file mode 100644 (file)
index 0000000..91817bb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/boolean-true.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/descending.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/descending.png
new file mode 100644 (file)
index 0000000..9f4f955
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/descending.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/selectColumnOrder.png b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/selectColumnOrder.png
new file mode 100644 (file)
index 0000000..cb5f151
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/table/selectColumnOrder.png differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/cross.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/cross.gif
new file mode 100644 (file)
index 0000000..4d40453
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/cross.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/cross_minus.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/cross_minus.gif
new file mode 100644 (file)
index 0000000..d69c2d6
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/cross_minus.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/cross_plus.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/cross_plus.gif
new file mode 100644 (file)
index 0000000..2102d91
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/cross_plus.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/end.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/end.gif
new file mode 100644 (file)
index 0000000..7cd50aa
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/end.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/end_minus.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/end_minus.gif
new file mode 100644 (file)
index 0000000..d53ce11
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/end_minus.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/end_plus.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/end_plus.gif
new file mode 100644 (file)
index 0000000..301872a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/end_plus.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/line.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/line.gif
new file mode 100644 (file)
index 0000000..b3d8820
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/line.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/minus.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/minus.gif
new file mode 100644 (file)
index 0000000..b7da5b8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/minus.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/only_minus.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/only_minus.gif
new file mode 100644 (file)
index 0000000..eea784a
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/only_minus.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/only_plus.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/only_plus.gif
new file mode 100644 (file)
index 0000000..4fdec8c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/only_plus.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/plus.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/plus.gif
new file mode 100644 (file)
index 0000000..c006f85
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/plus.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/start_minus.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/start_minus.gif
new file mode 100644 (file)
index 0000000..f8e5ed7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/start_minus.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/start_plus.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/start_plus.gif
new file mode 100644 (file)
index 0000000..722663c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/tree/start_plus.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/close.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/close.gif
new file mode 100644 (file)
index 0000000..d6b7273
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/close.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/maximize.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/maximize.gif
new file mode 100644 (file)
index 0000000..ae5e941
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/maximize.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/minimize.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/minimize.gif
new file mode 100644 (file)
index 0000000..c5b586e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/minimize.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/restore.gif b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/restore.gif
new file mode 100644 (file)
index 0000000..2910d37
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/resource/widget/windows/window/restore.gif differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/find.sh b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/find.sh
new file mode 100755 (executable)
index 0000000..f838247
--- /dev/null
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+cd `dirname $0`/..
+
+if [ "$1" = "" ]; then
+  exit 1
+fi
+
+find source/class/ -name "*.js" | xargs grep -n "$*"
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/generator.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/generator.py
new file mode 100755 (executable)
index 0000000..ccce87b
--- /dev/null
@@ -0,0 +1,1057 @@
+#!/usr/bin/env python
+
+import sys, re, os, optparse
+
+# reconfigure path to import own modules from modules subfolder
+sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])), "modules"))
+
+import config, tokenizer, loader, api, tree, treegenerator, settings, resources, filetool, stringoptimizer, optparseext, variableoptimizer, obfuscator, compiler, migrator, textutil
+
+
+
+
+
+
+def getparser():
+  parser = optparse.OptionParser("usage: %prog [options]", option_class=optparseext.ExtendAction)
+
+
+  #################################################################################
+  # GENERAL
+  #################################################################################
+
+  # From/To File
+  parser.add_option("--from-file", dest="fromFile", metavar="FILENAME", help="Read options from FILENAME.")
+  parser.add_option("--export-to-file", dest="exportToFile", metavar="FILENAME", help="Store options to FILENAME.")
+
+  # Directories (Lists, Match using index)
+  parser.add_option("--script-input", action="extend", dest="scriptInput", metavar="DIRECTORY", type="string", default=[], help="Define a script input directory.")
+  parser.add_option("--script-encoding", action="extend", dest="scriptEncoding", metavar="ENCODING", type="string", default=[], help="Define the encoding for a script input directory.")
+  parser.add_option("--source-script-path", action="extend", dest="sourceScriptPath", metavar="PATH", type="string", default=[], help="Define a script path for the source version.")
+  parser.add_option("--resource-input", action="extend", dest="resourceInput", metavar="DIRECTORY", type="string", default=[], help="Define a resource input directory.")
+  parser.add_option("--resource-output", action="extend", dest="resourceOutput", metavar="DIRECTORY", type="string", default=[], help="Define a resource output directory.")
+
+  # Available Actions
+  parser.add_option("--generate-compiled-script", action="store_true", dest="generateCompiledScript", default=False, help="Compile source files.")
+  parser.add_option("--generate-source-script", action="store_true", dest="generateSourceScript", default=False, help="Generate source version.")
+  parser.add_option("--generate-api-documentation", action="store_true", dest="generateApiDocumentation", default=False, help="Generate API documentation.")
+  parser.add_option("--copy-resources", action="store_true", dest="copyResources", default=False, help="Copy resource files.")
+  parser.add_option("--fix-source", action="store_true", dest="fixSource", default=False, help="Fix source files")
+  parser.add_option("--pretty-print", action="store_true", dest="prettyPrint", default=False, help="Pretty print source code.")
+  parser.add_option("--migrate-source", action="store_true", dest="migrateSource", default=False, help="Migrate existing code to new version.")
+
+  # Debug Actions
+  parser.add_option("--store-tokens", action="store_true", dest="storeTokens", default=False, help="Store tokenized content of source files. (Debugging)")
+  parser.add_option("--store-tree", action="store_true", dest="storeTree", default=False, help="Store tree content of source files. (Debugging)")
+  parser.add_option("--print-files", action="store_true", dest="printFiles", default=False, help="Output known files. (Debugging)")
+  parser.add_option("--print-modules", action="store_true", dest="printModules", default=False, help="Output known modules. (Debugging)")
+  parser.add_option("--print-files-without-modules", action="store_true", dest="printFilesWithoutModules", default=False, help="Output files which have no module connection. (Debugging)")
+  parser.add_option("--print-includes", action="store_true", dest="printIncludes", default=False, help="Output sorted file list. (Debugging)")
+  parser.add_option("--print-dependencies", action="store_true", dest="printDeps", default=False, help="Output dependencies of files. (Debugging)")
+
+  # Output files
+  parser.add_option("--source-script-file", dest="sourceScriptFile", metavar="FILENAME", help="Name of output file from source build process.")
+  parser.add_option("--compiled-script-file", dest="compiledScriptFile", metavar="FILENAME", help="Name of output file from compiler.")
+  parser.add_option("--api-documentation-json-file", dest="apiDocumentationJsonFile", metavar="FILENAME", help="Name of JSON API file.")
+  parser.add_option("--api-documentation-xml-file", dest="apiDocumentationXmlFile", metavar="FILENAME", help="Name of XML API file.")
+  parser.add_option("--settings-script-file", dest="settingsScriptFile", metavar="FILENAME", help="Name of settings script file.")
+
+  # Encoding
+  parser.add_option("--script-output-encoding", dest="scriptOutputEncoding", default="utf-8", metavar="ENCODING", help="Defines the encoding used for script output files.")
+  parser.add_option("--xml-output-encoding", dest="xmlOutputEncoding", default="utf-8", metavar="ENCODING", help="Defines the encoding used for XML output files.")
+
+
+
+  #################################################################################
+  # OPTIONS
+  #################################################################################
+
+  # General options
+  parser.add_option("-q", "--quiet", action="store_false", dest="verbose", default=False, help="Quiet output mode.")
+  parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help="Verbose output mode.")
+  parser.add_option("-d", "--debug", action="store_true", dest="enableDebug", help="Enable debug mode.")
+  parser.add_option("--package-id", dest="packageId", default="", metavar="ID", help="Defines a package ID (required for string optimization etc.)")
+  parser.add_option("--disable-internal-check", action="store_true", dest="disableInternalCheck", default=False, help="Disable check of modifications to internal files.")
+
+  # Options for source and compiled version
+  parser.add_option("--define-runtime-setting", action="append", dest="defineRuntimeSetting", metavar="NAMESPACE.KEY:VALUE", default=[], help="Define a setting.")
+  parser.add_option("--add-new-lines", action="store_true", dest="addNewLines", default=False, help="Keep newlines in compiled files.")
+
+  # Options for source version
+  parser.add_option("--source-loader-type", action="store", dest="sourceLoaderType", metavar="TYPE", choices=("auto", "docwrite", "domappend"), default="auto", help="Generated source loader type: auto, docwrite, domappend [default: %default].")
+
+  # Options for compiled version
+  parser.add_option("--add-file-ids", action="store_true", dest="addFileIds", default=False, help="Add file IDs to compiled output.")
+  parser.add_option("--optimize-strings", action="store_true", dest="optimizeStrings", default=False, help="Optimize strings. Increase mshtml performance.")
+  parser.add_option("--optimize-variables", action="store_true", dest="optimizeVariables", default=False, help="Optimize variables. Reducing size.")
+  parser.add_option("--obfuscate-identifiers", action="store_true", dest="obfuscateIdentifiers", default=False, help="Obfuscate public names like function names. (ALPHA!)")
+
+  # Options for resource copying
+  parser.add_option("--override-resource-output", action="append", dest="overrideResourceOutput", metavar="CLASSNAME.ID:DIRECTORY", default=[], help="Define a resource input directory.")
+
+  # Options for token/tree storage
+  parser.add_option("--token-output-directory", dest="tokenOutputDirectory", metavar="DIRECTORY", help="Define output directory for tokenizer result of the incoming JavaScript files. (Debugging)")
+  parser.add_option("--tree-output-directory", dest="treeOutputDirectory", metavar="DIRECTORY", help="Define output directory for generated tree of the incoming JavaScript files. (Debugging)")
+
+  # Cache Directory
+  parser.add_option("--cache-directory", dest="cacheDirectory", metavar="DIRECTORY", help="If this is defined the loader trys to use cache to optimize the performance.")
+
+  # Options for migration support
+  parser.add_option("--migration-target", dest="migrationTarget", metavar="VERSION", help="Define the target for migration of source code.")
+  parser.add_option("--migration-input", action="extend", dest="migrationInput", metavar="DIRECTORY", type="string", default=[], help="Define additional directories for to directories to migrate e.g. HTML files, ...")
+  
+
+
+
+  #################################################################################
+  # INCLUDE/EXCLUDE
+  #################################################################################
+
+  # Include/Exclude
+  parser.add_option("-i", "--include", action="extend", dest="includeWithDeps", metavar="ID", type="string", default=[], help="Include ID")
+  parser.add_option("-e", "--exclude", action="extend", dest="excludeWithDeps", metavar="ID", type="string", default=[], help="Exclude ID")
+  parser.add_option("--include-without-dependencies", action="extend", dest="includeWithoutDeps", metavar="ID", type="string", default=[], help="Include ID")
+  parser.add_option("--exclude-without-dependencies", action="extend", dest="excludeWithoutDeps", metavar="ID", type="string", default=[], help="Exclude ID")
+
+  # Include/Exclude options
+  parser.add_option("--disable-auto-dependencies", action="store_false", dest="enableAutoDependencies", default=True, help="Disable detection of dependencies.")
+
+  return parser
+
+
+
+
+
+
+def argparser(cmdlineargs):
+
+  # Parse arguments
+  (options, args) = getparser().parse_args(cmdlineargs)
+
+  # Export to file
+  if options.exportToFile != None:
+    print
+    print "  EXPORTING:"
+    print "----------------------------------------------------------------------------"
+
+    print " * Translating options..."
+
+    optionString = "# Exported configuration from build.py\n\n"
+    ignoreValue = True
+    lastWasKey = False
+
+    for arg in cmdlineargs:
+      if arg == "--export-to-file":
+        ignoreValue = True
+
+      elif arg.startswith("--"):
+        if lastWasKey:
+          optionString += "\n"
+
+        optionString += arg[2:]
+        ignoreValue = False
+        lastWasKey = True
+
+      elif arg.startswith("-"):
+        print "   * Couldn't export short argument: %s" % arg
+        optionString += "\n# Ignored short argument %s\n" % arg
+        ignoreValue = True
+
+      elif not ignoreValue:
+        optionString += " = %s\n" % arg
+        ignoreValue = True
+        lastWasKey = False
+
+
+
+    print " * Export to file: %s" % options.exportToFile
+    filetool.save(options.exportToFile, optionString)
+
+    sys.exit(0)
+
+  # Read from file
+  elif options.fromFile != None:
+
+    print
+    print "  INITIALIZATION:"
+    print "----------------------------------------------------------------------------"
+
+    print "  * Reading configuration..."
+
+    # Convert file content into arguments
+    fileargs = {}
+    fileargpos = 0
+    fileargid = "default"
+    currentfileargs = []
+    fileargs[fileargid] = currentfileargs
+
+    alternativeFormatBegin = re.compile("\s*\[\s*")
+    alternativeFormatEnd = re.compile("\s*\]\s*=\s*")
+    emptyLine = re.compile("^\s*$")
+
+    for line in file(options.fromFile).read().split("\n"):
+      line = line.strip()
+
+      if emptyLine.match(line) or line.startswith("#") or line.startswith("//"):
+        continue
+
+      # Translating...
+      line = alternativeFormatBegin.sub(" = ", line)
+      line = alternativeFormatEnd.sub(":", line)
+
+      # Splitting line
+      line = line.split("=")
+
+      # Extract key element
+      key = line.pop(0).strip()
+
+      # Separate packages
+      if key == "package":
+        fileargpos += 1
+        fileargid = line[0].strip()
+
+        print "    - Found package: %s" % fileargid
+
+        currentfileargs = []
+        fileargs[fileargid] = currentfileargs
+        continue
+
+      currentfileargs.append("--%s" % key)
+
+      if len(line) > 0:
+        value = line[0].strip()
+        currentfileargs.append(value)
+
+    # Parse
+    defaultargs = fileargs["default"]
+
+    if len(fileargs) > 1:
+      (fileDb, moduleDb) = load(getparser().parse_args(defaultargs)[0])
+
+      if options.obfuscateIdentifiers:
+        sharednames = {}
+
+        for filearg in fileargs:
+          if filearg == "default":
+            continue
+
+          combinedargs = []
+          combinedargs.extend(defaultargs)
+          combinedargs.extend(fileargs[filearg])
+
+          options = getparser().parse_args(defaultargs)[0]
+          findnames(fileDb, moduleDb, options, sharednames)
+
+        names = obfuscator.sort(sharednames)
+
+      for filearg in fileargs:
+        if filearg == "default":
+          continue
+
+        print
+        print
+        print
+        print
+        print "  PACKAGE: %s" % filearg
+        print "----------------------------------------------------------------------------"
+
+        combinedargs = []
+        combinedargs.extend(defaultargs)
+        combinedargs.extend(fileargs[filearg])
+
+        options = getparser().parse_args(combinedargs)[0]
+        execute(fileDb, moduleDb, options, filearg, names)
+
+    else:
+      options = getparser().parse_args(defaultargs)[0]
+      (fileDb, moduleDb) = load(options)
+
+      if options.obfuscateIdentifiers:
+        execute(fileDb, moduleDb, options, "", obfuscator.sort(findnames(fileDb, moduleDb, options)))
+      else:
+        execute(fileDb, moduleDb, options, "", names)
+
+  else:
+    print
+    print "  INITIALIZATION:"
+    print "----------------------------------------------------------------------------"
+
+    print "  * Processing arguments..."
+
+    (fileDb, moduleDb) = load(options)
+
+    if options.obfuscateIdentifiers:
+      execute(fileDb, moduleDb, options, options.packageId, obfuscator.sort(findnames(fileDb, moduleDb, options)))
+    else:
+      execute(fileDb, moduleDb, options, options.packageId)
+
+
+
+
+
+
+
+def main():
+  if len(sys.argv[1:]) == 0:
+    basename = os.path.basename(sys.argv[0])
+    print "usage: %s [options]" % basename
+    print "Try '%s -h' or '%s --help' to show the help message." % (basename, basename)
+    sys.exit(1)
+
+  argparser(sys.argv[1:])
+
+
+
+
+
+
+def load(options):
+
+  ######################################################################
+  #  SOURCE LOADER
+  ######################################################################
+
+  print
+  print "  SOURCE LOADER:"
+  print "----------------------------------------------------------------------------"
+
+  if options.scriptInput == None or len(options.scriptInput) == 0:
+    if len(options.migrationInput) == 0:
+      basename = os.path.basename(sys.argv[0])
+      print "You must define at least one script input directory!"
+      print "usage: %s [options]" % basename
+      print "Try '%s -h' or '%s --help' to show the help message." % (basename, basename)
+      sys.exit(1)
+
+  (fileDb, moduleDb) = loader.indexScriptInput(options)
+
+
+
+
+
+  ######################################################################
+  #  DEBUG OUTPUT JOBS
+  ######################################################################
+
+  if options.printFiles:
+    print
+    print "  OUTPUT OF KNOWN FILES:"
+    print "----------------------------------------------------------------------------"
+    print "  * These are all known files:"
+    for fileEntry in fileDb:
+      print "    - %s (%s)" % (fileEntry, fileDb[fileEntry]["path"])
+
+  if options.printModules:
+    print
+    print "  OUTPUT OF KNOWN MODULES:"
+    print "----------------------------------------------------------------------------"
+    print "  * These are all known modules:"
+    for moduleEntry in moduleDb:
+      print "    * %s" % moduleEntry
+      for fileEntry in moduleDb[moduleEntry]:
+        print "      - %s" % fileEntry
+
+  if options.printFilesWithoutModules:
+    print
+    print "  OUTPUT OF FILES WHICH HAVE NO MODULE CONNECTION:"
+    print "----------------------------------------------------------------------------"
+    print "  * These are all files without a module connection:"
+    for fileEntry in fileDb:
+      fileFound = False
+
+      for moduleEntry in moduleDb:
+        for moduleFile in moduleDb[moduleEntry]:
+          if moduleFile == fileEntry:
+            fileFound = True
+            break
+
+      if not fileFound:
+        print "    - %s" % fileEntry
+
+
+
+  return fileDb, moduleDb
+
+
+
+
+
+def findnames(fileDb, moduleDb, options, names={}):
+
+  print
+  print "  SEARCHING FOR IDENTIFIERS:"
+  print "----------------------------------------------------------------------------"
+
+  if options.verbose:
+    print "  * Searching..."
+  else:
+    print "  * Searching: ",
+
+
+  sortedIncludeList = loader.getSortedList(options, fileDb, moduleDb)
+
+  for fileId in sortedIncludeList:
+    if options.verbose:
+      print "    - %s" % fileId
+
+    else:
+      sys.stdout.write(".")
+      sys.stdout.flush()
+
+    obfuscator.search(loader.getTree(fileDb, fileId, options), names)
+
+  if not options.verbose:
+    print
+
+  return names
+
+
+
+
+
+
+
+
+def execute(fileDb, moduleDb, options, pkgid="", names=[]):
+
+  additionalOutput = []
+
+
+  ######################################################################
+  #  SORT OF INCLUDE LIST
+  ######################################################################
+
+  print
+  print "  SORT OF INCLUDE LIST:"
+  print "----------------------------------------------------------------------------"
+
+  if options.verbose:
+    print "  * Include (with dependencies): %s" % options.includeWithDeps
+    print "  * Include (without dependencies): %s" % options.includeWithoutDeps
+    print "  * Exclude (with dependencies): %s" % options.excludeWithDeps
+    print "  * Exclude (without dependencies): %s" % options.excludeWithoutDeps
+
+  print "  * Sorting classes..."
+
+  sortedIncludeList = loader.getSortedList(options, fileDb, moduleDb)
+
+  if len(sortedIncludeList) == len(fileDb):
+    print "  * Including all classes"
+
+  print "  * Arranged %s classes" % len(sortedIncludeList)
+
+  if options.printIncludes:
+    print
+    print "  PRINT OF INCLUDE ORDER:"
+    print "----------------------------------------------------------------------------"
+    print "  * The files will be included in this order:"
+    for fileId in sortedIncludeList:
+      print "    - %s" % fileId
+
+  if options.printDeps:
+    print
+    print "  OUTPUT OF DEPENDENCIES:"
+    print "----------------------------------------------------------------------------"
+    print "  * These are all included files with their dependencies:"
+    for fileId in sortedIncludeList:
+      print "    - %s" % fileId
+      if len(fileDb[fileId]["loadtimeDeps"]) > 0:
+        print "      - Loadtime: "
+        for depEntry in fileDb[fileId]["loadtimeDeps"]:
+          print "        - %s" % depEntry
+
+      if len(fileDb[fileId]["afterDeps"]) > 0:
+        print "      - After: "
+        for depEntry in fileDb[fileId]["afterDeps"]:
+          print "        - %s" % depEntry
+
+      if len(fileDb[fileId]["runtimeDeps"]) > 0:
+        print "      - Runtime: "
+        for depEntry in fileDb[fileId]["runtimeDeps"]:
+          print "        - %s" % depEntry
+
+      if len(fileDb[fileId]["beforeDeps"]) > 0:
+        print "      - Before: "
+        for depEntry in fileDb[fileId]["beforeDeps"]:
+          print "        - %s" % depEntry
+
+      if len(fileDb[fileId]["optionalDeps"]) > 0:
+        print "      - Optional: "
+        for depEntry in fileDb[fileId]["optionalDeps"]:
+          print "        - %s" % depEntry
+
+
+
+
+
+
+  ######################################################################
+  #  SOURCE MIGRATION
+  ######################################################################
+
+  if options.migrateSource:
+    print
+    print "  SOURCE MIGRATION:"
+    print "----------------------------------------------------------------------------"
+
+    print "  * Migrate Source Code..."
+
+    migrator.handle(sortedIncludeList, fileDb, options)
+
+    # Return after migration: Ignore other jobs
+    return
+
+
+  ######################################################################
+  #  GENERATION OF PRETTY PRINTED CODE
+  ######################################################################
+
+  if options.fixSource:
+    print
+    print "  FIX SOURCE CODE:"
+    print "----------------------------------------------------------------------------"
+
+    if options.verbose:
+      print "  * Fixing code..."
+    else:
+      print "  * Fixing code: ",
+
+    for fileId in sortedIncludeList:
+      if options.verbose:
+        print "    - Reading %s" % fileId
+
+      fileEntry = fileDb[fileId]
+
+      filePath = fileEntry["path"]
+      fileEncoding = fileEntry["encoding"]
+
+      fileContent = filetool.read(filePath, fileEncoding)
+      fixedContent = textutil.removeTrailingSpaces(textutil.tab2Space(textutil.any2Unix(fileContent), 2))
+
+      if fixedContent != fileContent:
+        if options.verbose:
+          print "      - Storing modifications..."
+        else:
+          sys.stdout.write("!")
+          sys.stdout.flush()
+
+        filetool.save(filePath, fixedContent, fileEncoding)
+
+      elif not options.verbose:
+        sys.stdout.write(".")
+        sys.stdout.flush()
+
+    if not options.verbose:
+      print
+
+    # Return after fixing: Ignore other jobs
+    return
+
+
+
+  ######################################################################
+  #  GENERATION OF PRETTY PRINTED CODE
+  ######################################################################
+
+  if options.prettyPrint:
+    print
+    print "  GENERATION OF PRETTY PRINTED CODE:"
+    print "----------------------------------------------------------------------------"
+
+    if options.verbose:
+      print "  * Pretty printing..."
+    else:
+      print "  * Pretty printing: ",
+
+    for fileId in sortedIncludeList:
+      if options.verbose:
+        print "    - Compiling %s" % fileId
+      else:
+        sys.stdout.write(".")
+        sys.stdout.flush()
+
+      prettyFileContent = compiler.compile(loader.getTree(fileDb, fileId, options), True)
+
+      if not prettyFileContent.endswith("\n"):
+        prettyFileContent += "\n"
+
+      filetool.save(fileDb[fileId]["path"], prettyFileContent)
+
+    if not options.verbose:
+      print
+
+    # Return after pretty print: Ignore other jobs
+    return
+
+
+
+  ######################################################################
+  #  STRING OPTIMIZATION
+  ######################################################################
+
+  if options.optimizeStrings:
+    print
+    print "  STRING OPTIMIZATION:"
+    print "----------------------------------------------------------------------------"
+
+    if options.verbose:
+      print "  * Searching strings..."
+    else:
+      print "  * Searching strings: ",
+
+    stringMap = {}
+
+    for fileId in sortedIncludeList:
+      if options.verbose:
+        print "    - %s" % fileId
+      else:
+        sys.stdout.write(".")
+        sys.stdout.flush()
+
+      localMap = loader.getStrings(fileDb, fileId, options)
+
+      for value in localMap:
+        if value in stringMap:
+          stringMap[value] += localMap[value]
+        else:
+          stringMap[value] = localMap[value]
+
+    if not options.verbose:
+      print
+
+    counter = 0
+    for value in stringMap:
+      counter += stringMap[value]
+
+    stringList = stringoptimizer.sort(stringMap)
+
+    print "  * Found %s strings (used %s times)" % (len(stringMap), counter)
+
+    if options.verbose:
+      print "  * Replacing strings..."
+    else:
+      print "  * Replacing strings: ",
+
+    for fileId in sortedIncludeList:
+      if options.verbose:
+        print "    - %s" % fileId
+      else:
+        sys.stdout.write(".")
+        sys.stdout.flush()
+
+      stringoptimizer.replace(loader.getTree(fileDb, fileId, options), stringList, "$" + pkgid, options.verbose)
+
+    if not options.verbose:
+      print
+
+    print "  * Generating replacement..."
+    additionalOutput.append(stringoptimizer.replacement(stringList, "$" + pkgid))
+
+
+
+
+
+
+  ######################################################################
+  #  LOCAL VARIABLE OPTIMIZATION
+  ######################################################################
+
+  if options.optimizeVariables:
+    print
+    print "  LOCAL VARIABLE OPTIMIZATION:"
+    print "----------------------------------------------------------------------------"
+
+    if options.verbose:
+      print "  * Optimizing variables..."
+    else:
+      print "  * Optimizing variables: ",
+
+    for fileId in sortedIncludeList:
+      if options.verbose:
+        print "    - %s" % fileId
+      else:
+        sys.stdout.write(".")
+        sys.stdout.flush()
+
+      variableoptimizer.search(loader.getTree(fileDb, fileId, options), [], 0, "$")
+
+    if not options.verbose:
+      print
+
+
+
+
+
+
+  ######################################################################
+  #  NAME OBFUSCATION
+  ######################################################################
+
+  if options.obfuscateIdentifiers:
+    print
+    print "  OBFUSCATE IDENTIFIERS:"
+    print "----------------------------------------------------------------------------"
+
+    if options.verbose:
+      print "  * Obfuscating identifiers..."
+    else:
+      print "  * Obfuscating identifiers: ",
+
+    counter = 0
+
+    for fileId in sortedIncludeList:
+      if options.verbose:
+        print "    - %s" % fileId
+      else:
+        sys.stdout.write(".")
+        sys.stdout.flush()
+
+      counter += obfuscator.update(loader.getTree(fileDb, fileId, options), names, "$$")
+
+    if not options.verbose:
+      print
+
+    print "  * Updated %s names" % counter
+
+
+
+
+
+
+  ######################################################################
+  #  TOKEN STORAGE
+  ######################################################################
+
+  if options.storeTokens:
+    print
+    print "  TOKEN STORAGE:"
+    print "----------------------------------------------------------------------------"
+
+    if options.tokenOutputDirectory == None:
+      print "  * You must define the token output directory!"
+      sys.exit(1)
+
+    if options.verbose:
+      print "  * Storing tokens..."
+    else:
+      print "  * Storing tokens: ",
+
+    for fileId in sortedIncludeList:
+      tokenString = tokenizer.convertTokensToString(loader.getTokens(fileDb, fileId, options))
+
+      if options.verbose:
+        print "    * writing tokens for %s (%s KB)..." % (fileIdm, len(tokenString) / 1000.0)
+      else:
+        sys.stdout.write(".")
+        sys.stdout.flush()
+
+      filetool.save(os.path.join(filetool.normalize(options.tokenOutputDirectory), fileId + config.TOKENEXT), tokenString)
+
+    if not options.verbose:
+      print
+
+
+
+
+  ######################################################################
+  #  TREE STORAGE
+  ######################################################################
+
+  if options.storeTree:
+    print
+    print "  TREE STORAGE:"
+    print "----------------------------------------------------------------------------"
+
+    if options.treeOutputDirectory == None:
+      print "  * You must define the tree output directory!"
+      sys.exit(1)
+
+    if options.verbose:
+      print "  * Storing tree..."
+    else:
+      print "  * Storing tree: ",
+
+    for fileId in sortedIncludeList:
+      treeString = "<?xml version=\"1.0\" encoding=\"" + options.xmlOutputEncoding + "\"?>\n" + tree.nodeToXmlString(loader.getTree(fileDb, fileId, options))
+
+      if options.verbose:
+        print "    * writing tree for %s (%s KB)..." % (fileId, len(treeString) / 1000.0)
+      else:
+        sys.stdout.write(".")
+        sys.stdout.flush()
+
+      filetool.save(os.path.join(filetool.normalize(options.treeOutputDirectory), fileId + config.XMLEXT), treeString)
+
+    if not options.verbose:
+      print
+
+
+
+
+
+  ######################################################################
+  #  GENERATION OF API
+  ######################################################################
+
+  if options.generateApiDocumentation:
+    print
+    print "  GENERATION OF API:"
+    print "----------------------------------------------------------------------------"
+
+    if options.apiDocumentationJsonFile == None and options.apiDocumentationXmlFile == None:
+      print "  * You must define one of JSON or XML API documentation file!"
+
+    docTree = None
+
+    if options.verbose:
+      print "  * Generating API tree..."
+    else:
+      print "  * Generating API tree: ",
+
+    for fileId in sortedIncludeList:
+      if options.verbose:
+        print "    - %s" % fileId
+      else:
+        sys.stdout.write(".")
+        sys.stdout.flush()
+
+      docTree = api.createDoc(loader.getTree(fileDb, fileId, options), docTree)
+
+    if not options.verbose:
+      print
+
+    if docTree:
+      print "  * Finalising tree..."
+      api.postWorkPackage(docTree, docTree)
+
+    if options.apiDocumentationXmlFile != None:
+      print "  * Writing XML API file to %s" % options.apiDocumentationXmlFile
+
+      xmlContent = "<?xml version=\"1.0\" encoding=\"" + options.xmlOutputEncoding + "\"?>\n"
+
+      if options.addNewLines:
+        xmlContent += "\n" + tree.nodeToXmlString(docTree)
+      else:
+        xmlContent += tree.nodeToXmlString(docTree, "", "", "")
+
+      filetool.save(options.apiDocumentationXmlFile, xmlContent, options.xmlOutputEncoding)
+
+    if options.apiDocumentationJsonFile != None:
+      print "  * Writing JSON API file to %s" % options.apiDocumentationJsonFile
+
+      if options.addNewLines:
+        jsonContent = tree.nodeToJsonString(docTree)
+      else:
+        jsonContent = tree.nodeToJsonString(docTree, "", "", "")
+
+      filetool.save(options.apiDocumentationJsonFile, jsonContent, options.scriptOutputEncoding)
+
+
+
+
+
+  ######################################################################
+  #  CREATE COPY OF RESOURCES
+  ######################################################################
+
+  if options.copyResources:
+
+    print
+    print "  CREATE COPY OF RESOURCES:"
+    print "----------------------------------------------------------------------------"
+
+    resources.copy(options, sortedIncludeList, fileDb)
+
+
+
+
+
+
+  ######################################################################
+  #  GENERATION OF SETTINGS
+  ######################################################################
+
+  if options.generateSourceScript or options.generateCompiledScript:
+    settingsStr = ""
+
+    if len(options.defineRuntimeSetting) != 0:
+      print
+      print "  GENERATION OF SETTINGS:"
+      print "----------------------------------------------------------------------------"
+
+      print "  * Processing input data..."
+      settingsStr = settings.generate(options)
+
+      if options.settingsScriptFile:
+        print "   * Storing result to %s" % options.settingsScriptFile
+        filetool.save(options.settingsScriptFile, settingsStr)
+
+        # clear settings for build and source
+        settingsStr = ""
+
+
+
+
+
+  ######################################################################
+  #  GENERATION OF SOURCE VERSION
+  ######################################################################
+
+  if options.generateSourceScript:
+    print
+    print "  GENERATION OF SOURCE SCRIPT:"
+    print "----------------------------------------------------------------------------"
+
+    if options.sourceScriptFile == None:
+      print "  * You must define the source script file!"
+      sys.exit(1)
+
+    else:
+      options.sourceScriptFile = os.path.normpath(options.sourceScriptFile)
+
+    print "  * Generating includer..."
+
+    sourceOutput = settingsStr
+
+    srcEol = "";
+    if options.addNewLines:
+      srcEol = "\n";
+
+    if sourceOutput != "":
+      settingsStr += srcEol
+
+    # Define javascript loaders
+    jsLoaders = {}
+
+    # HTML-only: create <script> tags using document.write()
+    jsLoaders["docwrite"] = """var includeJs=function(src){document.write('<script type="text/javascript" src="'+src+'"></script>')};""" 
+
+    # XHTML-compatible: create and append DOM script nodes 
+    jsLoaders["domappend"] = """if(document.createElementNS&&parentNode.namespaceURI)""" + srcEol + """var includeJs=function(src){var js=document.createElementNS(parentNode.namespaceURI,"script");js.type="text/javascript";js.src=src;parentNode.appendChild(js)};""" + srcEol + """else """ + srcEol + """var includeJs=function(src){var js=document.createElement("script");js.type="text/javascript";js.src=src;parentNode.appendChild(js)};"""
+
+    # Source loader closure
+    sourceOutput += """(function(sources){""" + srcEol
+
+    # Detect the node we are being called from
+    sourceOutput += """var parentNode=document.getElementsByTagName('body')[0]||document.getElementsByTagName('head')[0];""" + srcEol
+
+    # Autoselect a loader based on client engine
+    if options.sourceLoaderType == "auto":
+      sourceOutput += """var clientEngine=null;""" + srcEol
+
+      # Opera
+      sourceOutput += """if(window.opera&&/Opera[\s\/]([0-9\.]*)/.test(navigator.userAgent))clientEngine="opera";else """ + srcEol
+
+      # Khtml
+      sourceOutput += """if(typeof navigator.vendor==="string"&&navigator.vendor==="KDE"&&/KHTML\/([0-9-\.]*)/.test(navigator.userAgent))clientEngine="khtml";else """ + srcEol
+
+      # Webkit
+      sourceOutput += """if(navigator.userAgent.indexOf("AppleWebKit")!=-1&&/AppleWebKit\/([0-9-\.]*)/.test(navigator.userAgent))clientEngine="webkit";else """ + srcEol
+
+      # Gecko
+      sourceOutput += """if(window.controllers&&typeof navigator.product==="string"&&navigator.product==="Gecko"&&/rv\:([^\);]+)(\)|;)/.test(navigator.userAgent))clientEngine="gecko";else """ + srcEol
+
+      # MShtml
+      sourceOutput += """if(/MSIE\s+([^\);]+)(\)|;)/.test(navigator.userAgent))clientEngine="mshtml";""" + srcEol
+
+      # Select the loader based on the engine
+      sourceOutput += """switch(clientEngine){""" + srcEol
+
+      # Use DOM
+      sourceOutput += """case "opera": case "gecko":""" + srcEol
+      sourceOutput += jsLoaders["domappend"] + srcEol
+      sourceOutput += """break;""" + srcEol
+
+      # Use document.write()
+      sourceOutput += """case "webkit": case "khtml": case "mshtml": default:""" + srcEol
+      sourceOutput += jsLoaders["docwrite"] + srcEol
+      sourceOutput += """break;""" + srcEol
+
+      sourceOutput += """}""" + srcEol
+
+    # Use a fixed loader
+    else:
+      sourceOutput += jsLoaders[options.sourceLoaderType] + srcEol
+
+    # Loading loop
+    sourceOutput += """for(var i=0;i<sources.length;++i)includeJs(sources[i])})""" + srcEol
+
+    sources = ""
+    for fileId in sortedIncludeList:
+      if fileDb[fileId]["sourceScriptPath"] == None:
+        print "  * Missing source path definition for script input %s. Could not create source script file!" % fileDb[fileId]["scriptInput"]
+        sys.exit(1)
+
+      sources += srcEol + '"%s%s",' % (os.path.join(fileDb[fileId]["sourceScriptPath"], fileDb[fileId]["pathId"].replace(".", os.sep)), config.JSEXT) 
+
+    # Pass the array with source files to include
+    sourceOutput += "([" + sources[:-1] + srcEol + "]);" + srcEol
+
+    print "  * Storing output as %s..." % options.sourceScriptFile
+    filetool.save(options.sourceScriptFile, sourceOutput, options.scriptOutputEncoding)
+
+
+
+
+
+  ######################################################################
+  #  GENERATION OF COMPILED VERSION
+  ######################################################################
+
+  if options.generateCompiledScript:
+    print
+    print "  GENERATION OF COMPILED SCRIPT:"
+    print "----------------------------------------------------------------------------"
+
+    compiledOutput = settingsStr + "".join(additionalOutput)
+
+    if options.compiledScriptFile == None:
+      print "  * You must define the compiled script file!"
+      sys.exit(1)
+
+    if options.verbose:
+      print "  * Compiling..."
+    else:
+      print "  * Compiling: ",
+
+    for fileId in sortedIncludeList:
+      if options.verbose:
+        print "    - Compiling %s" % fileId
+      else:
+        sys.stdout.write(".")
+        sys.stdout.flush()
+
+      compiledFileContent = compiler.compile(loader.getTree(fileDb, fileId, options), False, options.addNewLines, options.enableDebug)
+
+      if options.addFileIds:
+        compiledOutput += "\n\n\n/* ID: " + fileId + " */\n" + compiledFileContent + "\n"
+      else:
+        compiledOutput += compiledFileContent
+
+      if not compiledOutput.endswith(";") and not compiledOutput.endswith("\n"):
+        compiledOutput += ";"
+
+    if not options.verbose:
+      print
+
+    print "  * Storing output as %s..." % options.compiledScriptFile
+    filetool.save(options.compiledScriptFile, compiledOutput, options.scriptOutputEncoding)
+
+
+
+
+
+
+
+######################################################################
+#  MAIN LOOP
+######################################################################
+
+if __name__ == '__main__':
+  try:
+    main()
+
+  except KeyboardInterrupt:
+    print
+    print "  * Keyboard Interrupt"
+    sys.exit(1)
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/massreplace.sh b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/massreplace.sh
new file mode 100755 (executable)
index 0000000..845a973
--- /dev/null
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+
+cd `dirname $0`/..
+
+for file in `find source -name "*.js" -o -name "*.css"  -o -name "*.html"`; do
+  echo ">>> Patching: $file"
+  sed -i s:"$1":"$2":g $file
+done
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.5.2/info/01-changes.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.5.2/info/01-changes.dat
new file mode 100644 (file)
index 0000000..5d3870e
--- /dev/null
@@ -0,0 +1,2 @@
+QxWindowManager=QxWindowManager was converted from a singleton to a normal class to allow multiple usage. This is useful for example to implement something like virtual desktops.
+QxAtom=Was renamed to QxFooBar (Only a test)
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.1/info/01-windowevents.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.1/info/01-windowevents.dat
new file mode 100644 (file)
index 0000000..2555ce0
--- /dev/null
@@ -0,0 +1,6 @@
+\.addEventListener\(\s*"resize"=Possible use of old resize event. When used to detect a window resize it must be renamed to "windowresize".\r
+\.addEventListener\(\s*"focus"=Possible use of old focus event. When used to detect a window resize it must be renamed to "windowfocus".\r
+\.addEventListener\(\s*"blur"=Possible use of old blur event. When used to detect a window resize it must be renamed to "windowblur".\r
+\.removeEventListener\(\s*"resize"=Possible use of old resize event. When used to detect a window resize it must be renamed to "windowresize".\r
+\.removeEventListener\(\s*"focus"=Possible use of old focus event. When used to detect a window resize it must be renamed to "windowfocus".\r
+\.removeEventListener\(\s*"blur"=Possible use of old blur event. When used to detect a window resize it must be renamed to "windowblur".\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.1/patches/01-xml.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.1/patches/01-xml.dat
new file mode 100644 (file)
index 0000000..9bdd530
--- /dev/null
@@ -0,0 +1 @@
+\bqx\.lang\.XmlEmu\.createXmlDom\b=qx.lang.Xml.createXmlDom\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.1/patches/02-application.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.1/patches/02-application.dat
new file mode 100644 (file)
index 0000000..5f71764
--- /dev/null
@@ -0,0 +1 @@
+\bqx\.core\.Init\.getInstance\(\)\.setApplication\(\s*new\s+=qx.core.Init.getInstance().setApplication(\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.2/info/01-nativewindow.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.2/info/01-nativewindow.dat
new file mode 100644 (file)
index 0000000..e7d408a
--- /dev/null
@@ -0,0 +1,2 @@
+\bqx\.client\.NativeWindow\b=NativeWindow now also supports "load" and "close" events.
+
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.2/info/02-functionextension.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.2/info/02-functionextension.dat
new file mode 100644 (file)
index 0000000..8e901f6
--- /dev/null
@@ -0,0 +1 @@
+\.closure\s*\(=Extension Function.prototype.closure has been removed.
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.2/patches/01-parent.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.2/patches/01-parent.dat
new file mode 100644 (file)
index 0000000..e5d5aec
--- /dev/null
@@ -0,0 +1,2 @@
+\.getFocusManager\s*\(=.getFocusHandler(
+\.setFocusManager\s*\(=.setFocusHandler(
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/01-constants.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/01-constants.dat
new file mode 100644 (file)
index 0000000..763a7b9
--- /dev/null
@@ -0,0 +1,293 @@
+\bqx\.constant\.Core\.EMPTY\b=""\r
+\bqx\.constant\.Core\.SPACE\b=" "\r
+\bqx\.constant\.Core\.SLASH\b="/"\r
+\bqx\.constant\.Core\.DOT\b="."\r
+\bqx\.constant\.Core\.ZERO\b="0"\r
+\bqx\.constant\.Core\.QUOTE='"'\r
+\bqx\.constant\.Core\.NEWLINE\b="\\n"\r
+\bqx\.constant\.Core\.SINGLEQUOTE\b="'"\r
+\bqx\.constant\.Core\.STAR\b="*"\r
+\bqx\.constant\.Core\.PLUS\b="+"\r
+\bqx\.constant\.Core\.MINUS\b="-"\r
+\bqx\.constant\.Core\.COMMA\b=","\r
+\bqx\.constant\.Core\.DASH\b="-"\r
+\bqx\.constant\.Core\.UNDERLINE\b="_"\r
+\bqx\.constant\.Core\.SEMICOLON\b=";"\r
+\bqx\.constant\.Core\.COLON\b=":"\r
+\bqx\.constant\.Core\.EQUAL\b="\="\r
+\bqx\.constant\.Core\.AMPERSAND\b="&"\r
+\bqx\.constant\.Core\.QUESTIONMARK\b="?"\r
+\bqx\.constant\.Core\.HASH\b="#"\r
+\bqx\.constant\.Core\.SMALLER\b="<"\r
+\bqx\.constant\.Core\.BIGGER\b=">"\r
+\bqx\.constant\.Core\.PERCENT\b="%"\r
+\bqx\.constant\.Core\.PIXEL\b="px"\r
+\bqx\.constant\.Core\.MILLISECONDS\b="ms"\r
+\bqx\.constant\.Core\.FLEX\b="1*"\r
+\bqx\.constant\.Core\.ZEROPIXEL\b="0px"\r
+\bqx\.constant\.Core\.HUNDREDPERCENT\b="100%"\r
+\bqx\.constant\.Core\.YES\b="yes"\r
+\bqx\.constant\.Core\.NO\b="no"\r
+\bqx\.constant\.Core\.ON\b="on"\r
+\bqx\.constant\.Core\.OFF\b="off"\r
+\bqx\.constant\.Core\.SET\b="set"\r
+\bqx\.constant\.Core\.GET\b="get"\r
+\bqx\.constant\.Core\.DEFAULT\b="default"\r
+\bqx\.constant\.Core\.AUTO\b="auto"\r
+\bqx\.constant\.Core\.NONE\b="none"\r
+\bqx\.constant\.Core\.DISABLED\b="disabled"\r
+\bqx\.constant\.Core\.HIDDEN\b="hidden"\r
+\r
+\r
+\r
+\bqx\.constant\.Event\.MOUSEOVER\b="mouseover"\r
+\bqx\.constant\.Event\.MOUSEMOVE\b="mousemove"\r
+\bqx\.constant\.Event\.MOUSEOUT\b="mouseout"\r
+\bqx\.constant\.Event\.MOUSEDOWN\b="mousedown"\r
+\bqx\.constant\.Event\.MOUSEUP\b="mouseup"\r
+\bqx\.constant\.Event\.MOUSEWHEEL\b="mousewheel"\r
+\bqx\.constant\.Event\.CLICK\b="click"\r
+\bqx\.constant\.Event\.DBLCLICK\b="dblclick"\r
+\bqx\.constant\.Event\.CONTEXTMENU\b="contextmenu"\r
+\bqx\.constant\.Event\.KEYDOWN\b="keydown"\r
+\bqx\.constant\.Event\.KEYPRESS\b="keypress"\r
+\bqx\.constant\.Event\.KEYINPUT\b="keyinput"\r
+\bqx\.constant\.Event\.KEYUP\b="keyup"\r
+\bqx\.constant\.Event\.BLUR\b="blur"\r
+\bqx\.constant\.Event\.FOCUS\b="focus"\r
+\bqx\.constant\.Event\.FOCUSIN\b="focusin"\r
+\bqx\.constant\.Event\.FOCUSOUT\b="focusout"\r
+\bqx\.constant\.Event\.SELECT\b="select"\r
+\bqx\.constant\.Event\.SCROLL\b="scroll"\r
+\bqx\.constant\.Event\.INPUT\b="input"\r
+\bqx\.constant\.Event\.CHANGE\b="change"\r
+\bqx\.constant\.Event\.RESIZE\b="resize"\r
+\bqx\.constant\.Event\.CHANGESELECTION\b="changeSelection"\r
+\bqx\.constant\.Event\.INTERVAL\b="interval"\r
+\bqx\.constant\.Event\.EXECUTE\b="execute"\r
+\bqx\.constant\.Event\.CREATE\b="create"\r
+\bqx\.constant\.Event\.LOAD\b="load"\r
+\bqx\.constant\.Event\.ERROR\b="error"\r
+\bqx\.constant\.Event\.SUBMIT\b="submit"\r
+\bqx\.constant\.Event\.UNLOAD\b="unload"\r
+\bqx\.constant\.Event\.BEFOREUNLOAD\b="beforeunload"\r
+\bqx\.constant\.Event\.TREEOPENWITHCONTENT\b="treeOpenWithContent"\r
+\bqx\.constant\.Event\.TREEOPENWHILEEMPTY\b="treeOpenWhileEmpty"\r
+\bqx\.constant\.Event\.TREECLOSE\b="treeClose"\r
+\bqx\.constant\.Event\.BEFOREAPPEAR\b="beforeAppear"\r
+\bqx\.constant\.Event\.APPEAR\b="appear"\r
+\bqx\.constant\.Event\.BEFOREDISAPPEAR\b="beforeDisappear"\r
+\bqx\.constant\.Event\.DISAPPEAR\b="disappear"\r
+\bqx\.constant\.Event\.BEFOREINSERTDOM\b="beforeInsertDom"\r
+\bqx\.constant\.Event\.INSERTDOM\b="insertDom"\r
+\bqx\.constant\.Event\.BEFOREREMOVEDOM\b="beforeRemoveDom"\r
+\bqx\.constant\.Event\.REMOVEDOM\b="removeDom"\r
+\bqx\.constant\.Event\.DRAGDROP\b="dragdrop"\r
+\bqx\.constant\.Event\.DRAGOVER\b="dragover"\r
+\bqx\.constant\.Event\.DRAGOUT\b="dragout"\r
+\bqx\.constant\.Event\.DRAGMOVE\b="dragmove"\r
+\bqx\.constant\.Event\.DRAGSTART\b="dragstart"\r
+\bqx\.constant\.Event\.DRAGEND\b="dragend"\r
+\bqx\.constant\.Event\.CREATED\b="created"\r
+\bqx\.constant\.Event\.CONFIGURED\b="configured"\r
+\bqx\.constant\.Event\.QUEUED\b="queued"\r
+\bqx\.constant\.Event\.SENDING\b="sending"\r
+\bqx\.constant\.Event\.RECEIVING\b="receiving"\r
+\bqx\.constant\.Event\.COMPLETED\b="completed"\r
+\bqx\.constant\.Event\.ABORTED\b="aborted"\r
+\bqx\.constant\.Event\.FAILED\b="failed"\r
+\bqx\.constant\.Event\.TIMEOUT\b="timeout"\r
+\bqx\.constant\.Event\.DIALOGOK\b="dialogok"\r
+\bqx\.constant\.Event\.DIALOGCANCEL\b="dialogcancel"\r
+\bqx\.constant\.Event\.DIALOGCLOSE\b="dialogclose"\r
+\bqx\.constant\.Event\.DIALOGPREVIOUS\b="dialogprevious"\r
+\bqx\.constant\.Event\.DIALOGNEXT\b="dialognext"\r
+\bqx\.constant\.Event\.DIALOGFIRST\b="dialogfirst"\r
+\bqx\.constant\.Event\.DIALOGLAST\b="dialoglast"\r
+\r
+\r
+\r
+\bqx\.constant\.Html\.AMPERSAND\b="&amp;"\r
+\bqx\.constant\.Html\.SMALLER\b="&lt;"\r
+\bqx\.constant\.Html\.BIGGER\b="&gt;"\r
+\bqx\.constant\.Html\.QUOTE\b="&quot;"\r
+\bqx\.constant\.Html\.SPACE\b="&nbsp;"\r
+\r
+\r
+\r
+\bqx\.constant\.Layout\.ORIENTATION_HORIZONTAL\b="horizontal"\r
+\bqx\.constant\.Layout\.ORIENTATION_VERTICAL\b="vertical"\r
+\bqx\.constant\.Layout\.ALIGN_LEFT\b="left"\r
+\bqx\.constant\.Layout\.ALIGN_LEFT_REVERSED\b="left-reversed"\r
+\bqx\.constant\.Layout\.ALIGN_CENTER\b="center"\r
+\bqx\.constant\.Layout\.ALIGN_CENTER_REVERSED\b="center-reversed"\r
+\bqx\.constant\.Layout\.ALIGN_RIGHT\b="right"\r
+\bqx\.constant\.Layout\.ALIGN_RIGHT_REVERSED\b="right-reversed"\r
+\bqx\.constant\.Layout\.ALIGN_TOP\b="top"\r
+\bqx\.constant\.Layout\.ALIGN_TOP_REVERSED\b="top-reversed"\r
+\bqx\.constant\.Layout\.ALIGN_MIDDLE\b="middle"\r
+\bqx\.constant\.Layout\.ALIGN_MIDDLE_REVERSED\b="middle-reversed"\r
+\bqx\.constant\.Layout\.ALIGN_BOTTOM\b="bottom"\r
+\bqx\.constant\.Layout\.ALIGN_BOTTOM_REVERSED\b="bottom-reversed"\r
+\r
+\r
+\r
+\bqx\.constant\.Mime\.JAVASCRIPT\b="text/javascript"\r
+\bqx\.constant\.Mime\.JSON\b="text/json"\r
+\bqx\.constant\.Mime\.XML\b="application/xml"\r
+\bqx\.constant\.Mime\.TEXT\b="text/plain"\r
+\bqx\.constant\.Mime\.HTML\b="text/html"\r
+\r
+\r
+\r
+\bqx\.constant\.Net\.NAMESPACE_SVG\b=qx.xml.Namespace.SVG\r
+\bqx\.constant\.Net\.NAMESPACE_SMIL\b=qx.xml.Namespace.SMIL\r
+\bqx\.constant\.Net\.NAMESPACE_MML\b=qx.xml.Namespace.MML\r
+\bqx\.constant\.Net\.NAMESPACE_CML\b=qx.xml.Namespace.CML\r
+\bqx\.constant\.Net\.NAMESPACE_XLINK\b=qx.xml.Namespace.XLINK\r
+\bqx\.constant\.Net\.NAMESPACE_XHTML\b=qx.xml.Namespace.XHTML\r
+\bqx\.constant\.Net\.NAMESPACE_XUL\b=qx.xml.Namespace.XUL\r
+\bqx\.constant\.Net\.NAMESPACE_XBL\b=qx.xml.Namespace.XBL\r
+\bqx\.constant\.Net\.NAMESPACE_FO\b=qx.xml.Namespace.FO\r
+\bqx\.constant\.Net\.NAMESPACE_XSL\b=qx.xml.Namespace.XSL\r
+\bqx\.constant\.Net\.NAMESPACE_XSLT\b=qx.xml.Namespace.XSLT\r
+\bqx\.constant\.Net\.NAMESPACE_XI\b=qx.xml.Namespace.XI\r
+\bqx\.constant\.Net\.NAMESPACE_XFORMS\b=qx.xml.Namespace.XFORMS\r
+\bqx\.constant\.Net\.NAMESPACE_SAXON\b=qx.xml.Namespace.SAXON\r
+\bqx\.constant\.Net\.NAMESPACE_XALAN\b=qx.xml.Namespace.XALAN\r
+\bqx\.constant\.Net\.NAMESPACE_XSD\b=qx.xml.Namespace.XSD\r
+\bqx\.constant\.Net\.NAMESPACE_DT\b=qx.xml.Namespace.DT\r
+\bqx\.constant\.Net\.NAMESPACE_XSI\b=qx.xml.Namespace.XSI\r
+\bqx\.constant\.Net\.NAMESPACE_RDF\b=qx.xml.Namespace.RDF\r
+\bqx\.constant\.Net\.NAMESPACE_RDFS\b=qx.xml.Namespace.RDFS\r
+\bqx\.constant\.Net\.NAMESPACE_DC\b=qx.xml.Namespace.DC\r
+\bqx\.constant\.Net\.NAMESPACE_DCQ\b=qx.xml.Namespace.DCQ\r
+\bqx\.constant\.Net\.NAMESPACE_SOAPENV\b=qx.xml.Namespace.SOAPENV\r
+\bqx\.constant\.Net\.NAMESPACE_WSDL\b=qx.xml.Namespace.WSDL\r
+\bqx\.constant\.Net\.NAMESPACE_ADOBESVGEXTENSIONS\b=qx.xml.Namespace.ADOBESVGEXTENSIONS\r
+\bqx\.constant\.Net\b=qx.xml.Namespace\r
+\bqx\.constant\.Net\.STATE_CREATED\b="created"\r
+\bqx\.constant\.Net\.STATE_CONFIGURED\b="configured"\r
+\bqx\.constant\.Net\.STATE_QUEUED\b="queued"\r
+\bqx\.constant\.Net\.STATE_SENDING\b="sending"\r
+\bqx\.constant\.Net\.STATE_RECEIVING\b="receiving"\r
+\bqx\.constant\.Net\.STATE_COMPLETED\b="completed"\r
+\bqx\.constant\.Net\.STATE_ABORTED\b="aborted"\r
+\bqx\.constant\.Net\.STATE_FAILED\b="failed"\r
+\bqx\.constant\.Net\.STATE_TIMEOUT\b="timeout"\r
+\bqx\.constant\.Net\.PROTOCOL_HTTP\b=qx.net.Protocol.HTTP\r
+\bqx\.constant\.Net\.PROTOCOL_HTTPS\b=qx.net.Protocol.HTTPS\r
+\bqx\.constant\.Net\.PROTOCOL_FTP\b=qx.net.Protocol.FTP\r
+\bqx\.constant\.Net\.PROTOCOL_FILE\b=qx.net.Protocol.FILE\r
+\bqx\.constant\.Net\.URI_HTTP\b=qx.net.Protocol.URI_HTTP\r
+\bqx\.constant\.Net\.URI_HTTPS\b=qx.net.Protocol.URI_HTTPS\r
+\bqx\.constant\.Net\.URI_FTP\b=qx.net.Protocol.URI_FTP\r
+\bqx\.constant\.Net\.URI_FILE\b=qx.net.Protocol.URI_FILE\r
+\bqx\.constant\.Net\.METHOD_GET\b=qx.net.Http.METHOD_GET\r
+\bqx\.constant\.Net\.METHOD_POST\b=qx.net.Http.METHOD_POST\r
+\bqx\.constant\.Net\.METHOD_PUT\b=qx.net.Http.METHOD_PUT\r
+\bqx\.constant\.Net\.METHOD_HEAD\b=qx.net.Http.METHOD_HEAD\r
+\bqx\.constant\.Net\.METHOD_DELETE\b=qx.net.Http.METHOD_DELETE\r
+\bqx\.constant\.Net\b=qx.net.Protocol\r
+\r
+\r
+\r
+\bqx\.constant\.Style\.PROPERTY_FILTER\b="filter"\r
+\bqx\.constant\.Style\.PROPERTY_ZINDEX\b="zIndex"\r
+\bqx\.constant\.Style\.PROPERTY_DISPLAY\b="display"\r
+\bqx\.constant\.Style\.PROPERTY_POSITION\b="position"\r
+\bqx\.constant\.Style\.PROPERTY_VISIBILITY\b="visibility"\r
+\bqx\.constant\.Style\.PROPERTY_DISABLED\b="disabled"\r
+\bqx\.constant\.Style\.PROPERTY_LINEHEIGHT\b="lineHeight"\r
+\bqx\.constant\.Style\.PROPERTY_TEXTALIGN\b="textAlign"\r
+\bqx\.constant\.Style\.PROPERTY_WHITESPACE\b="whiteSpace"\r
+\bqx\.constant\.Style\.PROPERTY_COLOR\b="color"\r
+\bqx\.constant\.Style\.PROPERTY_BACKGROUNDCOLOR\b="backgroundColor"\r
+\bqx\.constant\.Style\.PROPERTY_HEIGHT\b="height"\r
+\bqx\.constant\.Style\.PROPERTY_WIDTH\b="width"\r
+\bqx\.constant\.Style\.PROPERTY_TOP\b="top"\r
+\bqx\.constant\.Style\.PROPERTY_BOTTOM\b="bottom"\r
+\bqx\.constant\.Style\.PROPERTY_LEFT\b="left"\r
+\bqx\.constant\.Style\.PROPERTY_RIGHT\b="right"\r
+\bqx\.constant\.Style\.PROPERTY_PADDING\b="padding"\r
+\bqx\.constant\.Style\.PROPERTY_PADDINGTOP\b="paddingTop"\r
+\bqx\.constant\.Style\.PROPERTY_PADDINGRIGHT\b="paddingRight"\r
+\bqx\.constant\.Style\.PROPERTY_PADDINGBOTTOM\b="paddingBottom"\r
+\bqx\.constant\.Style\.PROPERTY_PADDINGLEFT\b="paddingLeft"\r
+\bqx\.constant\.Style\.PROPERTY_MARGIN\b="margin"\r
+\bqx\.constant\.Style\.PROPERTY_MARGINTOP\b="marginTop"\r
+\bqx\.constant\.Style\.PROPERTY_MARGINRIGHT\b="marginRight"\r
+\bqx\.constant\.Style\.PROPERTY_MARGINBOTTOM\b="marginBottom"\r
+\bqx\.constant\.Style\.PROPERTY_MARGINLEFT\b="marginLeft"\r
+\bqx\.constant\.Style\.PROPERTY_OVERFLOW_BOTH\b="overflow"\r
+\bqx\.constant\.Style\.PROPERTY_OVERFLOW_TEXT\b="textOverflow"\r
+\bqx\.constant\.Style\.PROPERTY_OVERFLOW_HORIZONTAL\b="overflowX"\r
+\bqx\.constant\.Style\.PROPERTY_OVERFLOW_VERTICAL\b="overflowY"\r
+\bqx\.constant\.Style\.POSITION_ABSOLUTE\b="absolute"\r
+\bqx\.constant\.Style\.POSITION_RELATIVE\b="relative"\r
+\bqx\.constant\.Style\.POSITION_STATIC\b="static"\r
+\bqx\.constant\.Style\.POSITION_FIXED\b="fixed"\r
+\bqx\.constant\.Style\.CURSOR_WAIT\b="wait"\r
+\bqx\.constant\.Style\.CURSOR_PROGRESS\b="progress"\r
+\bqx\.constant\.Style\.CURSOR_DEFAULT\b="default"\r
+\bqx\.constant\.Style\.OVERFLOW_AUTO\b="auto"\r
+\bqx\.constant\.Style\.OVERFLOW_HIDDEN\b="hidden"\r
+\bqx\.constant\.Style\.OVERFLOW_BOTH\b="scroll"\r
+\bqx\.constant\.Style\.OVERFLOW_HORIZONTAL\b="scrollX"\r
+\bqx\.constant\.Style\.OVERFLOW_VERTICAL\b="scrollY"\r
+\bqx\.constant\.Style\.OVERFLOW_ELLIPSIS\b="ellipsis"\r
+\bqx\.constant\.Style\.OVERFLOW_MOZ_NONE\b="-moz-scrollbars-none"\r
+\bqx\.constant\.Style\.OVERFLOW_MOZ_HORIZONTAL\b="-moz-scrollbars-horizontal"\r
+\bqx\.constant\.Style\.OVERFLOW_MOZ_VERTICAL\b="-moz-scrollbars-vertical"\r
+\bqx\.constant\.Style\.FOCUS_OUTLINE\b="1px dotted invert"\r
+\r
+\r
+\r
+\bqx\.constant\.Tags\.H1\b="h1"\r
+\bqx\.constant\.Tags\.H2\b="h2"\r
+\bqx\.constant\.Tags\.H3\b="h3"\r
+\bqx\.constant\.Tags\.H4\b="h4"\r
+\bqx\.constant\.Tags\.H5\b="h5"\r
+\bqx\.constant\.Tags\.H6\b="h6"\r
+\bqx\.constant\.Tags\.P\b="p"\r
+\bqx\.constant\.Tags\.DIV\b="div"\r
+\bqx\.constant\.Tags\.SPAN\b="span"\r
+\bqx\.constant\.Tags\.BODY\b="body"\r
+\bqx\.constant\.Tags\.EM\b="em"\r
+\bqx\.constant\.Tags\.I\b="i"\r
+\bqx\.constant\.Tags\.STRONG\b="strong"\r
+\bqx\.constant\.Tags\.B\b="b"\r
+\bqx\.constant\.Tags\.UL\b="ul"\r
+\bqx\.constant\.Tags\.OL\b="ol"\r
+\bqx\.constant\.Tags\.LI\b="li"\r
+\bqx\.constant\.Tags\.TABLE\b="table"\r
+\bqx\.constant\.Tags\.TD\b="td"\r
+\bqx\.constant\.Tags\.TR\b="tr"\r
+\bqx\.constant\.Tags\.THEAD\b="thead"\r
+\bqx\.constant\.Tags\.TBODY\b="tbody"\r
+\bqx\.constant\.Tags\.TFOOT\b="tfoot"\r
+\r
+\r
+\r
+\bqx\.constant\.Type\.UNDEFINED\b="undefined"\r
+\bqx\.constant\.Type\.NUMBER\b="number"\r
+\bqx\.constant\.Type\.STRING\b="string"\r
+\bqx\.constant\.Type\.BOOLEAN\b="boolean"\r
+\bqx\.constant\.Type\.FUNCTION\b="function"\r
+\bqx\.constant\.Type\.OBJECT\b="object"\r
+\r
+\r
+\r
+\bqx\.constant\.Node\.ELEMENT=qx.dom.DomNode.ELEMENT\r
+\bqx\.constant\.Node\.ATTRIBUTE=qx.dom.DomNode.ATTRIBUTE\r
+\bqx\.constant\.Node\.TEXT=qx.dom.DomNode.TEXT\r
+\bqx\.constant\.Node\.CDATA_SECTION=qx.dom.DomNode.CDATA_SECTION\r
+\bqx\.constant\.Node\.ENTITY_REFERENCE=qx.dom.DomNode.ENTITY_REFERENCE\r
+\bqx\.constant\.Node\.ENTITY=qx.dom.DomNode.ENTITY\r
+\bqx\.constant\.Node\.PROCESSING_INSTRUCTION=qx.dom.DomNode.PROCESSING_INSTRUCTION\r
+\bqx\.constant\.Node\.COMMENT=qx.dom.DomNode.COMMENT\r
+\bqx\.constant\.Node\.DOCUMENT=qx.dom.DomNode.DOCUMENT\r
+\bqx\.constant\.Node\.DOCUMENT_TYPE=qx.dom.DomNode.DOCUMENT_TYPE\r
+\bqx\.constant\.Node\.DOCUMENT_FRAGMENT=qx.dom.DomNode.DOCUMENT_FRAGMENT\r
+\bqx\.constant\.Node\.NOTATION=qx.dom.DomNode.NOTATION\r
+  
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/02-oo.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/02-oo.dat
new file mode 100644 (file)
index 0000000..5b5b92e
--- /dev/null
@@ -0,0 +1,54 @@
+\bqx\.OO\.PROPERTY_WIDTH\b="width"\r
+\bqx\.OO\.PROPERTY_HEIGHT\b="height"\r
+\bqx\.OO\.PROPERTY_MINWIDTH\b="minWidth"\r
+\bqx\.OO\.PROPERTY_MINHEIGHT\b="minHeight"\r
+\bqx\.OO\.PROPERTY_MAXWIDTH\b="maxWidth"\r
+\bqx\.OO\.PROPERTY_MAXHEIGHT\b="maxHeight"\r
+\bqx\.OO\.PROPERTY_LEFT\b="left"\r
+\bqx\.OO\.PROPERTY_RIGHT\b="right"\r
+\bqx\.OO\.PROPERTY_TOP\b="top"\r
+\bqx\.OO\.PROPERTY_BOTTOM\b="bottom"\r
+\bqx\.OO\.PROPERTY_VISIBILITY\b="visibility"\r
+\bqx\.OO\.PROPERTY_DISPLAY\b="display"\r
+\bqx\.OO\.PROPERTY_PARENT\b="parent"\r
+\bqx\.OO\.PROPERTY_ZINDEX\b="zIndex"\r
+\r
+\bqx\.OO\.C_SET\b="set"\r
+\bqx\.OO\.C_GET\b="get"\r
+\bqx\.OO\.C_APPLY\b="apply"\r
+\bqx\.OO\.C_RESET\b="reset"\r
+\bqx\.OO\.C_FORCE\b="force"\r
+\bqx\.OO\.C_TOGGLE\b="toggle"\r
+\bqx\.OO\.C_CHANGE\b="change"\r
+\bqx\.OO\.C_STORE\b="store"\r
+\bqx\.OO\.C_RETRIEVE\b="retrieve"\r
+\bqx\.OO\.C_PRIVATECHANGE\b="_change"\r
+\bqx\.OO\.C_INVALIDATE\b="_invalidate"\r
+\bqx\.OO\.C_INVALIDATED\b="_invalidated"\r
+\bqx\.OO\.C_RECOMPUTE\b="_recompute"\r
+\bqx\.OO\.C_CACHED\b="_cached"\r
+\bqx\.OO\.C_COMPUTE\b="_compute"\r
+\bqx\.OO\.C_COMPUTED\b="_computed"\r
+\bqx\.OO\.C_UNITDETECTION\b="_unitDetection"\r
+\r
+\bqx\.OO\.C_GLOBALPROPERTYREF\b="PROPERTY_"\r
+\r
+\bqx\.OO\.C_UNIT_VALUE\b="Value"\r
+\bqx\.OO\.C_UNIT_PARSED\b="Parsed"\r
+\bqx\.OO\.C_UNIT_TYPE\b="Type"\r
+\bqx\.OO\.C_UNIT_TYPE_NULL\b="TypeNull"\r
+\bqx\.OO\.C_UNIT_TYPE_PIXEL\b="TypePixel"\r
+\bqx\.OO\.C_UNIT_TYPE_PERCENT\b="TypePercent"\r
+\bqx\.OO\.C_UNIT_TYPE_AUTO\b="TypeAuto"\r
+\bqx\.OO\.C_UNIT_TYPE_FLEX\b="TypeFlex"\r
+\r
+\bqx\.OO\.C_GETDEFAULT\b="getDefault"\r
+\bqx\.OO\.C_SETDEFAULT\b="setDefault"\r
+\bqx\.OO\.C_RETRIEVEDEFAULT\b="retrieveDefault"\r
+\bqx\.OO\.C_STOREDEFAULT\b="storeDefault"\r
+\r
+\bqx\.OO\.C_VALUE\b="_value"\r
+\bqx\.OO\.C_NULL\b="_null"\r
+\bqx\.OO\.C_EVAL\b="_eval"\r
+\bqx\.OO\.C_CHECK\b="_check"\r
+\bqx\.OO\.C_MODIFY\b="_modify"\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/03-widget.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/03-widget.dat
new file mode 100644 (file)
index 0000000..763f17b
--- /dev/null
@@ -0,0 +1,68 @@
+\bqx\.ui\.core\.Widget\.JOB_INITIAL\b="initial"\r
+\bqx\.ui\.core\.Widget\.JOB_VISIBLE\b="visible"\r
+\bqx\.ui\.core\.Widget\.JOB_LOCATION\b="location"\r
+\bqx\.ui\.core\.Widget\.JOB_LOCATIONX\b="locationX"\r
+\bqx\.ui\.core\.Widget\.JOB_LOCATIONY\b="locationY"\r
+\bqx\.ui\.core\.Widget\.JOB_ADDCHILD\b="addChild"\r
+\bqx\.ui\.core\.Widget\.JOB_REMOVECHILD\b="removeChild"\r
+\bqx\.ui\.core\.Widget\.JOB_FRAMEWIDTH\b="frameWidth"\r
+\bqx\.ui\.core\.Widget\.JOB_FRAMEHEIGHT\b="frameHeight"\r
+\bqx\.ui\.core\.Widget\.JOB_PREFERREDINNERWIDTH\b="preferredInnerWidth"\r
+\bqx\.ui\.core\.Widget\.JOB_PREFERREDINNERHEIGHT\b="preferredInnerHeight"\r
+\bqx\.ui\.core\.Widget\.PROPERTY_CLASSNAME\b="className"\r
+\bqx\.ui\.core\.Widget\.PROPERTY_BORDERX\b="borderX"\r
+\bqx\.ui\.core\.Widget\.PROPERTY_BORDERWIDTHX\b="borderWidthX"\r
+\bqx\.ui\.core\.Widget\.PROPERTY_BORDERY\b="borderY"\r
+\bqx\.ui\.core\.Widget\.PROPERTY_BORDERWIDTHY\b="borderWidthY"\r
+\bqx\.ui\.core\.Widget\.PROPERTY_PARENT_PADDINGLEFT\b="parentPaddingLeft"\r
+\bqx\.ui\.core\.Widget\.PROPERTY_PARENT_PADDINGRIGHT\b="parentPaddingRight"\r
+\bqx\.ui\.core\.Widget\.PROPERTY_PARENT_PADDINGTOP\b="parentPaddingTop"\r
+\bqx\.ui\.core\.Widget\.PROPERTY_PARENT_PADDINGBOTTOM\b="parentPaddingBottom"\r
+\bqx\.ui\.core\.Widget\.STATE_OVER\b="over"\r
+\bqx\.ui\.core\.Widget\.STATE_FOCUSED\b="focused"\r
+\bqx\.ui\.core\.Widget\.STATE_DISABLED\b="disabled"\r
+\bqx\.ui\.core\.Widget\.FOCUS_OUTLINE\b="1px dotted invert"\r
+\bqx\.ui\.core\.Widget\.FOCUS_NONE\b="0px none"\r
+\bqx\.ui\.core\.Widget\.TAB_PROPERTY_UNSELECTABLE\b="unselectable"\r
+\bqx\.ui\.core\.Widget\.TAB_PROPERTY_TABINDEX\b="tabIndex"\r
+\bqx\.ui\.core\.Widget\.TAB_PROPERTY_USERFOCUS\b="userFocus"\r
+\bqx\.ui\.core\.Widget\.TAB_PROPERTY_MOZUSERFOCUS\b="MozUserFocus"\r
+\bqx\.ui\.core\.Widget\.TAB_VALUE_IGNORE\b="ignore"\r
+\bqx\.ui\.core\.Widget\.TAB_VALUE_NORMAL\b="normal"\r
+\bqx\.ui\.core\.Widget\.TAB_VALUE_ON\b="on"\r
+\bqx\.ui\.core\.Widget\.SEL_VALUE_ON\b="on"\r
+\bqx\.ui\.core\.Widget\.SEL_PROPERTY_UNSELECTABLE\b="unselectable"\r
+\bqx\.ui\.core\.Widget\.SEL_PROPERTY_USERSELECT\b="userSelect"\r
+\bqx\.ui\.core\.Widget\.SEL_PROPERTY_MOZUSERSELECT\b="MozUserSelect"\r
+\bqx\.ui\.core\.Widget\.SEL_PROPERTY_KHTMLUSERSELECT\b="KhtmlUserSelect"\r
+\bqx\.ui\.core\.Widget\.OPACITY_FILTER_START\b="Alpha(Opacity\="\r
+\bqx\.ui\.core\.Widget\.OPACITY_FILTER_STOP\b=")"\r
+\bqx\.ui\.core\.Widget\.OPACITY_FILTER_REGEXP = /Alpha\(Opacity\=([0-9]{1,3})\)/\r
+\bqx\.ui\.core\.Widget\.OPACITY_PROPERTY_CSS3\b="opacity"\r
+\bqx\.ui\.core\.Widget\.OPACTIY_PROPERTY_MOZ\b="MozOpacity"\r
+\bqx\.ui\.core\.Widget\.OPACITY_PROPERTY_MOZ\b="MozOpacity"\r
+\bqx\.ui\.core\.Widget\.OPACITY_PROPERTY_KHTML\b="KhtmlOpacity"\r
+\bqx\.ui\.core\.Widget\.CURSOR_PROPERTY\b="cursor"\r
+\bqx\.ui\.core\.Widget\.CURSOR_VALUE_POINTER\b="pointer"\r
+\bqx\.ui\.core\.Widget\.CURSOR_VALUE_HAND\b="hand"\r
+\bqx\.ui\.core\.Widget\.BACKGROUNDIMG_PROPERTY\b="backgroundImage"\r
+\bqx\.ui\.core\.Widget\.BACKGROUNDIMG_VALUE_START\b="url("\r
+\bqx\.ui\.core\.Widget\.BACKGROUNDIMG_VALUE_STOP\b=")"\r
+\bqx\.ui\.core\.Widget\.BACKGROUNDIMG_REGEXP1 = /^url\(/i\r
+\bqx\.ui\.core\.Widget\.BACKGROUNDIMG_REGEXP2 = /\)$/\r
+\bqx\.ui\.core\.Widget\.CLIP_PROPERTY\b="clip"\r
+\bqx\.ui\.core\.Widget\.CLIP_VALUE_START\b="rect("\r
+\bqx\.ui\.core\.Widget\.CLIP_VALUE_STOP\b=")"\r
+\bqx\.ui\.core\.Widget\.SCROLL_PROPERTY\b="overflow"\r
+\bqx\.ui\.core\.Widget\.SCROLL_PROPERTYX\b="overflowX"\r
+\bqx\.ui\.core\.Widget\.SCROLL_PROPERTYY\b="overflowY"\r
+\bqx\.ui\.core\.Widget\.SCROLL_VALUE_AUTO\b="auto"\r
+\bqx\.ui\.core\.Widget\.SCROLL_VALUE_HIDDEN\b="hidden"\r
+\bqx\.ui\.core\.Widget\.SCROLL_VALUE_SCROLL\b="scroll"\r
+\bqx\.ui\.core\.Widget\.SCROLL_VALUE_SCROLLX\b="scrollX"\r
+\bqx\.ui\.core\.Widget\.SCROLL_VALUE_SCROLLY\b="scrollY"\r
+\bqx\.ui\.core\.Widget\.SCROLL_VALUE_MOZNONE\b="-moz-scrollbars-none"\r
+\bqx\.ui\.core\.Widget\.SCROLL_VALUE_MOZSCROLLX\b="-moz-scrollbars-horizontal"\r
+\bqx\.ui\.core\.Widget\.SCROLL_VALUE_MOZSCROLLY\b="-moz-scrollbars-vertical"\r
+\bqx\.ui\.core\.Widget\.INLINE_EVENTTYPE\b="propertychange"\r
+\bqx\.ui\.core\.Widget\.INLINE_EVENTTYPE_PROPERTY\b="value"\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/04-nativewindow.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/04-nativewindow.dat
new file mode 100644 (file)
index 0000000..6d3a136
--- /dev/null
@@ -0,0 +1,12 @@
+\bqx\.client\.NativeWindow\.PROPERTY_DEPENDENT\b="dependent"\r
+\bqx\.client\.NativeWindow\.PROPERTY_WIDTH\b="width"\r
+\bqx\.client\.NativeWindow\.PROPERTY_HEIGHT\b="height"\r
+\bqx\.client\.NativeWindow\.PROPERTY_LEFT\b="left"\r
+\bqx\.client\.NativeWindow\.PROPERTY_TOP\b="top"\r
+\bqx\.client\.NativeWindow\.PROPERTY_RESIZABLE\b="resizable"\r
+\bqx\.client\.NativeWindow\.PROPERTY_STATUS\b="status"\r
+\bqx\.client\.NativeWindow\.PROPERTY_LOCATION\b="location"\r
+\bqx\.client\.NativeWindow\.PROPERTY_MENUBAR\b="menubar"\r
+\bqx\.client\.NativeWindow\.PROPERTY_TOOLBAR\b="toolbar"\r
+\bqx\.client\.NativeWindow\.PROPERTY_SCROLLBARS\b="scrollbars"\r
+\bqx\.client\.NativeWindow\.PROPERTY_MODAL\b="modal"
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/05-font.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/05-font.dat
new file mode 100644 (file)
index 0000000..63cefba
--- /dev/null
@@ -0,0 +1,10 @@
+\bqx\.renderer\.font\.Font\.STYLE_BOLD\b="bold"\r
+\bqx\.renderer\.font\.Font\.STYLE_NORMAL\b="normal"\r
+\bqx\.renderer\.font\.Font\.STYLE_ITALIC\b="italic"\r
+\bqx\.renderer\.font\.Font\.STYLE_UNDERLINE\b="underline"\r
+\bqx\.renderer\.font\.Font\.STYLE_STRIKEOUT\b="strikeout"\r
+\bqx\.renderer\.font\.Font\.PROPERTY_FAMILY\b="fontFamily"\r
+\bqx\.renderer\.font\.Font\.PROPERTY_SIZE\b="fontSize"\r
+\bqx\.renderer\.font\.Font\.PROPERTY_WEIGHT\b="fontWeight"\r
+\bqx\.renderer\.font\.Font\.PROPERTY_STYLE\b="fontStyle"\r
+\bqx\.renderer\.font\.Font\.PROPERTY_DECORATION\b="textDecoration"\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/06-border.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/06-border.dat
new file mode 100644 (file)
index 0000000..58ed0f2
--- /dev/null
@@ -0,0 +1,17 @@
+\bqx\.renderer\.border\.Border\.STYLE_GROOVE\b="groove"\r
+\bqx\.renderer\.border\.Border\.STYLE_RIDGE\b="ridge"\r
+\bqx\.renderer\.border\.Border\.STYLE_INSET\b="inset"\r
+\bqx\.renderer\.border\.Border\.STYLE_OUTSET\b="outset"\r
+\bqx\.renderer\.border\.Border\.STYLE_SOLID\b="solid"\r
+\bqx\.renderer\.border\.Border\.STYLE_DOTTED\b="dotted"\r
+\bqx\.renderer\.border\.Border\.STYLE_DASHED\b="dashed"\r
+\bqx\.renderer\.border\.Border\.STYLE_DOUBLE\b="double"\r
+\bqx\.renderer\.border\.Border\.STYLE_NONE\b="none"\r
+\bqx\.renderer\.border\.Border\.POSITION_TOP\b="top"\r
+\bqx\.renderer\.border\.Border\.POSITION_RIGHT\b="right"\r
+\bqx\.renderer\.border\.Border\.POSITION_BOTTOM\b="bottom"\r
+\bqx\.renderer\.border\.Border\.POSITION_LEFT\b="left"\r
+\bqx\.renderer\.border\.Border\.BORDER_NONE\b="0px none"\r
+\bqx\.renderer\.border\.Border\.baseColor\b="threedlightshadow"\r
+\bqx\.renderer\.border\.Border\.stylePart\b="Style"\r
+\bqx\.renderer\.border\.Border\.colorPart\b="Color"\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/07-color.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/07-color.dat
new file mode 100644 (file)
index 0000000..30003e9
--- /dev/null
@@ -0,0 +1,2 @@
+\bqx\.renderer\.color\.Color\.RGBCSS_START\b="rgb("\r
+\bqx\.renderer\.color\.Color\.RGBCSS_STOP\b=")"\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/08-image.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/08-image.dat
new file mode 100644 (file)
index 0000000..5bf6e48
--- /dev/null
@@ -0,0 +1,7 @@
+qx\.ui\.basic\.Image\.ATTR_ALT\b="alt"\r
+qx\.ui\.basic\.Image\.ATTR_TITLE\b="title"\r
+qx\.ui\.basic\.Image\.BORDER_NONE\b="0 none"\r
+qx\.ui\.basic\.Image\.RESET_VALIGN\b="top"\r
+qx\.ui\.basic\.Image\.IMGLOADER_START\b="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\='"\r
+qx\.ui\.basic\.Image\.IMGLOADER_STOP\b="',sizingMethod\='scale')"\r
+qx\.ui\.basic\.Image\.FILTER_GRAY\b="Gray() Alpha(Opacity\=30)"\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/09-tree.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/09-tree.dat
new file mode 100644 (file)
index 0000000..6b8e84b
--- /dev/null
@@ -0,0 +1,8 @@
+\bqx\.ui\.tree\.AbstractTreeElement\.INDENT_CODE_1\b="<img style\=\"position:absolute;top:0px;left:"\r
+\bqx\.ui\.tree\.AbstractTreeElement\.INDENT_CODE_2\b="px\" src\=\""\r
+\bqx\.ui\.tree\.AbstractTreeElement\.INDENT_CODE_3\b="\" />"\r
+\bqx\.ui\.tree\.AbstractTreeElement\.IMG_EXTENSION\b="gif"\r
+\bqx\.ui\.treefullcontrol\.AbstractTreeElement\.INDENT_CODE_1\b="<img style\=\"position:absolute;top:0px;left:"\r
+\bqx\.ui\.treefullcontrol\.AbstractTreeElement\.INDENT_CODE_2\b="px\" src\=\""\r
+\bqx\.ui\.treefullcontrol\.AbstractTreeElement\.INDENT_CODE_3\b="\" />"\r
+\bqx\.ui\.treefullcontrol\.AbstractTreeElement\.IMG_EXTENSION\b="gif"\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/10-table.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/10-table.dat
new file mode 100644 (file)
index 0000000..ed63f48
--- /dev/null
@@ -0,0 +1,25 @@
+\bqx\.ui\.table\.DefaultDataCellRenderer\.INTERNAL_STYLE_ALIGN_RIGHT=";text-align:right"\r
+\bqx\.ui\.table\.DefaultDataCellRenderer\.INTERNAL_STYLE_BOLD=";font-weight:bold"\r
+\bqx\.ui\.table\.DefaultDataCellRenderer\.INTERNAL_STYLE_ITALIC=";font-style:italic"\r
+\r
+\bqx\.ui\.table\.TablePane\.ARRAY_JOIN_ROW_DIV_START\b='<div style\="position:absolute;font-family:\'Segoe UI\', Corbel, Calibri, Tahoma, \'Lucida Sans Unicode\', sans-serif;font-size:11px;left:0px;top:'\r
+\bqx\.ui\.table\.TablePane\.ARRAY_JOIN_ROW_DIV_WIDTH\b='px;width:'\r
+\bqx\.ui\.table\.TablePane\.ARRAY_JOIN_ROW_DIV_HEIGHT\b='px;height:'\r
+\bqx\.ui\.table\.TablePane\.ARRAY_JOIN_ROW_DIV_BG_COLOR\b='px;background-color:'\r
+\bqx\.ui\.table\.TablePane\.ARRAY_JOIN_ROW_DIV_COLOR\b=';color:'\r
+\bqx\.ui\.table\.TablePane\.ARRAY_JOIN_ROW_DIV_START_END\b='">'\r
+\bqx\.ui\.table\.TablePane\.ARRAY_JOIN_ROW_DIV_END\b='</div>'\r
+\r
+\bqx\.ui\.table\.TablePane\.CONTENT_CELL_STYLE_LEFT\b='position:absolute;left:'\r
+\bqx\.ui\.table\.TablePane\.CONTENT_CELL_STYLE_WIDTH\b='px;top:0px;width:'\r
+\bqx\.ui\.table\.TablePane\.CONTENT_CELL_STYLE_HEIGHT\b='px; height:'\r
+\r
+\bqx\.ui\.table\.TablePane\.TABLE_START\b='<table cellspacing\="0" cellpadding\="0" style\="table-layout:fixed;font-family:\'Segoe UI\', Corbel, Calibri, Tahoma, \'Lucida Sans Unicode\', sans-serif;font-size:11px;width:'\r
+\bqx\.ui\.table\.TablePane\.TABLE_COLGROUP\b='px"><colgroup>'\r
+\bqx\.ui\.table\.TablePane\.TABLE_COL\b='<col width\="'\r
+\bqx\.ui\.table\.TablePane\.TABLE_COLEND\b='"/>'\r
+\bqx\.ui\.table\.TablePane\.TABLE_TBODY\b='</colgroup><tbody>'\r
+\bqx\.ui\.table\.TablePane\.TABLE_TR\b='<tr style\="height:'\r
+\bqx\.ui\.table\.TablePane\.TABLE_BGCOLOR\b='px;background-color:'\r
+\bqx\.ui\.table\.TablePane\.TABLE_TR_END\b='</tr>'\r
+\bqx\.ui\.table\.TablePane\.TABLE_TBODY_END\b='</tbody></table>'\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/11-embed.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/11-embed.dat
new file mode 100644 (file)
index 0000000..bc740fc
--- /dev/null
@@ -0,0 +1,8 @@
+\bqx\.ui\.embed\.IconHtmlEmbed\.START_IMAGE\b="<img src\=\""\r
+\bqx\.ui\.embed\.IconHtmlEmbed\.START_STYLE\b="\" style\=\"vertical-align:middle;"\r
+\bqx\.ui\.embed\.IconHtmlEmbed\.STYLE_MARGIN\b="margin-right:"\r
+\bqx\.ui\.embed\.IconHtmlEmbed\.STYLE_WIDTH\b="width:"\r
+\bqx\.ui\.embed\.IconHtmlEmbed\.STYLE_HEIGHT\b="height:"\r
+\bqx\.ui\.embed\.IconHtmlEmbed\.PIXEL_UNIT\b="px;"\r
+\bqx\.ui\.embed\.IconHtmlEmbed\.FILTER_START\b="filter:"\r
+\bqx\.ui\.embed\.IconHtmlEmbed\.STOP_IMAGE\b="\"/>"
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/12-label.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/12-label.dat
new file mode 100644 (file)
index 0000000..32cb319
--- /dev/null
@@ -0,0 +1,21 @@
+\bqx\.ui\.basic\.Label\.COPY_STYLEPROPERTY\b="styleproperty"\r
+\bqx\.ui\.basic\.Label\.COPY_COMPUTEDELEMENT\b="computedelement"\r
+\bqx\.ui\.basic\.Label\.COPY_LOCALELEMENT\b="localelement"\r
+\bqx\.ui\.basic\.Label\.OVERFLOW_HIDDEN\b="hidden"\r
+\bqx\.ui\.basic\.Label\.OVERFLOW_ELLIPSIS\b="ellipsis"\r
+\bqx\.ui\.basic\.Label\.INNER_TEXT\b="innerText"\r
+\bqx\.ui\.basic\.Label\.INNER_HTML\b="innerHTML"\r
+\bqx\.ui\.basic\.Label\.MNEMONIC_OUT_START\b="(<span style\=\"text-decoration:underline\">"\r
+\bqx\.ui\.basic\.Label\.MNEMONIC_OUT_STOP\b="</span>)"\r
+\bqx\.ui\.basic\.Label\.MNEMONIC_IN_START\b="<span style\=\"text-decoration:underline\">"\r
+\bqx\.ui\.basic\.Label\.MNEMONIC_IN_STOP\b="</span>"\r
+\bqx\.ui\.basic\.Label\.MNEMONIC_TEST1\b="^(((<([^>]|"\r
+\bqx\.ui\.basic\.Label\.MNEMONIC_TEST2\b=")+>)|(&([^;]|"\r
+\bqx\.ui\.basic\.Label\.MNEMONIC_TEST3\b=")+;)|[^&"\r
+\bqx\.ui\.basic\.Label\.MNEMONIC_TEST4\b="])*)("\r
+\bqx\.ui\.basic\.Label\.MNEMONIC_TEST5\b=")"\r
+\bqx\.ui\.basic\.Label\.MNEMONIC_REGMODE\b="i"\r
+\bqx\.ui\.basic\.Label\.BR\b="<br/>"\r
+\bqx\.ui\.basic\.Label\.CODE1\b="&#x"\r
+\bqx\.ui\.basic\.Label\.CODE2\b="&#"\r
+\bqx\.ui\.basic\.Label\.TOSTRHELPER\b="0x"
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/13-window.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/13-window.dat
new file mode 100644 (file)
index 0000000..99c71f2
--- /dev/null
@@ -0,0 +1,8 @@
+\bqx\.ui\.window\.Window\.MODE_OPAQUE\b="opaque"\r
+\bqx\.ui\.window\.Window\.MODE_LAZYOPAQUE\b="lazyopaque"\r
+\bqx\.ui\.window\.Window\.MODE_FRAME\b="frame"\r
+\bqx\.ui\.window\.Window\.MODE_TRANSLUCENT\b="translucent"\r
+\bqx\.ui\.window\.Window\.MODE_MINIMIZED\b="minimized"\r
+\bqx\.ui\.window\.Window\.MODE_MAXIMIZED\b="maximized"\r
+\bqx\.ui\.window\.Window\.STATE_ACTIVE\b="active"\r
+\bqx\.ui\.window\.Window\.STATE_MAXIMIZED\b="maximized"\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/14-colorselector.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/14-colorselector.dat
new file mode 100644 (file)
index 0000000..1741ceb
--- /dev/null
@@ -0,0 +1,11 @@
+\bqx\.ui\.component\.ColorSelector\.CONTEXT_RED_MODIFIER\b="redModifier"\r
+\bqx\.ui\.component\.ColorSelector\.CONTEXT_GREEN_MODIFIER\b="greenModifier"\r
+\bqx\.ui\.component\.ColorSelector\.CONTEXT_BLUE_MODIFIER\b="blueModifier"\r
+\bqx\.ui\.component\.ColorSelector\.CONTEXT_HUE_MODIFIER\b="hueModifier"\r
+\bqx\.ui\.component\.ColorSelector\.CONTEXT_SATURATION_MODIFIER\b="saturationModifier"\r
+\bqx\.ui\.component\.ColorSelector\.CONTEXT_BRIGHTNESS_MODIFIER\b="brightnessModifier"\r
+\bqx\.ui\.component\.ColorSelector\.CONTEXT_HSB_SPINNER\b="hsbSpinner"\r
+\bqx\.ui\.component\.ColorSelector\.CONTEXT_RGB_SPINNER\b="rgbSpinner"\r
+\bqx\.ui\.component\.ColorSelector\.CONTEXT_HEX_FIELD\b="hexField"\r
+\bqx\.ui\.component\.ColorSelector\.CONTEXT_HUE_SATURATION_FIELD\b="hueSaturationField"\r
+\bqx\.ui\.component\.ColorSelector\.CONTEXT_BRIGHTNESS_FIELD\b="brightnessField"
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/15-datechooser.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/15-datechooser.dat
new file mode 100644 (file)
index 0000000..cd78f33
--- /dev/null
@@ -0,0 +1,5 @@
+\bqx\.ui\.component\.DateChooser\.STATE_HEADER\b="header"\r
+\bqx\.ui\.component\.DateChooser\.STATE_WEEKEND\b="weekend"\r
+\bqx\.ui\.component\.DateChooser\.STATE_OTHER_MONTH\b="otherMonth"\r
+\bqx\.ui\.component\.DateChooser\.STATE_SELECTED\b="selected"\r
+\bqx\.ui\.component\.DateChooser\.STATE_TODAY\b="today"\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/16-button.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/16-button.dat
new file mode 100644 (file)
index 0000000..953137b
--- /dev/null
@@ -0,0 +1,3 @@
+\bqx\.ui\.form\.Button\.STATE_CHECKED\b="checked"\r
+\bqx\.ui\.form\.Button\.STATE_PRESSED\b="pressed"\r
+\bqx\.ui\.form\.Button\.STATE_ABANDONED\b="abandoned"\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/17-selection.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/17-selection.dat
new file mode 100644 (file)
index 0000000..5dcc375
--- /dev/null
@@ -0,0 +1,3 @@
+\bqx\.manager\.selection\.SelectionManager\.STATE_SELECTED\b="selected"\r
+\bqx\.manager\.selection\.SelectionManager\.STATE_ANCHOR\b="anchor"\r
+\bqx\.manager\.selection\.SelectionManager\.STATE_LEAD\b="lead"\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/40-classnames.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6.3/patches/40-classnames.dat
new file mode 100644 (file)
index 0000000..5b43fdb
--- /dev/null
@@ -0,0 +1,74 @@
+\bqx\.dom\.DomDimension\b=qx.dom.Dimension\r
+\bqx\.dom\.DomElement\b=qx.dom.Element\r
+\bqx\.dom\.DomElementFromPoint\b=qx.dom.ElementFromPoint\r
+\bqx\.dom\.DomEventRegistration\b=qx.dom.EventRegistration\r
+\bqx\.dom\.DomIframe\b=qx.dom.Iframe\r
+\bqx\.dom\.DomLocation\b=qx.dom.Location\r
+\bqx\.dom\.DomNode\b=qx.dom.Node\r
+\bqx\.dom\.DomOffset\b=qx.dom.Offset\r
+\bqx\.dom\.DomScroll\b=qx.dom.Scroll\r
+\bqx\.dom\.DomScrollIntoView\b=qx.dom.ScrollIntoView\r
+\bqx\.dom\.DomStyle\b=qx.dom.Style\r
+\bqx\.dom\.DomStyleSheet\b=qx.dom.StyleSheet\r
+\bqx\.dom\.DomWindow\b=qx.dom.Window\r
+\r
+\bqx\.io\.image\.ImagePreloaderSystem\b=qx.io.image.PreloaderSystem\r
+\bqx\.io\.image\.ImagePreloader\b=qx.io.image.Preloader\r
+\r
+\bqx\.io\.remote\.RemoteExchange\b=qx.io.remote.Exchange\r
+\bqx\.io\.remote\.RemoteRequest\b=qx.io.remote.Request\r
+\bqx\.io\.remote\.RemoteRequestQueue\b=qx.io.remote.RequestQueue\r
+\bqx\.io\.remote\.RemoteResponse\b=qx.io.remote.Response\r
+\r
+\bqx\.lang\.Xml\b=qx.xml.Core\r
+\r
+\bqx\.theme\.appearance\.DefaultAppearanceTheme\b=qx.theme.appearance.Classic\r
+\bqx\.theme\.color\.SystemColorTheme\b=qx.theme.color.System\r
+\bqx\.theme\.color\.WindowsClassicColorTheme\b=qx.theme.color.WindowsClassic\r
+\bqx\.theme\.color\.WindowsLunaBlueColorTheme\b=qx.theme.color.WindowsLunaBlue\r
+\bqx\.theme\.color\.WindowsLunaGreenColorTheme\b=qx.theme.color.WindowsLunaGreen\r
+\bqx\.theme\.color\.WindowsLunaSilverColorTheme\b=qx.theme.color.WindowsLunaSilver\r
+\bqx\.theme\.color\.WindowsRoyaleColorTheme\b=qx.theme.color.WindowsRoyale\r
+\bqx\.theme\.icon\.NuvolaIconTheme\b=qx.theme.icon.Nuvola\r
+\bqx\.theme\.icon\.CrystalSvgIconTheme\b=qx.theme.icon.CrystalSvg\r
+\bqx\.theme\.widget\.WindowsWidgetTheme\b=qx.theme.widget.Windows\r
+\r
+\bqx\.ui\.listview\.ListViewHeaderSeparator\b=qx.ui.listview.HeaderSeparator\r
+\bqx\.ui\.listview\.ListViewHeaderCell\b=qx.ui.listview.HeaderCell\r
+\bqx\.ui\.listview\.ListViewHeader\b=qx.ui.listview.Header\r
+\bqx\.ui\.listview\.ListViewContentCellText\b=qx.ui.listview.ContentCellText\r
+\bqx\.ui\.listview\.ListViewContentCellLink\b=qx.ui.listview.ContentCellLink\r
+\bqx\.ui\.listview\.ListViewContentCellImage\b=qx.ui.listview.ContentCellImage\r
+\bqx\.ui\.listview\.ListViewContentCellIconHtml\b=qx.ui.listview.ContentCellIconHtml\r
+\bqx\.ui\.listview\.ListViewContentCellHtml\b=qx.ui.listview.ContentCellHtml\r
+\r
+\bqx\.ui\.menu\.MenuRadioButton\b=qx.ui.menu.RadioButton\r
+\bqx\.ui\.menu\.MenuLayout\b=qx.ui.menu.Layout\r
+\bqx\.ui\.menu\.MenuCheckBox\b=qx.ui.menu.CheckBox\r
+\bqx\.ui\.menu\.MenuButton\b=qx.ui.menu.Button\r
+\bqx\.ui\.menu\.MenuSeparator\b=qx.ui.menu.Separator\r
+\bqx\.ui\.menu\.MenuBar\b=qx.ui.menubar.MenuBar\r
+\bqx\.ui\.menu\.MenuBarButton\b=qx.ui.menubar.Button\r
+\r
+\bqx\.ui\.pageview\.buttonview\.ButtonViewPage\b=qx.ui.pageview.buttonview.Page\r
+\bqx\.ui\.pageview\.buttonview\.ButtonViewPane\b=qx.ui.pageview.buttonview.Pane\r
+\bqx\.ui\.pageview\.buttonview\.ButtonViewBar\b=qx.ui.pageview.buttonview.Bar\r
+\bqx\.ui\.pageview\.buttonview\.ButtonViewButton\b=qx.ui.pageview.buttonview.Button\r
+\r
+\bqx\.ui\.pageview\.tabview\.TabViewBar\b=qx.ui.pageview.tabview.Bar\r
+\bqx\.ui\.pageview\.tabview\.TabViewButton\b=qx.ui.pageview.tabview.Button\r
+\bqx\.ui\.pageview\.tabview\.TabViewPage\b=qx.ui.pageview.tabview.Page\r
+\bqx\.ui\.pageview\.tabview\.TabViewPane\b=qx.ui.pageview.tabview.Pane\r
+\r
+\bqx\.ui\.toolbar\.ToolBarButton\b=qx.ui.toolbar.Button\r
+\bqx\.ui\.toolbar\.ToolBarCheckBox\b=qx.ui.toolbar.CheckBox\r
+\bqx\.ui\.toolbar\.ToolBarMenuButton\b=qx.ui.toolbar.MenuButton\r
+\bqx\.ui\.toolbar\.ToolBarPart\b=qx.ui.toolbar.Part\r
+\bqx\.ui\.toolbar\.ToolBarPartHandle\b=qx.ui.toolbar.PartHandle\r
+\bqx\.ui\.toolbar\.ToolBarRadioButton\b=qx.ui.toolbar.RadioButton\r
+\bqx\.ui\.toolbar\.ToolBarSeparator\b=qx.ui.toolbar.Separator\r
+\r
+\bqx\.ui\.pageview\.AbstractPageViewBar\b=qx.ui.pageview.AbstractBar\r
+\bqx\.ui\.pageview\.AbstractPageViewButton\b=qx.ui.pageview.AbstractButton\r
+\bqx\.ui\.pageview\.AbstractPageViewPage\b=qx.ui.pageview.AbstractPage\r
+\bqx\.ui\.pageview\.AbstractPageViewPane\b=qx.ui.pageview.AbstractPane\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/info/01-prototypes.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/info/01-prototypes.dat
new file mode 100644 (file)
index 0000000..2cdd4ad
--- /dev/null
@@ -0,0 +1,32 @@
+\.copy\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
+\.clone\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
+\.getFirst\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
+\.getLast\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
+\.insertAt\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
+\.insertBefore\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
+\.insertAfter\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
+\.removeAt\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
+\.removeAll\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
+\.append\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
+\.remove\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
+\.contains\b=Maybe old use of prototype function. Please use qx.lang.Array/qx.lang.String instead.\r
+\r
+\.toCamelCase\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
+\.trimLeft\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
+\.trimRight\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
+\.trim\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
+\.stripTags\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
+\.startsWith\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
+\.endsWith\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
+\.pad\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
+\.toFirstUp\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
+\.escapeRegexpChars\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
+\r
+# All widget add/remove is affected. It's generally better to hide these because the string\r
+# methods are relatively rarely used.\r
+#\.add\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
+#\.remove\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
+\r
+\.isInRange\b=Maybe old use of prototype function. Please use qx.lang.Number instead.\r
+\.isBetweenRange\b=Maybe old use of prototype function. Please use qx.lang.Number instead.\r
+\.limit\b=Maybe old use of prototype function. Please use qx.lang.Number instead.\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/info/02-obsolete.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/info/02-obsolete.dat
new file mode 100644 (file)
index 0000000..65e5496
--- /dev/null
@@ -0,0 +1,3 @@
+\bQxSet\b=Does not exist anymore. Maybe qx.manager.object.ObjectManager can be used instead.\r
+\bQxTransport\b=Does not exist anymore. Please use qx.io.remote.RemoteRequest now.\r
+\bQxXmlHttpTransport\b=Does not exist anymore. Please use qx.io.remote.RemoteRequest now.\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/01-classnames.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/01-classnames.dat
new file mode 100644 (file)
index 0000000..4545fe3
--- /dev/null
@@ -0,0 +1,209 @@
+\bQxConst\b=qx.Const
+\bQxClient\b=qx.sys.Client
+
+\bQxDefaultSettings\b=qx.core.DefaultSettings
+\bQxSettings\b=qx.core.Settings
+\bQxMain\b=qx.core.Main
+\bQxObject\b=qx.core.Object
+\bQxTarget\b=qx.core.Target
+\bQxApplication\b=qx.core.Init
+
+\bQxRangeManager\b=qx.type.Range
+\bQxSelectionStorage\b=qx.type.Selection
+\bQxFlashPlayerVersion\b=qx.type.Version
+
+\bQxTimer\b=qx.client.Timer
+\bQxNativeWindow\b=qx.client.NativeWindow
+\bQxClientWindow\b=qx.client.ClientWindow
+\bQxCommand\b=qx.client.Command
+\bQxBuilder\b=qx.client.Builder
+
+\bQxDebug\b=qx.dev.Debug
+\bQxTimeTracker\b=qx.dev.TimeTracker
+
+\bQxXmlExtras\b=qx.lang.Xml
+
+\bQxDataEvent\b=qx.event.type.DataEvent
+\bQxDomEvent\b=qx.event.type.DomEvent
+\bQxDragEvent\b=qx.event.type.DragEvent
+\bQxEvent\b=qx.event.type.Event
+\bQxFocusEvent\b=qx.event.type.FocusEvent
+\bQxKeyEvent\b=qx.event.type.KeyEvent
+\bQxMouseEvent\b=qx.event.type.MouseEvent
+
+\bQxDragAndDropManager\b=qx.event.handler.DragAndDropHandler
+\bQxEventManager\b=qx.event.handler.EventHandler
+\bQxFocusManager\b=qx.event.handler.FocusHandler
+
+\bQxRequest\b=qx.io.remote.RemoteRequest
+\bQxRequestQueue\b=qx.io.remote.RemoteRequestQueue
+\bQxResponse\b=qx.io.remote.RemoteResponse
+\bQxCommonTransport\b=qx.io.remote.AbstractRemoteTransport
+\bQxIframeTransport\b=qx.io.remote.IframeTransport
+\bQxXmlhttpTransport\b=qx.io.remote.XmlhttpTransport
+
+\bQxCookie\b=qx.io.local.CookieApi
+\bQxCookieStorage\b=qx.io.local.CookieTransport
+
+\bQxImagePreloader\b=qx.io.image.ImagePreloader
+\bQxImagePreloaderSystem\b=qx.io.image.ImagePreloaderSystem
+
+\bQxParent\b=qx.ui.core.Parent
+\bQxWidget\b=qx.ui.core.Widget
+\bQxClientDocument\b=qx.ui.core.ClientDocument
+\bQxBlocker\b=qx.ui.core.ClientDocumentBlocker
+
+\bQxAtom\b=qx.ui.basic.Atom
+\bQxImage\b=qx.ui.basic.Image
+\bQxLabel\b=qx.ui.basic.Label
+\bQxTerminator\b=qx.ui.basic.Terminator
+\bQxInline\b=qx.ui.basic.Inline
+\bQxHorizontalSpacer\b=qx.ui.basic.HorizontalSpacer
+\bQxVerticalSpacer\b=qx.ui.basic.VerticalSpacer
+
+\bQxBoxLayout\b=qx.ui.layout.BoxLayout
+\bQxCanvasLayout\b=qx.ui.layout.CanvasLayout
+\bQxDockLayout\b=qx.ui.layout.DockLayout
+\bQxFlowLayout\b=qx.ui.layout.FlowLayout
+\bQxHorizontalBoxLayout\b=qx.ui.layout.HorizontalBoxLayout
+\bQxVerticalBoxLayout\b=qx.ui.layout.VerticalBoxLayout
+\bQxGridLayout\b=qx.ui.layout.GridLayout
+
+\bQxTextField\b=qx.ui.form.TextField
+\bQxTextArea\b=qx.ui.form.TextArea
+\bQxPasswordField\b=qx.ui.form.PasswordField
+\bQxSpinner\b=qx.ui.form.Spinner
+\bQxButton\b=qx.ui.form.Button
+\bQxRepeatButton\b=qx.ui.form.RepeatButton
+\bQxComboBox\b=qx.ui.form.ComboBox
+\bQxList\b=qx.ui.form.List
+\bQxCheckBox\b=qx.ui.form.CheckBox
+\bQxRadioButton\b=qx.ui.form.RadioButton
+\bQxListItem\b=qx.ui.form.ListItem
+\bQxInputCheckIcon\b=qx.ui.form.InputCheckSymbol
+
+\bQxFieldSet\b=qx.ui.groupbox.GroupBox
+\bQxCheckBoxFieldSet\b=qx.ui.groupbox.CheckGroupBox
+\bQxRadioButtonFieldSet\b=qx.ui.groupbox.RadioGroupBox
+
+\bQxListView\b=qx.ui.listview.ListView
+\bQxListViewContentCellHtml\b=qx.ui.listview.ListViewContentCellHtml
+\bQxListViewContentCellIconHtml\b=qx.ui.listview.ListViewContentCellIconHtml
+\bQxListViewContentCellImage\b=qx.ui.listview.ListViewContentCellImage
+\bQxListViewContentCellLink\b=qx.ui.listview.ListViewContentCellLink
+\bQxListViewContentCellText\b=qx.ui.listview.ListViewContentCellText
+\bQxListViewHeader\b=qx.ui.listview.ListViewHeader
+\bQxListViewHeaderCell\b=qx.ui.listview.ListViewHeaderCell
+\bQxListViewHeaderSeparator\b=qx.ui.listview.ListViewHeaderSeparator
+\bQxListViewPane\b=qx.ui.listview.ListViewPane
+
+\bQxWindow\b=qx.ui.window.Window
+
+\bQxPopup\b=qx.ui.popup.Popup
+\bQxPopupAtom\b=qx.ui.popup.PopupAtom
+\bQxToolTip\b=qx.ui.popup.ToolTip
+
+\bQxMenu\b=qx.ui.menu.Menu
+\bQxMenuBar\b=qx.ui.menu.MenuBar
+\bQxMenuBarButton\b=qx.ui.menu.MenuBarButton
+\bQxMenuButton\b=qx.ui.menu.MenuButton
+\bQxMenuCheckBox\b=qx.ui.menu.MenuCheckBox
+\bQxMenuLayout\b=qx.ui.menu.MenuLayout
+\bQxMenuRadioButton\b=qx.ui.menu.MenuRadioButton
+\bQxMenuSeparator\b=qx.ui.menu.MenuSeparator
+
+\bQxCommonView\b=qx.ui.pageview.AbstractPageView
+\bQxCommonViewBar\b=qx.ui.pageview.AbstractPageViewBar
+\bQxCommonViewButton\b=qx.ui.pageview.AbstractPageViewButton
+\bQxCommonViewPage\b=qx.ui.pageview.AbstractPageViewPage
+\bQxCommonViewPane\b=qx.ui.pageview.AbstractPageViewPane
+
+\bQxTabView\b=qx.ui.pageview.tabview.TabView
+\bQxTabViewBar\b=qx.ui.pageview.tabview.TabViewBar
+\bQxTabViewButton\b=qx.ui.pageview.tabview.TabViewButton
+\bQxTabViewPage\b=qx.ui.pageview.tabview.TabViewPage
+\bQxTabViewPane\b=qx.ui.pageview.tabview.TabViewPane
+
+\bQxBarView\b=qx.ui.pageview.buttonview.ButtonView
+\bQxBarViewBar\b=qx.ui.pageview.buttonview.ButtonViewBar
+\bQxBarViewButton\b=qx.ui.pageview.buttonview.ButtonViewButton
+\bQxBarViewPage\b=qx.ui.pageview.buttonview.ButtonViewPage
+\bQxBarViewPane\b=qx.ui.pageview.buttonview.ButtonViewPane
+
+\bQxToolBar\b=qx.ui.toolbar.ToolBar
+\bQxToolBarButton\b=qx.ui.toolbar.ToolBarButton
+\bQxToolBarCheckBox\b=qx.ui.toolbar.ToolBarCheckBox
+\bQxToolBarMenuButton\b=qx.ui.toolbar.ToolBarMenuButton
+\bQxToolBarPart\b=qx.ui.toolbar.ToolBarPart
+\bQxToolBarPartHandle\b=qx.ui.toolbar.ToolBarPartHandle
+\bQxToolBarRadioButton\b=qx.ui.toolbar.ToolBarRadioButton
+\bQxToolBarSeparator\b=qx.ui.toolbar.ToolBarSeparator
+
+\bQxTree\b=qx.ui.tree.Tree
+\bQxTreeElement\b=qx.ui.tree.AbstractTreeElement
+\bQxTreeFile\b=qx.ui.tree.TreeFile
+\bQxTreeFolder\b=qx.ui.tree.TreeFolder
+
+\bQxColorSelector\b=qx.ui.component.ColorSelector
+
+\bQxCanvasLayoutImpl\b=qx.renderer.layout.CanvasLayoutImpl
+\bQxDockLayoutImpl\b=qx.renderer.layout.DockLayoutImpl
+\bQxFlowLayoutImpl\b=qx.renderer.layout.FlowLayoutImpl
+\bQxGridLayoutImpl\b=qx.renderer.layout.GridLayoutImpl
+\bQxHorizontalBoxLayoutImpl\b=qx.renderer.layout.HorizontalBoxLayoutImpl
+\bQxLayoutImpl\b=qx.renderer.layout.LayoutImpl
+\bQxMenuButtonLayoutImpl\b=qx.renderer.layout.MenuButtonLayoutImpl
+\bQxMenuLayoutImpl\b=qx.renderer.layout.MenuLayoutImpl
+\bQxVerticalBoxLayoutImpl\b=qx.renderer.layout.VerticalBoxLayoutImpl
+
+\bQxBorder\.presets\b=qx.renderer.border.BorderPresets
+\bQxBorderObject\.presets\b=qx.renderer.border.BorderPresets
+\bQxBorder\b=qx.renderer.border.Border
+\bQxBorderCache\b=qx.renderer.border.BorderCache
+\bQxBorderObject\b=qx.renderer.border.BorderObject
+\bQxBorderPresets\b=qx.renderer.border.BorderPresets
+
+\bQxColor\b=qx.renderer.color.Color
+\bQxColorCache\b=qx.renderer.color.ColorCache
+\bQxColorObject\b=qx.renderer.color.ColorObject
+\bQxColorUtil\b=qx.util.ColorUtil
+
+\bQxFont\b=qx.renderer.font.Font
+\bQxFontCache\b=qx.renderer.font.FontCache
+\bQxFontObject\b=qx.renderer.font.FontObject
+
+\bQxAppearanceTheme\b=qx.renderer.theme.AppearanceTheme
+\bQxColorTheme\b=qx.renderer.theme.ColorTheme
+\bQxIconTheme\b=qx.renderer.theme.IconTheme
+\bQxWidgetTheme\b=qx.renderer.theme.WidgetTheme
+
+\bQxManager\b=qx.manager.object.ObjectManager
+\bQxAppearanceManager\b=qx.manager.object.AppearanceManager
+\bQxColorManager\b=qx.manager.object.ColorManager
+\bQxPopupManager\b=qx.manager.object.PopupManager
+\bQxMenuManager\b=qx.manager.object.MenuManager
+\bQxToolTipManager\b=qx.manager.object.ToolTipManager
+\bQxWindowManager\b=qx.manager.object.WindowManager
+\bQxImageManager\b=qx.manager.object.ImageManager
+\bQxImagePreloaderManager\b=qx.manager.object.ImagePreloaderManager
+
+\bQxSelectionManager\b=qx.manager.selection.SelectionManager
+\bQxDomSelectionManager\b=qx.manager.selection.DomSelectionManager
+\bQxTreeSelectionManager\b=qx.manager.selection.TreeSelectionManager
+\bQxVirtualSelectionManager\b=qx.manager.selection.VirtualSelectionManager
+\bQxRadioManager\b=qx.manager.selection.RadioManager
+
+\bQxFlash\b=qx.ui.embed.Flash
+\bQxIframe\b=qx.ui.embed.Iframe
+\bQxGallery\b=qx.ui.embed.Gallery
+\bQxGalleryList\b=qx.ui.embed.GalleryList
+\bQxHtml\b=qx.ui.embed.HtmlEmbed
+\bQxIconHtml\b=qx.ui.embed.IconHtmlEmbed
+\bQxLink\b=qx.ui.embed.LinkEmbed
+\bQxText\b=qx.ui.embed.TextEmbed
+\bQxNode\b=qx.ui.embed.NodeEmbed
+
+\bQxTextile\b=qx.util.Textile.textilize
+\bQxCompare\b=qx.util.Compare
+\bQxFormUtils\b=qx.util.FormUtil
+
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/02-domapi.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/02-domapi.dat
new file mode 100644 (file)
index 0000000..bae7bf0
--- /dev/null
@@ -0,0 +1,38 @@
+qx.dom.getComputedOuter=qx.dom.DomDimension.getOuter
+qx.dom.getComputedInner=qx.dom.DomDimension.getInner
+qx.dom.getComputedArea=qx.dom.DomDimension.getArea
+qx.dom.getComputedBox=qx.dom.DomDimension.getBox
+qx.dom.getComputedInset=qx.dom.DomDimension.getInset
+qx.dom.getComputedScrollBar=qx.dom.DomDimension.getScrollBar
+
+qx.dom.cleanElementWhitespace=qx.dom.DomElement.cleanWhitespace
+qx.dom.isElementEmpty=qx.dom.DomElement.isEmpty
+
+qx.dom.getElementFromPoint=qx.dom.DomElementFromPoint.getElementFromPoint
+qx.dom.getElementAbsolutePointChecker=qx.dom.DomElementFromPoint.getElementAbsolutePointChecker
+
+qx.dom.addEventListener=qx.dom.DomEventRegistration.addEventListener
+qx.dom.removeEventListener=qx.dom.DomEventRegistration.removeEventListener
+
+qx.dom.getIframe=qx.dom.DomIframe.get
+
+qx.dom.getComputedPage=qx.dom.DomLocation.getPage
+qx.dom.getComputedClient=qx.dom.DomLocation.getClient
+qx.dom.getComputedScreen=qx.dom.DomLocation.getScreen
+
+qx.dom.getOffset=qx.dom.DomOffset.get
+qx.dom.getScroll=qx.dom.DomScroll.get
+qx.dom.scrollIntoView=qx.dom.DomScrollIntoView.scroll
+
+qx.dom.getComputedStyle=qx.dom.DomStyle.getStyle
+qx.dom.getComputedBorder=qx.dom.DomStyle.getBorder
+qx.dom.getComputedMargin=qx.dom.DomStyle.getMargin
+qx.dom.getComputedPadding=qx.dom.DomStyle.getPadding
+
+qx.dom.createStyleElement=qx.dom.DomStyleSheet.createElement
+qx.dom.addCssRule=qx.dom.DomStyleSheet.addRule
+qx.dom.removeCssRule=qx.dom.DomStyleSheet.removeRule
+qx.dom.removeAllCssRules=qx.dom.DomStyleSheet.removeAllRules
+
+qx.dom.getWindowInner=qx.dom.DomWindow.getInner
+qx.dom.getClientScroll=qx.dom.DomWindow.getScroll
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/03-const.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/03-const.dat
new file mode 100644 (file)
index 0000000..ab9a842
--- /dev/null
@@ -0,0 +1,55 @@
+qx.Const.NAMESPACE_=qx.constant.Net.NAMESPACE_
+qx.Const.REQUEST_STATE_=qx.constant.Net.STATE_
+qx.Const.PROTOCOL_=qx.constant.Net.PROTOCOL_
+qx.Const.URI_=qx.constant.Net.URI_
+qx.Const.METHOD_=qx.constant.Net.METHOD_
+qx.Const.CORE_=qx.constant.Core.
+qx.Const.NODE_=qx.constant.Node.
+qx.Const.BORDER_STYLE_=qx.renderer.border.Border.STYLE_
+qx.Const.FONT_STYLE_=qx.renderer.font.Font.STYLE_
+qx.Const.HTML_=qx.constant.Html.
+qx.Const.TYPEOF_=qx.constant.Type.
+qx.Const.IMAGE_BLANK=qx.manager.object.ImageManager.BLANK
+qx.Const.CURSOR_=qx.constant.Style.CURSOR_
+qx.Const.OVERFLOW_VALUE_=qx.constant.Style.OVERFLOW_
+qx.Const.MIMETYPE_=qx.constant.Mime.
+qx.Const.ORIENTATION_=qx.constant.Layout.ORIENTATION_
+qx.Const.ALIGN_=qx.constant.Layout.ALIGN_
+qx.Const.STATE_OVER=qx.ui.core.Widget.STATE_OVER
+qx.Const.STATE_FOCUSED=qx.ui.core.Widget.STATE_FOCUSED
+qx.Const.STATE_DISABLED=qx.ui.core.Widget.STATE_DISABLED
+qx.Const.STATE_CHECKED=qx.ui.form.Button.STATE_CHECKED
+qx.Const.STATE_PRESSED=qx.ui.form.Button.STATE_PRESSED
+qx.Const.STATE_ABANDONED=qx.ui.form.Button.STATE_ABANDONED
+qx.Const.STATE_SELECTED=qx.manager.selection.SelectionManager.STATE_SELECTED
+qx.Const.STATE_ANCHOR=qx.manager.selection.SelectionManager.STATE_ANCHOR
+qx.Const.STATE_LEAD=qx.manager.selection.SelectionManager.STATE_LEAD
+qx.Const.STATE_ACTIVE=qx.ui.window.Window.STATE_ACTIVE
+qx.Const.STATE_MAXIMIZED=qx.ui.window.Window.STATE_MAXIMIZED
+
+qx.Const.PROPERTY_CLASSNAME=qx.ui.core.Widget.PROPERTY_CLASSNAME
+qx.Const.PROPERTY_BORDERX=qx.ui.core.Widget.PROPERTY_BORDERX
+qx.Const.PROPERTY_BORDERY=qx.ui.core.Widget.PROPERTY_BORDERY
+qx.Const.PROPERTY_BORDERWIDTHX=qx.ui.core.Widget.PROPERTY_BORDERWIDTHX
+qx.Const.PROPERTY_BORDERWIDTHY=qx.ui.core.Widget.PROPERTY_BORDERWIDTHY
+qx.Const.PROPERTY_PARENT_PADDINGLEFT=qx.ui.core.Widget.PROPERTY_PARENT_PADDINGLEFT
+qx.Const.PROPERTY_PARENT_PADDINGRIGHT=qx.ui.core.Widget.PROPERTY_PARENT_PADDINGRIGHT
+qx.Const.PROPERTY_PARENT_PADDINGTOP=qx.ui.core.Widget.PROPERTY_PARENT_PADDINGTOP
+qx.Const.PROPERTY_PARENT_PADDINGBOTTOM=qx.ui.core.Widget.PROPERTY_PARENT_PADDINGBOTTOM
+
+qx.Const.PROPERTY_FILTER=qx.constant.Style.PROPERTY_FILTER
+qx.Const.PROPERTY_DISPLAY=qx.constant.Style.PROPERTY_DISPLAY
+qx.Const.PROPERTY_POSITION=qx.constant.Style.PROPERTY_POSITION
+qx.Const.PROPERTY_VISIBILITY=qx.constant.Style.PROPERTY_VISIBILITY
+qx.Const.PROPERTY_DISABLED=qx.constant.Style.PROPERTY_DISABLED
+qx.Const.PROPERTY_LINEHEIGHT=qx.constant.Style.PROPERTY_LINEHEIGHT
+qx.Const.PROPERTY_TEXTALIGN=qx.constant.Style.PROPERTY_TEXTALIGN
+qx.Const.PROPERTY_WHITESPACE=qx.constant.Style.PROPERTY_WHITESPACE
+qx.Const.PROPERTY_PADDING=qx.constant.Style.PROPERTY_PADDING
+qx.Const.PROPERTY_OVERFLOW_BOTH=qx.constant.Style.PROPERTY_OVERFLOW_BOTH
+qx.Const.PROPERTY_OVERFLOW_TEXT=qx.constant.Style.PROPERTY_OVERFLOW_TEXT
+qx.Const.PROPERTY_OVERFLOW_HORIZONTAL=qx.constant.Style.PROPERTY_OVERFLOW_HORIZONTAL
+qx.Const.PROPERTY_OVERFLOW_VERTICAL=qx.constant.Style.PROPERTY_OVERFLOW_VERTICAL
+
+# Should be the last one
+qx.Const.PROPERTY_=qx.OO.PROPERTY_
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/04-events.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/04-events.dat
new file mode 100644 (file)
index 0000000..7bdd26f
--- /dev/null
@@ -0,0 +1,56 @@
+qx.Const.EVENT_TYPE_MOUSEOVER=qx.constant.Event.MOUSEOVER
+qx.Const.EVENT_TYPE_MOUSEMOVE=qx.constant.Event.MOUSEMOVE
+qx.Const.EVENT_TYPE_MOUSEOUT=qx.constant.Event.MOUSEOUT
+qx.Const.EVENT_TYPE_MOUSEDOWN=qx.constant.Event.MOUSEDOWN
+qx.Const.EVENT_TYPE_MOUSEUP=qx.constant.Event.MOUSEUP
+qx.Const.EVENT_TYPE_MOUSEWHEEL=qx.constant.Event.MOUSEWHEEL
+qx.Const.EVENT_TYPE_CLICK=qx.constant.Event.CLICK
+qx.Const.EVENT_TYPE_DBLCLICK=qx.constant.Event.DBLCLICK
+qx.Const.EVENT_TYPE_CONTEXTMENU=qx.constant.Event.CONTEXTMENU
+qx.Const.EVENT_TYPE_KEYDOWN=qx.constant.Event.KEYDOWN
+qx.Const.EVENT_TYPE_KEYPRESS=qx.constant.Event.KEYPRESS
+qx.Const.EVENT_TYPE_KEYUP=qx.constant.Event.KEYUP
+
+qx.Const.EVENT_TYPE_BLUR=qx.constant.Event.BLUR
+qx.Const.EVENT_TYPE_FOCUS=qx.constant.Event.FOCUS
+qx.Const.EVENT_TYPE_SELECT=qx.constant.Event.SELECT
+qx.Const.EVENT_TYPE_SCROLL=qx.constant.Event.SCROLL
+qx.Const.EVENT_TYPE_INPUT=qx.constant.Event.INPUT
+qx.Const.EVENT_TYPE_CHANGE=qx.constant.Event.CHANGE
+
+qx.Const.EVENT_TYPE_ERROR=qx.constant.Event.ERROR
+qx.Const.EVENT_TYPE_RESIZE=qx.constant.Event.RESIZE
+qx.Const.EVENT_TYPE_INTERVAL=qx.constant.Event.INTERVAL
+qx.Const.EVENT_TYPE_EXECUTE=qx.constant.Event.EXECUTE
+qx.Const.EVENT_TYPE_CREATE=qx.constant.Event.CREATE
+
+qx.Const.EVENT_TYPE_BEFOREAPPEAR=qx.constant.Event.BEFOREAPPEAR
+qx.Const.EVENT_TYPE_APPEAR=qx.constant.Event.APPEAR
+qx.Const.EVENT_TYPE_BEFOREDISAPPEAR=qx.constant.Event.BEFOREDISAPPEAR
+qx.Const.EVENT_TYPE_DISAPPEAR=qx.constant.Event.DISAPPEAR
+qx.Const.EVENT_TYPE_BEFOREINSERTDOM=qx.constant.Event.BEFOREINSERTDOM
+qx.Const.EVENT_TYPE_INSERTDOM=qx.constant.Event.INSERTDOM
+qx.Const.EVENT_TYPE_BEFOREREMOVEDOM=qx.constant.Event.BEFOREREMOVEDOM
+qx.Const.EVENT_TYPE_REMOVEDOM=qx.constant.Event.REMOVEDOM
+
+qx.Const.EVENT_TYPE_LOAD=qx.constant.Event.LOAD
+qx.Const.EVENT_TYPE_UNLOAD=qx.constant.Event.UNLOAD
+qx.Const.EVENT_TYPE_BEFOREUNLOAD=qx.constant.Event.BEFOREUNLOAD
+qx.Const.EVENT_TYPE_SUBMIT=qx.constant.Event.SUBMIT
+
+qx.Const.EVENT_TYPE_CREATED=qx.constant.Event.CREATED
+qx.Const.EVENT_TYPE_CONFIGURED=qx.constant.Event.CONFIGURED
+qx.Const.EVENT_TYPE_QUEUED=qx.constant.Event.QUEUED
+qx.Const.EVENT_TYPE_SENDING=qx.constant.Event.SENDING
+qx.Const.EVENT_TYPE_RECEIVING=qx.constant.Event.RECEIVING
+qx.Const.EVENT_TYPE_COMPLETED=qx.constant.Event.COMPLETED
+qx.Const.EVENT_TYPE_ABORTED=qx.constant.Event.ABORTED
+qx.Const.EVENT_TYPE_FAILED=qx.constant.Event.FAILED
+qx.Const.EVENT_TYPE_TIMEOUT=qx.constant.Event.TIMEOUT
+
+qx.Const.EVENT_TYPE_DRAGDROP=qx.constant.Event.DRAGDROP
+qx.Const.EVENT_TYPE_DRAGOVER=qx.constant.Event.DRAGOVER
+qx.Const.EVENT_TYPE_DRAGOUT=qx.constant.Event.DRAGOUT
+qx.Const.EVENT_TYPE_DRAGMOVE=qx.constant.Event.DRAGMOVE
+qx.Const.EVENT_TYPE_DRAGSTART=qx.constant.Event.DRAGSTART
+qx.Const.EVENT_TYPE_DRAGEND=qx.constant.Event.DRAGEND
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/05-util.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/05-util.dat
new file mode 100644 (file)
index 0000000..d26a57a
--- /dev/null
@@ -0,0 +1,47 @@
+\bQxUtil\.returnTrue\b = qx.util.Return.returnTrue
+\bQxUtil\.returnFalse\b = qx.util.Return.returnFalse
+\bQxUtil\.returnNull\b = qx.util.Return.returnNull
+\bQxUtil\.returnThis\b = qx.util.Return.returnThis
+\bQxUtil\.returnZero\b = qx.util.Return.returnZero
+\bQxUtil\.returnNegativeIndex\b = qx.util.Return.returnNegativeIndex
+
+\bQxUtil\.isValid\b = qx.util.Validation.isValid
+\bQxUtil\.isInvalid\b = qx.util.Validation.isInvalid
+\bQxUtil\.isValidNumber\b = qx.util.Validation.isValidNumber
+\bQxUtil\.isInvalidNumber\b = qx.util.Validation.isInvalidNumber
+\bQxUtil\.isValidString\b = qx.util.Validation.isValidString
+\bQxUtil\.isInvalidString\b = qx.util.Validation.isInvalidString
+\bQxUtil\.isValidArray\b = qx.util.Validation.isValidArray
+\bQxUtil\.isInvalidArray\b = qx.util.Validation.isInvalidArray
+\bQxUtil\.isValidObject\b = qx.util.Validation.isValidObject
+\bQxUtil\.isInvalidObject\b = qx.util.Validation.isInvalidObject
+\bQxUtil\.isValidNode\b = qx.util.Validation.isValidNode
+\bQxUtil\.isInvalidNode\b = qx.util.Validation.isInvalidNode
+\bQxUtil\.isValidElement\b = qx.util.Validation.isValidElement
+\bQxUtil\.isInvalidElement\b = qx.util.Validation.isInvalidElement
+\bQxUtil\.isValidFunction\b = qx.util.Validation.isValidFunction
+\bQxUtil\.isInvalidFunction\b = qx.util.Validation.isInvalidFunction
+\bQxUtil\.isValidBoolean\b = qx.util.Validation.isValidBoolean
+\bQxUtil\.isInvalidBoolean\b = qx.util.Validation.isInvalidBoolean
+\bQxUtil\.isValidStringOrNumber\b = qx.util.Validation.isValidStringOrNumber
+\bQxUtil\.isInvalidStringOrNumber\b = qx.util.Validation.isInvalidStringOrNumber
+
+\bQxUtil\._normalizeUmlautsRegExp\b = qx.util.Normalization._umlautsRegExp
+\bQxUtil\._normalizeUmlautsShortData\b = qx.util.Normalization._umlautsShortData
+\bQxUtil\._normalizeUmlautsShort\b = qx.util.Normalization._umlautsShort
+\bQxUtil\.normalizeUmlautsShort\b = qx.util.Normalization.umlautsShort
+\bQxUtil\._normalizeUmlautsLongData\b = qx.util.Normalization._umlautsLongData
+\bQxUtil\._normalizeUmlautsLong\b = qx.util.Normalization._umlautsLong
+\bQxUtil\.normalizeUmlautsLong\b = qx.util.Normalization.umlautsLong
+
+\bQxUtil\.isObjectEmpty\b = qx.lang.Object.isEmpty
+\bQxUtil\.isObjectMinLength\b = qx.lang.Object.hasMinLength
+\bQxUtil\.getObjectLength\b = qx.lang.Object.getLength
+\bQxUtil\.convertObjectKeysToArray\b = qx.lang.Object.getKeys
+\bQxUtil\.convertObjectKeysToString\b = qx.lang.Object.getKeysAsString
+\bQxUtil\.convertObjectValuesToArray\b = qx.lang.Object.getValues
+\bQxUtil\.convertArgumentsToArray\b = qx.lang.Array.fromArguments
+\bQxUtil\.convertShortHandToArray\b = qx.lang.Array.fromShortHand
+\bQxUtil\.mergeObjectWith\b = qx.lang.Object.mergeWith
+\bQxUtil\.mergeObjects\b = qx.lang.Object.merge
+\bQxUtil\.copyObject\b = qx.lang.Object.copy
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/06-main.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.6/patches/06-main.dat
new file mode 100644 (file)
index 0000000..acbd2a6
--- /dev/null
@@ -0,0 +1,7 @@
+window.application.main\s*\=\s*function\(\)[^\0]*?\{\s* = qx.core.Init.getInstance().defineMain(function() {\n
+
+\}\;[\n\s]*<\/script> = });</script>
+
+#this\.getClientWindow\(\)\.getClientDocument\(\) = qx.ui.core.ClientDocument.getInstance()
+
+#this\.add = qx.ui.core.ClientDocument.getInstance().add
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.7/patch.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/migration/0.7/patch.py
new file mode 100755 (executable)
index 0000000..885cafd
--- /dev/null
@@ -0,0 +1,381 @@
+#!/usr/bin/env python
+
+import sys, os
+
+# reconfigure path to import modules from modules subfolder
+sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])), "../../modules"))
+
+import tree, compiler, comment
+
+
+
+
+
+
+def getAssignment(elem):
+  if elem.parent.type == "right" and elem.parent.parent.type == "assignment":
+    return elem.parent.parent
+
+  return None
+
+
+def getName(elem):
+  # find last identifier
+  last = elem.getLastChild(False, True)
+
+  if last.type == "identifier":
+    return last.get("name")
+
+
+def getMode(var, classname):
+  # find last identifier
+  last = var.getLastChild(False, True)
+  prev = last.getPreviousSibling(False, True)
+
+  if prev.type == "identifier":
+    mode = prev.get("name")
+
+    if mode == "Proto":
+      return "members"
+    elif mode == "Class":
+      return "statics"
+
+  combined = []
+  length = var.getChildrenLength(True)
+  pos = length - 1
+  for iden in var.children:
+    if iden.type == "identifier":
+      combined.append(iden.get("name"))
+
+      # if variable starts with the classname and has one unique identifier afterwards
+      if ".".join(combined) == classname and pos == 1:
+        return "statics"
+
+      pos -= 1
+
+  return None
+
+
+def getNameOfAssignment(elem):
+  name = None
+
+  if elem.hasChild("left"):
+    left = elem.getChild("left")
+
+    if left.hasChild("variable"):
+      name = getName(left.getChild("variable"))
+
+  return name
+
+
+def getModeOfAssignment(elem, classname):
+  mode = None
+
+  if elem.hasChild("left"):
+    left = elem.getChild("left")
+
+    if left.hasChild("variable"):
+      var = left.getChild("variable")
+      mode = getMode(var, classname)
+
+  return mode
+
+
+def getAndRemovePropertyName(definition):
+  for keyValue in definition.children:
+    if keyValue.type == "keyvalue" and keyValue.get("key") == "name":
+      name = keyValue.getChild("value").getChild("constant").get("value")
+      keyValue.parent.removeChild(keyValue)
+      return name
+
+  print " * Could not extract property name!"
+  return None
+
+
+def createPair(key, value, commentParent=None):
+  par = tree.Node("keyvalue")
+  sub = tree.Node("value")
+
+  par.set("key", key)
+  par.addChild(sub)
+  sub.addChild(value)
+
+  if commentParent and commentParent.hasChild("commentsBefore"):
+    par.addChild(commentParent.getChild("commentsBefore"))
+
+  return par
+
+
+def patch(id, node):
+  if not node.hasChildren():
+    return False
+
+  classDefine, className, classMap, settingsMap, propertiesMap, membersMap, staticsMap = createClassDefine(id)
+  errorCounter = 0
+  pos = 0
+
+  while node.hasChildren() and pos < len(node.children):
+    child = node.children[pos]
+    breakBefore = child.get("breakBefore")
+    pos += 1
+
+    # Add instance and static methods
+    if child.type == "assignment":
+      if child.hasChild("right"):
+        right = child.getChild("right")
+        elem = right.getFirstChild(True, True)
+
+        name = getNameOfAssignment(child)
+        mode = getModeOfAssignment(child, id)
+
+        if mode in [ "members", "statics" ]:
+          if mode == "members":
+            pair = createPair(name, elem, child)
+            
+            if breakBefore:
+              pair.set("breakBefore", True)
+              
+            membersMap.addChild(pair)
+
+          elif mode == "statics":
+            # Special Handling of old singleton definition
+            if name == "getInstance":
+              pair = createPair("singleton", createConstant("boolean", "true"))
+              pair.addChild(createBlockComment("singleton"))
+
+              if breakBefore:
+                pair.set("breakBefore", True)
+
+              classMap.addChild(pair, 1)
+              
+            else:
+              pair = createPair(name, elem, child)
+  
+              if breakBefore:
+                pair.set("breakBefore", True)
+  
+              staticsMap.addChild(pair)
+
+          node.removeChild(child)
+          pos -= 1
+
+    elif child.type == "call":
+      oper = child.getChild("operand")
+      var = oper.getChild("variable")
+
+      if var:
+        lastIdentifier = var.getLastChild(False, True)
+        if lastIdentifier.type == "identifier":
+          name = lastIdentifier.get("name")
+          params = child.getChild("params")
+
+          if name in [ "addProperty", "changeProperty", "addCachedProperty", "addFastProperty" ]:
+            definition = params.getFirstChild(False, True)
+
+            if definition.type == "map":
+              if lastIdentifier.get("name") == "addFastProperty":
+                definition.addChild(createPair("fast", createConstant("boolean", "true")))
+              elif lastIdentifier.get("name") == "addCachedProperty":
+                definition.addChild(createPair("cached", createConstant("boolean", "true")))
+
+              name = getAndRemovePropertyName(definition)
+              pair = createPair(name, definition, child)
+              
+              if breakBefore:
+                pair.set("breakBefore", True)
+                            
+              propertiesMap.addChild(pair)
+    
+              node.removeChild(child)
+              pos -= 1
+              
+          elif name == "setDefault":
+            nameNode = params.getChildByPosition(0, True)
+            valueNode = params.getChildByPosition(1, True)
+            
+            name = nameNode.get("value")
+            
+            pair = createPair(name, valueNode, child)
+            
+            if breakBefore:
+              pair.set("breakBefore", True)
+
+            settingsMap.addChild(pair)
+
+            node.removeChild(child)
+            pos -= 1            
+
+          elif name == "defineClass":
+            if params.getFirstChild(False, True).get("value") != id:
+              print "    - The class seems to have a wrong definition!"
+              
+            # 3 params = name, superclass, constructor
+            # 2 params = name, map
+            # 1 param = name
+            
+            # Move class comment
+            if child.hasChild("commentsBefore"):
+              classDefine.addChild(child.getChild("commentsBefore"))
+
+            childrenLength = params.getChildrenLength(True)
+
+            if childrenLength == 2:
+              statics_new = params.getChildByPosition(1, True, True)
+
+              while statics_new.hasChildren():
+                staticsMap.addChild(statics_new.getFirstChild())
+
+              node.removeChild(child)
+              pos -= 1
+
+            elif childrenLength == 3:
+              ext = params.getChildByPosition(1, True, True)
+              construct = params.getChildByPosition(2, True, True)
+
+              extendPair = createPair("extend", ext)
+              constructPair = createPair("construct", construct)
+              
+              extendPair.addChild(createBlockComment("superclass"))
+              constructPair.addChild(createBlockComment("constructor"))              
+              
+              classMap.addChild(extendPair, 0)
+              classMap.addChild(constructPair, 1)
+
+              node.removeChild(child)
+              pos -= 1
+              
+          elif name == "define":
+            print "      - Class is already up-to-date."
+            return False
+
+    # Post-Check
+    if child.parent == node:
+      # print "      - Could not move element %s at line %s" % (child.type, child.get("line"))
+      errorCounter += 1
+
+
+  # Remove empty maps
+  if settingsMap.getChildrenLength() == 0:
+    keyvalue = settingsMap.parent.parent
+    classMap.removeChild(keyvalue)
+      
+  if propertiesMap.getChildrenLength() == 0:
+    keyvalue = propertiesMap.parent.parent
+    classMap.removeChild(keyvalue)
+
+  if membersMap.getChildrenLength() == 0:
+    keyvalue = membersMap.parent.parent
+    classMap.removeChild(keyvalue)
+
+  if staticsMap.getChildrenLength() == 0:
+    keyvalue = staticsMap.parent.parent
+    classMap.removeChild(keyvalue)
+
+  # Add new class definition
+  node.addChild(classDefine, 0)
+  
+  
+  
+  
+  if errorCounter > 0:
+    print "      - Could not convert %s elements." % errorCounter
+
+  # Debug
+  # print compiler.compile(node)
+  # print tree.nodeToXmlString(node)
+
+  # Return Modification
+  return True
+
+
+def createConstant(type, value):
+  constant = tree.Node("constant")
+  constant.set("constantType", type)
+  constant.set("value", value)
+
+  if type == "string":
+    constant.set("detail", "doublequotes")
+
+  return constant
+
+
+
+def createVariable(l):
+  var = tree.Node("variable")
+
+  for name in l:
+    iden = tree.Node("identifier")
+    iden.set("name", name)
+    var.addChild(iden)
+
+  return var
+
+def createClassDefineCore(id):
+  call = tree.Node("call")
+  oper = tree.Node("operand")
+  para = tree.Node("params")
+  con = createConstant("string", id)
+  args = tree.Node("map")
+
+  call.addChild(oper)
+  call.addChild(para)
+
+  oper.addChild(createVariable(["qx", "Clazz", "define"]))
+
+  para.addChild(con)
+  para.addChild(args)
+
+  return call, con, args
+
+
+def createClassDefine(id):
+  classDefine, className, classMap = createClassDefineCore(id)
+
+  settingsMap = tree.Node("map")
+  settingsPair = createPair("settings", settingsMap)
+
+  propertiesMap = tree.Node("map")
+  propertiesPair = createPair("properties", propertiesMap)
+
+  membersMap = tree.Node("map")
+  membersPair = createPair("members", membersMap)
+
+  staticsMap = tree.Node("map")
+  staticsPair = createPair("statics", staticsMap)
+  
+  settingsPair.addChild(createBlockComment("settings"))
+  propertiesPair.addChild(createBlockComment("properties"))
+  membersPair.addChild(createBlockComment("members"))
+  staticsPair.addChild(createBlockComment("statics"))
+
+  classMap.addChild(settingsPair)
+  classMap.addChild(propertiesPair)
+  classMap.addChild(membersPair)
+  classMap.addChild(staticsPair)
+
+  return classDefine, className, classMap, settingsMap, propertiesMap, membersMap, staticsMap
+
+
+def createBlockComment(txt):
+  l = "*****************************************************************************"
+  
+  s = ""
+  s += "/*\n"
+  s += "%s\n" % l
+  s += "**** %s %s\n" % (txt.upper(), "*" * (len(l) - len(txt) - 6))
+  s += "%s\n" % l
+  s += "*/"
+  
+  bef = tree.Node("commentsBefore")
+  com = tree.Node("comment")
+  
+  bef.addChild(com)
+  
+  com.set("multiline", True)
+  com.set("connection", "before")
+  com.set("text", s)
+  com.set("detail", comment.getFormat(s))
+  
+  return bef
+
+  
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/api.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/api.py
new file mode 100755 (executable)
index 0000000..3d7bee8
--- /dev/null
@@ -0,0 +1,779 @@
+#!/usr/bin/env python
+
+import sys, os, re, optparse
+import tree, treegenerator, tokenizer, comment
+
+
+
+class DocException (Exception):
+  def __init__ (self, msg, syntaxItem):
+    Exception.__init__(self, msg)
+    self.node = syntaxItem
+
+
+
+def createDoc(syntaxTree, docTree = None):
+  if not docTree:
+    docTree = tree.Node("doctree")
+
+  try:
+    currClassNode = None
+    if not syntaxTree.hasChildren():
+      return docTree
+
+    for item in syntaxTree.children:
+      if item.type == "assignment":
+        leftItem = item.getFirstListChild("left")
+        rightItem = item.getFirstListChild("right")
+        if leftItem.type == "variable":
+          if currClassNode and len(leftItem.children) == 3 and leftItem.children[0].get("name") == "qx":
+            if leftItem.children[1].get("name") == "Proto" and rightItem.type == "function":
+              # It's a method definition
+              handleMethodDefinition(item, False, currClassNode)
+            elif leftItem.children[1].get("name") == "Class":
+              if rightItem.type == "function":
+                handleMethodDefinition(item, True, currClassNode)
+              elif leftItem.children[2].get("name").isupper():
+                handleConstantDefinition(item, currClassNode)
+          elif currClassNode and assembleVariable(leftItem).startswith(currClassNode.get("fullName")):
+            # This is definition of the type "mypackage.MyClass.bla = ..."
+            if rightItem.type == "function":
+              handleMethodDefinition(item, True, currClassNode)
+            elif leftItem.children[len(leftItem.children) - 1].get("name").isupper():
+              handleConstantDefinition(item, currClassNode)
+
+      elif item.type == "call":
+        operand = item.getChild("operand", False)
+        if operand:
+          var = operand.getChild("variable", False)
+          if var and len(var.children) == 3 and var.children[0].get("name") == "qx" and var.children[1].get("name") == "OO":
+            methodName = var.children[2].get("name")
+            if methodName == "defineClass":
+              currClassNode = handleClassDefinition(docTree, item)
+            elif methodName == "addProperty" or methodName == "addFastProperty":
+              # these are private and should be marked if listed, otherwise just hide them (wpbasti)
+              #or methodName == "addCachedProperty" or methodName == "changeProperty":
+              handlePropertyDefinition(item, currClassNode)
+      #elif item.type == "function":
+      #  name = item.get("name", False)
+      #  if name and name[0].isupper():
+      #    # This is an old class definition "function MyClass (...)"
+      #    currClassNode = handleClassDefinition(docTree, item)
+
+  except Exception:
+    exc = sys.exc_info()[1]
+    msg = ""
+
+    if hasattr(exc, "node"):
+      (line, column) = getLineAndColumnFromSyntaxItem(exc.node)
+      file = getFileFromSyntaxItem(exc.node)
+      if line != None or file != None:
+        msg = str(exc) + "\n      " + str(file) + ", Line: " + str(line) + ", Column: " + str(column)
+        
+    if msg == "":
+      raise Exception, "Unknown reason", sys.exc_info()[2]
+      
+    else:
+      print
+      print "    - Failed: %s" % msg
+      sys.exit(1)
+
+  return docTree
+
+
+
+def variableIsClassName(varItem):
+  length = len(varItem.children)
+  for i in range(length):
+    varChild = varItem.children[i]
+    if not varChild.type == "identifier":
+      return False
+    if i < length - 1:
+      # This is not the last identifier -> It must a package (= lowercase)
+      if not varChild.get("name").islower():
+        return False
+    else:
+      # This is the last identifier -> It must the class name (= first letter uppercase)
+      if not varChild.get("name")[0].isupper():
+        return False
+  return True
+
+
+
+
+
+def assembleVariable(variableItem):
+  if variableItem.type != "variable":
+    raise DocException("'variableItem' is no variable", variableItem)
+
+  assembled = ""
+  for child in variableItem.children:
+    if len(assembled) != 0:
+      assembled += "."
+    assembled += child.get("name")
+
+  return assembled
+
+
+
+def handleClassDefinition(docTree, item):
+  params = item.getChild("params")
+
+  paramsLen = len(params.children);
+  if paramsLen == 1:
+    superClassName = "Object"
+    ctorItem = None
+  elif paramsLen == 2:
+    superClassName = "Object"
+    ctorItem = params.children[1]
+  elif paramsLen == 3:
+    superClassName = assembleVariable(params.children[1])
+    ctorItem = params.children[2]
+  else:
+    raise DocException("defineClass call has more than three parameters: " + str(len(params.children)), item)
+
+  className = params.children[0].get("value")
+  classNode = getClassNode(docTree, className)
+
+  if superClassName != "Object":
+    superClassNode = getClassNode(docTree, superClassName)
+    childClasses = superClassNode.get("childClasses", False)
+    if childClasses:
+      childClasses += "," + className
+    else:
+      childClasses = className
+    superClassNode.set("childClasses", childClasses)
+
+    classNode.set("superClass", superClassName)
+
+  commentAttributes = comment.parseNode(item)
+
+  for attrib in commentAttributes:
+    if attrib["category"] == "event":
+      # Add the event
+      if comment.attribHas(attrib, "name") and comment.attribHas(attrib, "type"):
+        addEventNode(classNode, item, attrib);
+      else:
+        addError(classNode, "Documentation contains malformed event attribute.", item)
+
+  # Add the constructor
+  if ctorItem and ctorItem.type == "function":
+    ctor = handleFunction(ctorItem, commentAttributes, classNode)
+    ctor.set("isCtor", True)
+    classNode.addListChild("constructor", ctor)
+
+    # Check for methods defined in the constructor
+    # (for method definition style that supports real private methods)
+    ctorBlock = ctorItem.getChild("body").getChild("block")
+
+    if ctorBlock.hasChildren():
+      for item in ctorBlock.children:
+        if item.type == "assignment":
+          leftItem = item.getFirstListChild("left")
+          rightItem = item.getFirstListChild("right")
+
+          # It's a method definition
+          if leftItem.type == "variable" and len(leftItem.children) == 2 and (leftItem.children[0].get("name") == "this" or leftItem.children[0].get("name") == "self") and rightItem.type == "function":
+            handleMethodDefinition(item, False, classNode)
+
+  elif ctorItem and ctorItem.type == "map":
+    for keyvalueItem in ctorItem.children:
+      valueItem = keyvalueItem.getChild("value").getFirstChild()
+      if (valueItem.type == "function"):
+        handleMethodDefinition(keyvalueItem, True, classNode)
+      else:
+        handleConstantDefinition(keyvalueItem, classNode)
+
+  return classNode;
+
+
+
+
+
+
+
+def handlePropertyDefinition(item, classNode):
+  paramsMap = item.getChild("params").getChild("map")
+
+  node = tree.Node("property")
+  node.set("name", paramsMap.getChildByAttribute("key", "name").getChild("value").getChild("constant").get("value"))
+
+  propType = paramsMap.getChildByAttribute("key", "type", False)
+  if propType:
+    node.set("type", getType(propType.getChild("value").getFirstChild()))
+
+  allowNull = paramsMap.getChildByAttribute("key", "allowNull", False)
+  if allowNull:
+    node.set("allowNull", allowNull.getChild("value").getChild("constant").get("value"))
+
+  defaultValue = paramsMap.getChildByAttribute("key", "defaultValue", False)
+  if defaultValue:
+    node.set("defaultValue", getValue(defaultValue.getFirstListChild("value")))
+
+  getAlias = paramsMap.getChildByAttribute("key", "getAlias", False)
+  if getAlias:
+    node.set("getAlias", getAlias.getChild("value").getChild("constant").get("value"))
+
+  setAlias = paramsMap.getChildByAttribute("key", "setAlias", False)
+  if setAlias:
+    node.set("setAlias", setAlias.getChild("value").getChild("constant").get("value"))
+
+  unitDetection = paramsMap.getChildByAttribute("key", "unitDetection", False)
+  if unitDetection:
+    node.set("unitDetection", unitDetection.getChild("value").getChild("constant").get("value"))
+
+  instance = paramsMap.getChildByAttribute("key", "instance", False)
+  if instance:
+    node.set("instance", instance.getChild("value").getChild("constant").get("value"))
+
+  classname = paramsMap.getChildByAttribute("key", "classname", False)
+  if classname:
+    node.set("classname", classname.getChild("value").getChild("constant").get("value"))
+
+  possibleValues = paramsMap.getChildByAttribute("key", "possibleValues", False)
+  if possibleValues:
+    array = possibleValues.getChild("value").getChild("array")
+    values = ""
+    for arrayItem in array.children:
+      if len(values) != 0:
+        values += ", "
+      values += getValue(arrayItem)
+    node.set("possibleValues", values)
+
+  # If the description has a type specified then take this type
+  # (and not the one extracted from the paramsMap)
+  commentAttributes = comment.parseNode(item)
+  addTypeInfo(node, comment.getAttrib(commentAttributes, "description"), item)
+
+  classNode.addListChild("properties", node)
+
+
+
+def getValue(item):
+  value = None
+  if item.type == "constant":
+    if item.get("constantType") == "string":
+      value = '"' + item.get("value") + '"'
+    else:
+      value = item.get("value")
+  elif item.type == "variable":
+    value = assembleVariable(item)
+  elif item.type == "operation" and item.get("operator") == "SUB":
+    # E.g. "-1" or "-Infinity"
+    value = "-" + getValue(item.getChild("first").getFirstChild())
+  if value == None:
+    value = "[Unsupported item type: " + item.type + "]"
+
+  return value
+
+
+
+def handleMethodDefinition(item, isStatic, classNode):
+  if item.type == "assignment":
+    # This is a "normal" method definition
+    leftItem = item.getFirstListChild("left")
+    name = leftItem.children[len(leftItem.children) - 1].get("name")
+    functionItem = item.getFirstListChild("right")
+  elif item.type == "keyvalue":
+    # This is a method definition of a map-style class (like qx.Const)
+    name = item.get("key")
+    functionItem = item.getFirstListChild("value")
+
+  commentAttributes = comment.parseNode(item)
+
+  node = handleFunction(functionItem, commentAttributes, classNode)
+  node.set("name", name)
+
+  isPublic = name[0] != "_"
+  listName = "methods"
+  if isStatic:
+    node.set("isStatic", True)
+    listName += "-static"
+  if isPublic:
+    listName += "-pub"
+  else:
+    listName += "-prot"
+
+  classNode.addListChild(listName, node)
+
+
+
+def handleConstantDefinition(item, classNode):
+  if (item.type == "assignment"):
+    # This is a "normal" constant definition
+    leftItem = item.getFirstListChild("left")
+    name = leftItem.children[len(leftItem.children) - 1].get("name")
+  elif (item.type == "keyvalue"):
+    # This is a constant definition of a map-style class (like qx.Const)
+    name = item.get("key")
+
+  node = tree.Node("constant")
+  node.set("name", name)
+
+  commentAttributes = comment.parseNode(item)
+  addTypeInfo(node, comment.getAttrib(commentAttributes, "description"), item)
+
+  classNode.addListChild("constants", node)
+
+
+
+def handleFunction(funcItem, commentAttributes, classNode):
+  if funcItem.type != "function":
+    raise DocException("'funcItem' is no function", funcItem)
+
+  node = tree.Node("method")
+
+  # Read the parameters
+  params = funcItem.getChild("params", False)
+  if params and params.hasChildren():
+    for param in params.children:
+      paramNode = tree.Node("param")
+      paramNode.set("name", param.getFirstChild().get("name"))
+      node.addListChild("params", paramNode)
+
+  # Check whether the function is abstract
+  bodyBlockItem = funcItem.getChild("body").getFirstChild();
+  if bodyBlockItem.type == "block" and bodyBlockItem.hasChildren():
+    firstStatement = bodyBlockItem.children[0];
+    if firstStatement.type == "throw":
+      # The first statement of the function is a throw statement
+      # -> The function is abstract
+      node.set("isAbstract", True)
+
+  if len(commentAttributes) == 0:
+    addError(node, "Documentation is missing.", funcItem)
+    return node
+
+  # Read all description, param and return attributes
+  for attrib in commentAttributes:
+    # Add description
+    if attrib["category"] == "description":
+      descNode = tree.Node("desc").set("text", attrib["text"])
+      node.addChild(descNode)
+
+    elif attrib["category"] == "param":
+      if not attrib.has_key("name"):
+        raise DocException("Missing name of parameter.", funcItem)
+      
+      # Find the matching param node
+      paramName = attrib["name"]
+      paramNode = node.getListChildByAttribute("params", "name", paramName, False)
+
+      if not paramNode:
+        addError(node, "Contains information for a non-existing parameter <code>%s</code>." % paramName, funcItem)
+        continue
+
+      addTypeInfo(paramNode, attrib, funcItem)
+
+    elif attrib["category"] == "return":
+      returnNode = tree.Node("return")
+      node.addChild(returnNode)
+
+      addTypeInfo(returnNode, attrib, funcItem)
+
+  # Check for documentation errors
+  # Check whether all parameters have been documented
+  if node.hasChild("params"):
+    paramsListNode = node.getChild("params");
+    for paramNode in paramsListNode.children:
+      if not paramNode.getChild("desc", False):
+        addError(node, "Parameter %s is not documented." % paramNode.get("name"), funcItem)
+
+  return node
+
+
+
+def addTypeInfo(node, commentAttrib=None, item=None):
+  if commentAttrib == None:
+    if node.type == "param":
+      addError(node, "Parameter <code>%s</code> in not documented." % commentAttrib.get("name"), item)
+
+    elif node.type == "return":
+      addError(node, "Return value is not documented.", item)
+
+    else:
+      addError(node, "Documentation is missing.", item)
+
+    return
+
+  # add description
+  node.addChild(tree.Node("desc").set("text", commentAttrib["text"]))
+
+  # add types
+  if commentAttrib.has_key("type"):
+    typesNode = tree.Node("types")
+    node.addChild(typesNode)
+
+    for item in commentAttrib["type"]:
+      itemNode = tree.Node("entry")
+      typesNode.addChild(itemNode)
+
+      itemNode.set("type", item["type"])
+
+      if item["dimensions"] != 0:
+        itemNode.set("dimensions", item["dimensions"])
+
+  # add default value
+  if commentAttrib.has_key("default"):
+    defaultValue = commentAttrib["default"]
+    if defaultValue != None:
+      # print "defaultValue: %s" % defaultValue
+      node.set("defaultValue", defaultValue)
+
+
+
+
+
+def addEventNode(classNode, classItem, commentAttrib):
+  node = tree.Node("event")
+
+  node.set("name", commentAttrib["name"])
+  node.addChild(tree.Node("desc").set("text", commentAttrib["text"]))
+
+  # add types
+  if commentAttrib.has_key("type"):
+    typesNode = tree.Node("types")
+    node.addChild(typesNode)
+
+    for item in commentAttrib["type"]:
+      itemNode = tree.Node("entry")
+      typesNode.addChild(itemNode)
+
+      itemNode.set("type", item["type"])
+
+      if item["dimensions"] != 0:
+        itemNode.set("dimensions", item["dimensions"])
+
+  classNode.addListChild("events", node)
+
+
+
+
+def addError(node, msg, syntaxItem):
+  # print ">>> %s" % msg
+
+  errorNode = tree.Node("error")
+  errorNode.set("msg", msg)
+
+  (line, column) = getLineAndColumnFromSyntaxItem(syntaxItem)
+  if line:
+    errorNode.set("line", line)
+
+    if column:
+      errorNode.set("column", column)
+
+  node.addListChild("errors", errorNode)
+  node.set("hasError", True)
+
+
+
+def getLineAndColumnFromSyntaxItem(syntaxItem):
+  line = None
+  column = None
+
+  while line == None and column == None and syntaxItem:
+    line = syntaxItem.get("line", False)
+    column = syntaxItem.get("column", False)
+
+    if syntaxItem.hasParent():
+      syntaxItem = syntaxItem.parent
+    else:
+      syntaxItem = None
+
+  return line, column
+
+
+def getFileFromSyntaxItem(syntaxItem):
+  file = None
+  while file == None and syntaxItem:
+    file = syntaxItem.get("file", False)
+    if hasattr(syntaxItem, "parent"):
+      syntaxItem = syntaxItem.parent
+    else:
+      syntaxItem = None
+  return file
+
+
+def getType(item):
+  if item.type == "constant" and item.get("constantType") == "string":
+    val = item.get("value")
+    
+    if val == "object":
+      val = "Object"
+    elif val == "function":
+      val = "Function"
+    
+    return val
+  else:
+    raise DocException("Can't gess type. type is neither string nor variable: " + item.type, item)
+
+
+def getClassNode(docTree, className):
+  splits = className.split(".")
+
+  currPackage = docTree
+  length = len(splits)
+  for i in range(length):
+    split = splits[i]
+
+    if (i < length - 1):
+      # This is a package name -> Get the right package
+      childPackage = currPackage.getListChildByAttribute("packages", "name", split, False)
+      if not childPackage:
+        childPackageName = ".".join(splits[:-(length-i-1)])
+
+        # The package does not exist -> Create it
+        childPackage = tree.Node("package")
+        childPackage.set("name", split)
+        childPackage.set("fullName", childPackageName)
+        childPackage.set("packageName", childPackageName.replace("." + split, ""))
+
+        currPackage.addListChild("packages", childPackage)
+
+      # Update current package
+      currPackage = childPackage
+
+    else:
+      # This is a class name -> Get the right class
+      classNode = currPackage.getListChildByAttribute("classes", "name", split, False)
+      if not classNode:
+        # The class does not exist -> Create it
+        classNode = tree.Node("class")
+        classNode.set("name", split)
+        classNode.set("fullName", className)
+        classNode.set("packageName", className.replace("." + split, ""))
+        currPackage.addListChild("classes", classNode)
+
+      return classNode
+
+
+
+def postWorkPackage(docTree, packageNode):
+  childHasError = False
+
+  packages = packageNode.getChild("packages", False)
+  if packages:
+    packages.children.sort(nameComparator)
+    for node in packages.children:
+      hasError = postWorkPackage(docTree, node)
+      if hasError:
+        childHasError = True
+
+  classes = packageNode.getChild("classes", False)
+  if classes:
+    classes.children.sort(nameComparator)
+    for node in classes.children:
+      hasError = postWorkClass(docTree, node)
+      if hasError:
+        childHasError = True
+
+  if childHasError:
+    packageNode.set("hasWarning", True)
+
+  return childHasError
+
+
+
+def postWorkClass(docTree, classNode):
+  # Sort child classes
+  childClasses = classNode.get("childClasses", False)
+  if childClasses:
+    classArr = childClasses.split(",")
+    classArr.sort()
+    childClasses = ",".join(classArr)
+    classNode.set("childClasses", childClasses)
+
+  # Remove the property-modifier-methods
+  removePropertyModifiers(classNode)
+
+  # Mark overridden items
+  postWorkItemList(docTree, classNode, "properties", True)
+  postWorkItemList(docTree, classNode, "events", False)
+  postWorkItemList(docTree, classNode, "methods-pub", True)
+  postWorkItemList(docTree, classNode, "methods-prot", True)
+  postWorkItemList(docTree, classNode, "methods-static-pub", False)
+  postWorkItemList(docTree, classNode, "methods-static-prot", False)
+
+  # Check whether the class is static
+  superClassName = classNode.get("superClass", False)
+  if (superClassName == None or superClassName == "QxObject") \
+    and classNode.getChild("properties", False) == None \
+    and classNode.getChild("methods-pub", False) == None \
+    and classNode.getChild("methods-prot", False) == None:
+    # This class has is static
+    classNode.set("isStatic", True)
+
+  # Check whether the class is abstract
+  if isClassAbstract(docTree, classNode, {}):
+    classNode.set("isAbstract", True)
+
+  # Check for errors
+  childHasError = listHasError(classNode, "constructor") or listHasError(classNode, "properties") \
+    or listHasError(classNode, "methods-pub") or listHasError(classNode, "methods-prot") \
+    or listHasError(classNode, "methods-static-pub") or listHasError(classNode, "methods-static-prot") \
+    or listHasError(classNode, "constants")
+
+  if childHasError:
+    classNode.set("hasWarning", True)
+
+  return childHasError
+
+
+
+def isClassAbstract(docTree, classNode, visitedMethodNames):
+  if containsAbstractMethods(classNode.getChild("methods-pub", False), visitedMethodNames) \
+    or containsAbstractMethods(classNode.getChild("methods-prot", False), visitedMethodNames):
+    # One of the methods is abstract
+    return True
+
+  # No abstract methods found -> Check whether the super class has abstract
+  # methods that haven't been overridden
+  superClassName = classNode.get("superClass", False)
+  if superClassName:
+    superClassNode = getClassNode(docTree, superClassName)
+    return isClassAbstract(docTree, superClassNode, visitedMethodNames)
+
+
+
+def containsAbstractMethods(methodListNode, visitedMethodNames):
+  if methodListNode:
+    for methodNode in methodListNode.children:
+      name = methodNode.get("name")
+      if not name in visitedMethodNames:
+        visitedMethodNames[name] = True
+        if methodNode.get("isAbstract", False):
+          return True
+
+  return False
+
+
+
+def removePropertyModifiers(classNode):
+  propertiesList = classNode.getChild("properties", False)
+  methodsProtList = classNode.getChild("methods-prot", False)
+  if propertiesList and methodsProtList:
+    for propNode in propertiesList.children:
+      name = propNode.get("name")
+      upperName = name[0].upper() + name[1:]
+
+      modifyNode = methodsProtList.getChildByAttribute("name", "_modify" + upperName, False)
+      if modifyNode:
+        methodsProtList.removeChild(modifyNode);
+
+      changeNode = methodsProtList.getChildByAttribute("name", "_change" + upperName, False)
+      if changeNode:
+        methodsProtList.removeChild(changeNode);
+
+      checkNode = methodsProtList.getChildByAttribute("name", "_check" + upperName, False)
+      if checkNode:
+        methodsProtList.removeChild(checkNode);
+
+    if not methodsProtList.hasChildren():
+      classNode.removeChild(methodsProtList)
+
+
+
+def postWorkItemList(docTree, classNode, listName, overridable):
+  """Does the post work for a list of properties or methods."""
+
+  # Sort the list
+  sortByName(classNode, listName)
+
+  # Post work all items
+  listNode = classNode.getChild(listName, False)
+  if listNode:
+    for itemNode in listNode.children:
+      name = itemNode.get("name")
+
+      # Check whether this item is overridden and try to inherit the
+      # documentation from the next matching super class
+      if overridable:
+        superClassName = classNode.get("superClass", False)
+        overriddenFound = False
+        docFound = (itemNode.getChild("desc", False) != None)
+        while superClassName and (not overriddenFound or not docFound):
+          superClassNode = getClassNode(docTree, superClassName)
+          superItemNode = superClassNode.getListChildByAttribute(listName, "name", name, False)
+
+          if superItemNode:
+            if not docFound:
+              # This super item has a description
+              # -> Check whether the parameters match
+              # NOTE: paramsMatch works for properties, too
+              #       (Because both compared properties always have no params)
+              if paramsMatch(itemNode, superItemNode):
+                # The parameters match -> We can use the documentation of the super class
+                itemNode.set("docFrom", superClassName)
+                docFound = (superItemNode.getChild("desc", False) != None)
+
+                # Remove previously recorded documentation errors from the item
+                # (Any documentation errors will be recorded in the super class)
+                removeErrors(itemNode)
+            if not overriddenFound:
+              # This super class has the item defined -> Add a overridden attribute
+              itemNode.set("overriddenFrom", superClassName)
+              overriddenFound = True
+
+          # Check the next superclass
+          superClassName = superClassNode.get("superClass", False)
+
+        if not docFound and itemNode.get("overriddenFrom", False):
+          # This item is overridden, but we didn't find any documentation in the
+          # super classes -> Add a warning
+          itemNode.set("hasWarning", True)
+
+
+
+def paramsMatch(methodNode1, methodNode2):
+  params1 = methodNode1.getChild("params1", False)
+  params2 = methodNode1.getChild("params2", False)
+
+  if params1 == None or params2 == None:
+    # One method has no parameters -> The params match if both are None
+    return params1 == params2
+  elif len(params1.children) != len(params2.children):
+    # The param count is different -> The params don't match
+    return False
+  else:
+    for i in range(len(params1.children)):
+      par1 = params1.children[i]
+      par2 = params2.children[i]
+      if (par1.get("name") != par2.get("name")):
+        # These parameters don't match
+        return False
+
+    # All tests passed
+    return True
+
+
+
+def removeErrors(node):
+  errors = node.getChild("errors", False)
+  if errors:
+    node.removeChild(errors)
+    node.remove("hasError")
+
+
+
+def sortByName(node, listName):
+  listNode = node.getChild(listName, False)
+  if listNode:
+    listNode.children.sort(nameComparator)
+
+
+
+def nameComparator(node1, node2):
+  name1 = node1.get("name").lower()
+  name2 = node2.get("name").lower()
+  return cmp(name1, name2)
+
+
+
+def listHasError(node, listName):
+  listNode = node.getChild(listName, False)
+  if listNode:
+    for childNode in listNode.children:
+      if childNode.get("hasError", False):
+        return True
+
+  return False
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/api.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/api.pyc
new file mode 100644 (file)
index 0000000..2bb39fc
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/api.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/comment.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/comment.py
new file mode 100755 (executable)
index 0000000..b27a10d
--- /dev/null
@@ -0,0 +1,906 @@
+#!/usr/bin/env python
+
+import sys, string, re
+import config, tree, textile
+
+
+
+S_INLINE_COMMENT = "//.*"
+R_INLINE_COMMENT = re.compile("^" + S_INLINE_COMMENT + "$")
+
+R_INLINE_COMMENT_TIGHT = re.compile("^//\S+")
+R_INLINE_COMMENT_PURE = re.compile("^//")
+
+
+
+S_BLOCK_COMMENT = "/\*([^*]|[\n]|(\*+([^*/]|[\n])))*\*+/"
+R_BLOCK_COMMENT = re.compile("^" + S_BLOCK_COMMENT + "$")
+
+R_BLOCK_COMMENT_JAVADOC = re.compile("^/\*\*")
+R_BLOCK_COMMENT_QTDOC = re.compile("^/\*!")
+R_BLOCK_COMMENT_AREA = re.compile("^/\*\n\s*\*\*\*\*\*")
+R_BLOCK_COMMENT_DIVIDER = re.compile("^/\*\n\s*----")
+R_BLOCK_COMMENT_HEADER = re.compile("^/\* \*\*\*\*")
+
+R_BLOCK_COMMENT_TIGHT_START = re.compile("^/\*\S+")
+R_BLOCK_COMMENT_TIGHT_END = re.compile("\S+\*/$")
+R_BLOCK_COMMENT_PURE_START = re.compile("^/\*")
+R_BLOCK_COMMENT_PURE_END = re.compile("\*/$")
+
+R_ATTRIBUTE = re.compile(r'[^{]@(\w+)\s*')
+R_JAVADOC_STARS = re.compile(r'^\s*\*')
+
+
+
+R_NAMED_TYPE = re.compile(r'^\s*(\w+)\s*({([^}]+)})?')
+R_SIMPLE_TYPE = re.compile(r'^\s*({([^}]+)})?')
+
+
+
+
+VARPREFIXES = {
+  "a" : "Array",
+  "b" : "boolean",
+  "d" : "Date",
+  "f" : "Function",
+  "i" : "int",
+  "h" : "Map",
+  "m" : "Map",
+  "n" : "number",
+  "o" : "Object",
+  "r" : "RegExp",
+  "s" : "string",
+  "v" : "var",
+  "w" : "Widget"
+}
+
+VARNAMES = {
+  "a" : "Array",
+  "arr" : "Array",
+
+  "e" : "Event",
+  "ev" : "Event",
+  "evt" : "Event",
+
+  "el" : "Element",
+  "elem" : "Element",
+  "elm" : "Element",
+
+  "ex" : "Exception",
+  "exc" : "Exception",
+
+  "flag" : "boolean",
+  "force" : "boolean",
+
+  "f" : "Function",
+  "func" : "Function",
+
+  "h" : "Map",
+  "hash" : "Map",
+  "map" : "Map",
+
+  "node" : "Node",
+
+  "n" : "number",
+  "num" : "number",
+
+  "o" : "Object",
+  "obj" : "Object",
+
+  "reg" : "RegExp",
+
+  "s" : "string",
+  "str" : "string"
+}
+
+VARDESC = {
+  "propValue" : "Current value",
+  "propOldValue" : "Previous value",
+  "propData" : "Property configuration map"
+}
+
+
+
+
+def outdent(source, indent):
+  return re.compile("\n\s{%s}" % indent).sub("\n", source)
+
+
+
+def indent(source, indent):
+  return re.compile("\n").sub("\n" + (" " * indent), source)
+
+
+
+def correctInline(source):
+  if R_INLINE_COMMENT_TIGHT.match(source):
+    return R_INLINE_COMMENT_PURE.sub("// ", source)
+
+  return source
+
+
+
+def correctBlock(source):
+  if not getFormat(source) in [ "javadoc", "qtdoc" ]:
+    if R_BLOCK_COMMENT_TIGHT_START.search(source):
+      source = R_BLOCK_COMMENT_PURE_START.sub("/* ", source)
+
+    if R_BLOCK_COMMENT_TIGHT_END.search(source):
+      source = R_BLOCK_COMMENT_PURE_END.sub(" */", source)
+
+  return source
+
+
+
+def correct(source):
+  if source.startswith("//"):
+    return correctInline(source)
+  else:
+    return correctBlock(source)
+
+
+
+def isMultiLine(source):
+  return source.find("\n") != -1
+
+
+
+def getFormat(source):
+  if R_BLOCK_COMMENT_JAVADOC.search(source):
+    return "javadoc"
+  elif R_BLOCK_COMMENT_QTDOC.search(source):
+    return "qtdoc"
+  elif R_BLOCK_COMMENT_AREA.search(source):
+    return "area"
+  elif R_BLOCK_COMMENT_DIVIDER.search(source):
+    return "divider"
+  elif R_BLOCK_COMMENT_HEADER.search(source):
+    return "header"
+
+  return "block"
+
+
+
+
+
+
+
+
+def hasThrows(node):
+  if node.type == "throw":
+    return True
+
+  if node.hasChildren():
+    for child in node.children:
+      if hasThrows(child):
+        return True
+
+  return False
+
+
+
+def getReturns(node, found):
+  if node.type == "function":
+    pass
+
+  elif node.type == "return":
+    if node.getChildrenLength(True) > 0:
+      val = "var"
+    else:
+      val = "void"
+
+    if node.hasChild("expression"):
+      expr = node.getChild("expression")
+      if expr.hasChild("variable"):
+        var = expr.getChild("variable")
+        if var.getChildrenLength(True) == 1 and var.hasChild("identifier"):
+          val = nameToType(var.getChild("identifier").get("name"))
+        else:
+          val = "var"
+
+      elif expr.hasChild("constant"):
+        val = expr.getChild("constant").get("constantType")
+
+        if val == "number":
+          val = expr.getChild("constant").get("detail")
+
+      elif expr.hasChild("array"):
+        val = "Array"
+
+      elif expr.hasChild("map"):
+        val = "Map"
+
+      elif expr.hasChild("function"):
+        val = "Function"
+
+      elif expr.hasChild("call"):
+        val = "call"
+
+    if not val in found:
+      found.append(val)
+
+  elif node.hasChildren():
+    for child in node.children:
+      getReturns(child, found)
+
+  return found
+
+
+
+def nameToType(name):
+  typ = "var"
+
+  # Evaluate type from name
+  if name in VARNAMES:
+    typ = VARNAMES[name]
+
+  elif len(name) > 1:
+    if name[1].isupper():
+      if name[0] in VARPREFIXES:
+        typ = VARPREFIXES[name[0]]
+
+  return typ
+
+
+
+def nameToDescription(name):
+  desc = "TODOC"
+
+  if name in VARDESC:
+    desc = VARDESC[name]
+
+  return desc
+
+
+
+
+def qt2javadoc(text):
+  attribList = parseText(text, False)
+  res = "/**"
+
+  desc = getAttrib(attribList, "description")["text"]
+
+  if "\n" in desc:
+    res += "\n"
+
+    for line in desc.split("\n"):
+      res += " * %s\n" % line
+      
+    res += " "
+
+  else:
+    res += " %s " % desc
+
+  res += "*/"
+
+  return res
+
+
+def parseNode(node):
+  """Takes the last doc comment from the commentsBefore child, parses it and
+  returns a Node representing the doc comment"""
+
+  # Find the last doc comment
+  commentsBefore = node.getChild("commentsBefore", False)
+  if commentsBefore and commentsBefore.hasChildren():
+    for child in commentsBefore.children:
+      if child.type == "comment" and child.get("detail") in [ "javadoc", "qtdoc" ]:
+        return parseText(child.get("text"))
+
+  return []
+
+
+
+def parseText(intext, format=True):
+  # Strip "/**", "/*!" and "*/"
+  intext = intext[3:-2]
+
+  # Strip leading stars in every line
+  text = ""
+  for line in intext.split("\n"):
+    text += R_JAVADOC_STARS.sub("", line).strip() + "\n"
+
+  # Search for attributes
+  desc = { "category" : "description", "text" : "" }
+  attribs = [ desc ]
+  pos = 0
+
+  while True:
+    mtch = R_ATTRIBUTE.search(text, pos)
+
+    if mtch == None:
+      prevText = text[pos:].strip()
+
+      if len(attribs) == 0:
+        desc["text"] = prevText
+      else:
+        attribs[-1]["text"] = prevText
+
+      break
+
+    prevText = text[pos:mtch.start(0)].strip()
+    pos = mtch.end(0)
+
+    if len(attribs) == 0:
+      desc["text"] = prevText
+    else:
+      attribs[-1]["text"] = prevText
+
+    attribs.append({ "category" : mtch.group(1), "text" : "" })
+
+  # parse details
+  for attrib in attribs:
+    parseDetail(attrib, format)
+
+  return attribs
+
+
+
+def parseDetail(attrib, format=True):
+  text = attrib["text"]
+
+  if attrib["category"] in [ "param", "event" ]:
+    mtch = R_NAMED_TYPE.search(text)
+  else:
+    mtch = R_SIMPLE_TYPE.search(text)
+
+  if mtch:
+    text = text[mtch.end(0):]
+
+    if attrib["category"] in [ "param", "event" ]:
+      attrib["name"] = mtch.group(1)
+      # print ">>> NAME: %s" % mtch.group(1)
+      remain = mtch.group(3)
+    else:
+      remain = mtch.group(2)
+
+    if remain != None:
+      defIndex = remain.rfind("?")
+      if defIndex != -1:
+        attrib["default"] = remain[defIndex+1:].strip()
+        remain = remain[0:defIndex].strip()
+        # print ">>> DEFAULT: %s" % attrib["default"]
+
+      typValues = []
+      for typ in remain.split("|"):
+        typValue = typ.strip()
+        arrayIndex = typValue.find("[")
+
+        if arrayIndex != -1:
+          arrayValue = (len(typValue) - arrayIndex) / 2
+          typValue = typValue[0:arrayIndex]
+        else:
+          arrayValue = 0
+
+        typValues.append({ "type" : typValue, "dimensions" : arrayValue })
+
+      if len(typValues) > 0:
+        attrib["type"] = typValues
+        # print ">>> TYPE: %s" % attrib["type"]
+
+  if format:
+    attrib["text"] = formatText(text)
+  else:
+    attrib["text"] = cleanupText(text)
+
+
+
+
+
+
+
+
+def cleanupText(text):
+  #print "============= INTEXT ========================="
+  #print text
+
+  text = text.replace("<p>", "\n")
+  text = text.replace("<br/>", "\n")
+  text = text.replace("<br>", "\n")
+  text = text.replace("</p>", " ")
+
+  newline = False
+  lines = text.split("\n")
+  text = ""
+  
+  for line in lines:
+    line = line.strip()
+    
+    if line == "":
+      if not newline:
+        newline = True
+      
+    else:
+      if text != "":
+        text += "\n"
+      
+      if newline:
+        text += "\n"
+        newline = False
+  
+      text += line
+
+  #print "============= OUTTEXT ========================="
+  #print text
+
+  return text
+
+
+
+def formatText(text):
+  #print "============= FORMAT:1 ========================="
+  #print text
+
+  # cleanup HTML
+  text = text.replace("<p>", "\n")
+  text = text.replace("<br/>", "\n")
+  text = text.replace("<br>", "\n")
+  text = text.replace("</p>", " ")
+
+  # cleanup wraps
+  text = text.replace("\n\n", "----BREAK----")
+  text = text.replace("\n*", "----UL----")
+  text = text.replace("\n#", "----OL----")
+  text = text.replace("\n", " ")
+  text = text.replace("----BREAK----", "\n\n")
+  text = text.replace("----UL----", "\n*")
+  text = text.replace("----OL----", "\n#")
+
+  #print "============= FORMAT:2 ========================="
+  #print text
+
+  text = textile.textile(unicode(text).encode('utf-8'))
+
+  #print "============= FORMAT:3 ========================="
+  #print text
+
+  return text
+
+
+
+
+
+
+
+
+def getAttrib(attribList, category):
+  for attrib in attribList:
+    if attrib["category"] == category:
+      return attrib
+
+
+
+def getParam(attribList, name):
+  for attrib in attribList:
+    if attrib["category"] == "param":
+      if attrib.has_key("name") and attrib["name"] == name:
+        return attrib
+
+
+
+def attribHas(attrib, key):
+  if attrib != None and attrib.has_key(key) and not attrib[key] in [ "", None ]:
+    return True
+
+  return False
+
+
+
+def splitText(orig, attrib=True):
+  res = ""
+  first = True
+
+  for line in orig.split("\n"):
+    if attrib:
+      if first:
+        res += " %s\n" % line
+      else:
+        res += " *   %s\n" % line
+
+    else:
+      res += " * %s\n" % line
+
+    first = False
+
+  if not res.endswith("\n"):
+    res += "\n"
+
+  return res
+
+
+
+def parseType(vtype):
+  typeText = ""
+
+  firstType = True
+  for entry in vtype:
+    if not firstType:
+      typeText += " | "
+
+    typeText += entry["type"]
+
+    if entry.has_key("dimensions") and entry["dimensions"] > 0:
+      typeText += "[]" * entry["dimensions"]
+
+    firstType = False
+
+  return typeText
+
+
+
+
+def fromNode(node, assignType, name, alternative, old=[]):
+  #
+  # description
+  ##############################################################
+  oldDesc = getAttrib(old, "description")
+
+  if attribHas(oldDesc, "text"):
+    newText = oldDesc["text"]
+  else:
+    newText = "{var} TODOC"
+    
+  if "\n" in newText:
+    s = "/**\n%s\n-*/" % splitText(newText, False)
+  else:
+    s = "/** %s */" % newText
+  
+
+  #
+  # other @attributes
+  ##############################################################
+
+  for attrib in old:
+    cat = attrib["category"]
+
+    if cat != "description":
+      print " * Found unallowed attribute %s in comment for %s" % (cat, name)
+  
+  return s  
+      
+
+
+
+def fromFunction(func, assignType, name, alternative, old=[]):
+  #
+  # open comment
+  ##############################################################
+  s = "/**\n"
+
+
+  #
+  # description
+  ##############################################################
+  oldDesc = getAttrib(old, "description")
+
+  if attribHas(oldDesc, "text"):
+    newText = oldDesc["text"]
+  else:
+    newText = "TODOC"
+    
+  s += splitText(newText, False)
+  s += " *\n"
+  
+
+
+
+  #
+  # add @type
+  ##############################################################
+  if assignType != None:
+    s += " * @type %s\n" % assignType
+  else:
+    s += " * @type unknown TODOC\n"
+    
+    
+    
+
+  #
+  # add @name
+  ##############################################################
+  if name != None and name != "construct":
+    s += " * @name %s\n" % name
+
+    if name.startswith("__"):
+      s += " * @access private\n"
+    elif name.startswith("_"):
+      s += " * @access protected\n"
+    else:
+      s += " * @access public\n"
+
+
+
+  #
+  # add @alternative
+  ##############################################################
+  oldAlternative = getAttrib(old, "alternative")
+
+  if alternative:
+    if attribHas(oldAlternative, "text"):
+      newText = oldDesc["text"]
+    else:
+      newText = "TODOC"
+
+    s += " * @alternative%s" % splitText(newText)
+
+    if not s.endswith("\n"):
+      s += "\n"
+
+  elif oldAlternative:
+    print " * Removing old @alternative for %s" % name
+
+
+
+
+  #
+  # add @abstract
+  ##############################################################
+  oldAbstract = getAttrib(old, "abstract")
+
+  first = func.getChild("body").getChild("block").getFirstChild(False, True)
+  abstract = first and first.type == "throw"
+
+  if abstract:
+    if attribHas(oldAbstract, "text"):
+      newText = oldDesc["text"]
+    else:
+      newText = ""
+
+    s += " * @abstract%s" % splitText(newText)
+
+    if not s.endswith("\n"):
+      s += "\n"
+
+  elif oldAbstract:
+    print " * Removing old @abstract for %s" % name
+
+
+
+
+
+
+  #
+  # add @param
+  ##############################################################
+  params = func.getChild("params")
+  if params.hasChildren():
+    for child in params.children:
+      if child.type == "variable":
+        newName = child.getChild("identifier").get("name")
+        newType = newTypeText = nameToType(newName)
+        newDefault = ""
+        newText = nameToDescription(newName)
+
+        oldParam = getParam(old, newName)
+
+        # Get type and text from old content
+        if oldParam:
+          if attribHas(oldParam, "type"):
+            newTypeText = parseType(oldParam["type"])
+
+          if attribHas(oldParam, "defaultValue"):
+            newDefault = oldParam["defaultValue"]
+
+          if attribHas(oldParam, "text"):
+            newText = oldParam["text"].strip()
+
+        s += " * @param %s {%s%s}%s" % (newName, newTypeText, newDefault, splitText(newText))
+
+        if not s.endswith("\n"):
+          s += "\n"
+
+
+
+
+
+  #
+  # add @return
+  ##############################################################
+  if name != "construct":
+    oldReturn = getAttrib(old, "return")
+  
+    newType = "void"
+    newText = ""
+  
+    # Get type and text from old content
+    if oldReturn:
+      if attribHas(oldReturn, "type"):
+        newType = parseType(oldReturn["type"])
+  
+      if attribHas(oldReturn, "text"):
+        newText = oldReturn["text"].strip()
+  
+    # Try to autodetect the type
+    if newType == "void":
+      returns = getReturns(func.getChild("body"), [])
+  
+      if len(returns) > 0:
+        newType = " | ".join(returns)
+      elif name != None and name.startswith("is") and name[3].isupper():
+        newType = "boolean"
+  
+    # Add documentation hint in non void cases
+    if newType != "void" and newText == "":
+      newText = "TODOC"
+  
+    s += " * @return {%s}%s" % (newType, splitText(newText))
+  
+    if not s.endswith("\n"):
+      s += "\n"
+
+
+
+
+
+
+  #
+  # add @throws
+  ##############################################################
+  oldThrows = getAttrib(old, "throws")
+
+  if hasThrows(func):
+    if oldThrows and attribHas(oldThrows, "text"):
+      newText = oldThrows["text"]
+    elif abstract:
+      newText = "the abstract function warning."
+    else:
+      newText = "TODOC"
+
+    s += " * @throws%s" % splitText(newText)
+
+    if not s.endswith("\n"):
+      s += "\n"
+
+  elif oldThrows:
+    print " * Removing old @throw attribute in comment for %s" % name
+
+
+
+
+  #
+  # other @attributes
+  ##############################################################
+
+  for attrib in old:
+    cat = attrib["category"]
+
+    if cat in [ "see", "author", "deprecated", "exception", "since", "version", "abstract", "overridden" ]:
+      s += " * @%s" % cat
+
+      if attribHas(attrib, "text"):
+        s += splitText(attrib["text"])
+
+      if not s.endswith("\n"):
+        s += "\n"
+
+    elif not cat in [ "name", "access", "membership", "alternative", "param", "return", "throws", "description" ]:
+      print " * Found unallowed attribute %s in comment for %s" % (cat, name)
+
+
+
+
+
+  #
+  # close comment
+  ##############################################################
+  s += " */"
+
+  return s
+
+
+
+def fill(node):
+  if node.type in [ "comment", "commentsBefore", "commentsAfter" ]:
+    return
+    
+  if node.hasParent():
+    target = node
+    
+    if node.type == "function":
+      name = node.get("name", False)
+    else:
+      name = ""
+      
+    alternative = False
+    assignType = None
+  
+    if name != None:
+      assignType = "function"
+  
+    # move to hook operation
+    while target.parent.type in [ "first", "second", "third" ] and target.parent.parent.type == "operation" and target.parent.parent.get("operator") == "HOOK":
+      alternative = True
+      target = target.parent.parent
+  
+    # move comment to assignment
+    while target.parent.type == "right" and target.parent.parent.type == "assignment":
+      target = target.parent.parent
+      if target.hasChild("left"):
+        left = target.getChild("left")
+        if left and left.hasChild("variable"):
+          var = left.getChild("variable")
+          last = var.getLastChild(False, True)
+          if last and last.type == "identifier":
+            name = last.get("name")
+            assignType = "object"
+  
+          for child in var.children:
+            if child.type == "identifier":
+              if child.get("name") in [ "prototype", "Proto" ]:
+                assignType = "member"
+              elif child.get("name") in [ "class", "base", "Class" ]:
+                assignType = "static"
+  
+      elif target.parent.type == "definition":
+        name = target.parent.get("identifier")
+        assignType = "definition"
+  
+    # move to definition
+    if target.parent.type == "assignment" and target.parent.parent.type == "definition" and target.parent.parent.parent.getChildrenLength(True) == 1:
+      target = target.parent.parent.parent
+      assignType = "function"
+  
+  
+    # move comment to keyvalue
+    if target.parent.type == "value" and target.parent.parent.type == "keyvalue":
+      target = target.parent.parent
+      name = target.get("key")
+      assignType = "map"
+  
+      if name == "construct":
+        assignType = "constructor"
+  
+      if target.parent.type == "map" and target.parent.parent.type == "value" and target.parent.parent.parent.type == "keyvalue":
+        paname = target.parent.parent.parent.get("key")
+  
+        if paname == "members":
+          assignType = "member"
+  
+        elif paname == "statics":
+          assignType = "static"
+  
+    # filter stuff, only add comments to member and static values and to all functions
+    if assignType in [ "member", "static" ] or node.type == "function":
+      
+      if not hasattr(target, "documentationAdded") and target.parent.type != "params":
+        old = []
+    
+        # create commentsBefore
+        if target.hasChild("commentsBefore"):
+          commentsBefore = target.getChild("commentsBefore")
+    
+          if commentsBefore.hasChild("comment"):
+            for child in commentsBefore.children:
+              if child.get("detail") in [ "javadoc", "qtdoc" ]:
+                old = parseText(child.get("text"), False)
+                commentsBefore.removeChild(child)
+                break
+    
+        else:
+          commentsBefore = tree.Node("commentsBefore")
+          target.addChild(commentsBefore)
+    
+        # create comment node
+        commentNode = tree.Node("comment")
+        
+        if node.type == "function":
+          commentNode.set("text", fromFunction(node, assignType, name, alternative, old))
+        else:
+          commentNode.set("text", fromNode(node, assignType, name, alternative, old))
+          
+        commentNode.set("detail", "javadoc")
+        commentNode.set("multiline", True)
+    
+        commentsBefore.addChild(commentNode)
+    
+        # in case of alternative methods, use the first one, ignore the others
+        target.documentationAdded = True
+
+
+    
+    
+
+  if node.hasChildren():
+    for child in node.children:
+      fill(child)
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/comment.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/comment.pyc
new file mode 100644 (file)
index 0000000..6d2ef53
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/comment.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/compiler.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/compiler.py
new file mode 100755 (executable)
index 0000000..91ce48b
--- /dev/null
@@ -0,0 +1,1473 @@
+#!/usr/bin/env python
+
+import sys, string, re, optparse
+import config, tokenizer, filetool, treegenerator, variableoptimizer, comment, tree
+
+KEY = re.compile("^[A-Za-z0-9_]+$")
+INDENTSPACES = 2
+
+
+
+def compileToken(name, compact=False):
+  global pretty
+
+
+  if name in [ "INC", "DEC", "TYPEOF" ]:
+    pass
+
+  elif name in [ "INSTANCEOF", "IN" ]:
+    space()
+
+  elif not compact and pretty:
+    space()
+
+
+
+  if name == None:
+    write("=")
+
+  elif name in [ "TYPEOF", "INSTANCEOF", "IN" ]:
+    write(name.lower())
+
+  else:
+    for key in config.JSTOKENS:
+      if config.JSTOKENS[key] == name:
+        write(key)
+
+
+
+  if name in [ "INC", "DEC" ]:
+    pass
+
+  elif name in [ "TYPEOF", "INSTANCEOF", "IN" ]:
+    space()
+
+  elif not compact and pretty:
+    space()
+
+
+def space(force=True):
+  global indent
+  global result
+  global pretty
+  global afterLine
+  global afterBreak
+
+  if not force and not pretty:
+    return
+
+  if afterBreak or afterLine or result.endswith(" ") or result.endswith("\n"):
+    return
+
+  result += " "
+
+
+def write(txt=""):
+  global indent
+  global result
+  global pretty
+  global breaks
+  global afterLine
+  global afterBreak
+  global afterDivider
+  global afterArea
+
+  # strip remaining whitespaces
+  if (afterLine or afterBreak or afterDivider or afterArea) and result.endswith(" "):
+    result = result.rstrip()
+
+  if pretty:
+    # handle new line wishes
+    if afterArea:
+      nr = 9
+    elif afterDivider:
+      nr = 5
+    elif afterBreak:
+      nr = 2
+    elif afterLine:
+      nr = 1
+    else:
+      nr = 0
+
+    while not result.endswith("\n" * nr):
+      result += "\n"
+
+  elif breaks and not result.endswith("\n"):
+    if afterArea or afterDivider or afterBreak or afterLine:
+      result += "\n"
+
+  # reset
+  afterLine = False
+  afterBreak = False
+  afterDivider = False
+  afterArea = False
+
+  # add indent (if needed)
+  if pretty and result.endswith("\n"):
+    result += (" " * (INDENTSPACES * indent))
+
+  # append given text
+  result += txt
+
+
+def area():
+  global afterArea
+  afterArea = True
+
+
+def divide():
+  global afterDivider
+  afterDivider = True
+
+
+def sep():
+  global afterBreak
+  afterBreak = True
+
+
+def nosep():
+  global afterBreak
+  afterBreak = False
+
+
+def line():
+  global afterLine
+  afterLine = True
+
+
+def noline():
+  global afterLine
+  global afterBreak
+  global afterDivider
+  global afterArea
+
+  afterLine = False
+  afterBreak = False
+  afterDivider = False
+  afterArea = False
+
+
+def plus():
+  global indent
+  indent += 1
+
+
+def minus():
+  global indent
+  indent -= 1
+
+
+def semicolon():
+  global result
+  global breaks
+
+  noline()
+
+  if not (result.endswith("\n") or result.endswith(";")):
+    write(";")
+
+    if breaks:
+      result += "\n"
+
+
+def commentNode(node):
+  global pretty
+
+  if not pretty:
+    return
+
+  commentText = ""
+  commentIsInline = False
+
+  comment = node.getChild("commentsAfter", False)
+
+  if comment and not comment.get("inserted", False):
+    for child in comment.children:
+      if not child.isFirstChild():
+        commentText += " "
+
+      commentText += child.get("text")
+
+      if child.get("detail") == "inline":
+        commentIsInline = True
+
+    if commentText != "":
+      space()
+      write(commentText)
+
+      if commentIsInline:
+        line()
+      else:
+        space()
+
+      comment.set("inserted", True)
+
+
+
+def postProcessMap(m):
+  if m.get("maxKeyLength", False) != None:
+    return
+
+  maxKeyLength = 0
+  alignValues = True
+
+  if m.hasChildren():
+    for keyvalue in m.children:
+      if keyvalue.type != "keyvalue":
+        continue
+
+      currKeyLength = len(keyvalue.get("key"))
+
+      if keyvalue.get("quote", False) != None:
+        currKeyLength += 2
+
+      if currKeyLength > maxKeyLength:
+        maxKeyLength = currKeyLength
+
+      if alignValues and keyvalue.getChild("value").isComplex():
+        alignValues = False
+
+  m.set("maxKeyLength", maxKeyLength)
+  m.set("alignValues", alignValues)
+
+
+
+
+
+def compile(node, enablePretty=True, enableBreaks=False, enableDebug=False):
+  global indent
+  global result
+  global pretty
+  global debug
+  global breaks
+  global afterLine
+  global afterBreak
+  global afterDivider
+  global afterArea
+
+  indent = 0
+  result = u""
+  pretty = enablePretty
+  debug = enableDebug
+  breaks = enableBreaks
+  afterLine = False
+  afterBreak = False
+  afterDivider = False
+  afterArea = False
+
+  if enablePretty:
+    comment.fill(node)
+
+  compileNode(node)
+
+  return result
+
+
+
+
+
+
+
+
+
+
+def compileNode(node):
+
+  global pretty
+  global indent
+
+
+
+
+  #####################################################################################################################
+  # Recover styling
+  #####################################################################################################################
+
+  if pretty:
+    # Recover exclicit breaks
+    if node.get("breakBefore", False) and not node.isFirstChild(True):
+      sep()
+
+    # Additional explicit break before complex blocks
+    if node.hasParent() and not node.isFirstChild(True) and node.parent.type in [ "block", "file"] and node.isComplex():
+      sep()
+
+
+
+  #####################################################################################################################
+  # Insert comments before
+  #####################################################################################################################
+
+  if pretty:
+    if node.getChild("commentsBefore", False) != None:
+      commentCounter = 0
+      commentsBefore = node.getChild("commentsBefore")
+      isFirst = node.isFirstChild()
+      previous = node.getPreviousSibling(False, True)
+
+      if previous and previous.type in [ "case", "default" ]:
+        inCase = True
+      else:
+        inCase = False
+
+      inOperation = node.parent.type in [ "first", "second", "third" ] and node.parent.parent.type == "operation"
+
+      for child in commentsBefore.children:
+        docComment = child.get("detail") in [ "javadoc", "qtdoc" ]
+        headComment = child.get("detail") == "header"
+        areaComment = child.get("detail") == "area"
+        divComment = child.get("detail") == "divider"
+        blockComment = child.get("detail") ==  "block"
+        singleLineBlock = child.get("detail") != "inline" and child.get("multiline") == False
+
+        if not child.isFirstChild():
+          pass
+
+        elif inCase:
+          pass
+
+        elif singleLineBlock:
+          if child.get("begin"):
+            sep()
+          else:
+            space()
+
+        elif areaComment and not isFirst:
+          area()
+
+        elif divComment and not isFirst:
+          divide()
+
+        elif not isFirst:
+          sep()
+
+        elif inOperation:
+          sep()
+
+        elif not headComment:
+          line()
+
+        # reindenting first
+        text = child.get("text")
+
+        if child.get("detail") == "qtdoc":
+          text = comment.qt2javadoc(text)
+
+        write(comment.indent(text, INDENTSPACES * indent))
+
+        if singleLineBlock:
+          if child.get("detail") in [ "javadoc", "qtdoc" ]:
+            line()
+          elif child.get("end"):
+            sep()
+          else:
+            space()
+
+        # separator after divider/head comments and after block comments which are not for documentation
+        elif headComment or areaComment or divComment or blockComment:
+          sep()
+
+        else:
+          line()
+
+
+
+
+
+
+  #####################################################################################################################
+  # Opening...
+  #####################################################################################################################
+
+  #
+  # OPEN: FINALLY
+  ##################################
+
+  if node.type == "finally":
+    write("finally")
+
+
+  #
+  # OPEN: DELETE
+  ##################################
+
+  elif node.type == "delete":
+    write("delete")
+    space()
+
+
+  #
+  # OPEN: THROW
+  ##################################
+
+  elif node.type == "throw":
+    write("throw")
+    space()
+
+
+  #
+  # OPEN: NEW
+  ##################################
+
+  elif node.type == "instantiation":
+    write("new")
+    space()
+
+
+  #
+  # OPEN: RETURN
+  ##################################
+
+  elif node.type == "return":
+    write("return")
+
+    if node.hasChildren():
+      space()
+
+
+  #
+  # OPEN: DEFINITION LIST
+  ##################################
+
+  elif node.type == "definitionList":
+    write("var")
+    space()
+
+
+  #
+  # OPEN: BREAK
+  ##################################
+
+  elif node.type == "break":
+    write("break")
+
+    if node.get("label", False):
+      space()
+      write(node.get("label", False))
+
+
+  #
+  # OPEN: CONTINUE
+  ##################################
+
+  elif node.type == "continue":
+    write("continue")
+
+    if node.get("label", False):
+      space()
+      write(node.get("label", False))
+
+
+  #
+  # OPEN: FUNCTION
+  ##################################
+
+  elif node.type == "function":
+    write("function")
+
+    functionName = node.get("name", False)
+    if functionName != None:
+      space()
+      write(functionName)
+
+
+  #
+  # OPEN: IDENTIFIER
+  ##################################
+
+  elif node.type == "identifier":
+    name = node.get("name", False)
+    if name != None:
+      write(name)
+
+
+  #
+  # OPEN: DEFINITION
+  ##################################
+
+  elif node.type == "definition":
+    if node.parent.type != "definitionList":
+      write("var")
+      space()
+
+    write(node.get("identifier"))
+
+
+  #
+  # OPEN: CONSTANT
+  ##################################
+
+  elif node.type == "constant":
+    if node.get("constantType") == "string":
+      if node.get("detail") == "singlequotes":
+        write("'")
+      else:
+        write('"')
+
+      write(node.get("value"))
+
+      if node.get("detail") == "singlequotes":
+        write("'")
+      else:
+        write('"')
+
+    else:
+      write(node.get("value"))
+
+
+  #
+  # OPEN: COMMENT
+  ##################################
+
+  elif node.type == "comment":
+    if pretty:
+      # insert a space before and no newline in the case of after comments
+      if node.get("connection") == "after":
+        noline()
+        space()
+
+      write(node.get("text"))
+
+      # new line after inline comment (for example for syntactical reasons)
+      if node.get("detail") == "inline":
+        line()
+
+      else:
+        space()
+
+
+  #
+  # OPEN: RIGHT
+  ##################################
+
+  elif node.type == "right":
+    if node.parent.type == "accessor":
+      write(".")
+
+
+
+
+
+
+  #
+  # OPEN: ASSIGNMENT
+  ##################################
+
+  elif node.type == "assignment":
+    if node.parent.type == "definition":
+      oper = node.get("operator", False)
+
+      realNode = node.parent.parent
+
+      # be compact in for-loops
+      compact = realNode.hasParent() and realNode.parent.type in [ "first", "second", "third" ] and realNode.parent.parent.type == "loop" and realNode.parent.parent.get("loopType") == "FOR"
+      compileToken(oper, compact)
+
+
+
+
+
+  #
+  # OPEN: KEY
+  ##################################
+
+  elif node.type == "key":
+    if node.parent.type == "accessor":
+      write("[")
+
+
+  #
+  # OPEN: GROUP
+  ##################################
+
+  elif node.type == "group":
+    write("(")
+
+
+  #
+  # OPEN: VOID
+  ##################################
+
+  elif node.type == "void":
+    write("void")
+    write("(")
+
+
+  #
+  # OPEN: ARRAY
+  ##################################
+
+  elif node.type == "array":
+    write("[")
+
+    if node.hasChildren(True):
+      space(False)
+
+
+  #
+  # OPEN: PARAMS
+  ##################################
+
+  elif node.type == "params":
+    noline()
+    write("(")
+
+
+
+
+
+
+
+
+  #
+  # OPEN: CASE
+  ##################################
+
+  elif node.type == "case":
+    if pretty:
+      # force double new lines
+      if not node.isFirstChild() and not node.getPreviousSibling(True).type == "case":
+        sep()
+
+      minus()
+      line()
+
+    write("case")
+    space()
+
+
+  #
+  # OPEN: DEFAULT
+  ##################################
+
+  elif node.type == "default":
+    if pretty:
+      minus()
+
+      # force double new lines
+      if not node.getPreviousSibling(True).type == "case":
+        sep()
+
+    write("default")
+    write(":")
+
+    if pretty:
+      plus()
+      line()
+
+
+
+
+
+
+  #
+  # OPEN: TRY
+  ##################################
+
+  elif node.type == "switch":
+    # Additional new line before each switch/try
+    if not node.isFirstChild(True) and not node.getChild("commentsBefore", False):
+      prev = node.getPreviousSibling(False, True)
+
+      # No separation after case statements
+      if prev != None and prev.type in [ "case", "default" ]:
+        pass
+      else:
+        sep()
+
+    if node.get("switchType") == "catch":
+      write("try")
+    elif node.get("switchType") == "case":
+      write("switch")
+
+
+  #
+  # OPEN: CATCH
+  ##################################
+
+  elif node.type == "catch":
+    if pretty:
+      # If this statement block or the previous try were not complex, be not complex here, too
+      if not node.getChild("statement").getChild("block").isComplex() and not node.parent.getChild("statement").getChild("block").isComplex():
+        noline()
+        space()
+
+    write("catch")
+
+
+
+
+
+
+
+  #
+  # OPEN: MAP
+  ##################################
+
+  elif node.type == "map":
+    par = node.parent
+
+    if pretty:
+      postProcessMap(node)
+
+    if pretty:
+      # No break before return statement
+      if node.hasParent() and node.parent.type == "expression" and node.parent.parent.type == "return":
+        pass
+
+      elif node.isComplex():
+        line()
+
+    write("{")
+
+    if pretty:
+      if node.isComplex():
+        line()
+        plus()
+
+      elif node.hasChildren(True):
+        space()
+
+
+  #
+  # OPEN: KEYVALUE
+  ##################################
+
+  elif node.type == "keyvalue":
+    keyString = node.get("key")
+    keyQuote = node.get("quote", False)
+
+    if keyQuote != None:
+      # print "USE QUOTATION"
+      if keyQuote == "doublequotes":
+        keyString = '"' + keyString + '"'
+      else:
+        keyString = "'" + keyString + "'"
+
+    elif keyString in config.JSPROTECTED or not KEY.match(keyString):
+      print "Warning: Auto protect key: %s" % keyString
+      keyString = "\"" + keyString + "\""
+
+    if pretty and not node.isFirstChild(True) and not node.hasChild("commentsBefore") and node.getChild("value").isComplex():
+      sep()
+
+    write(keyString)
+    space(False)
+
+    # Fill with spaces
+    # Do this only if the parent is complex (many entries)
+    # But not if the value itself is complex
+    if pretty and node.parent.isComplex() and node.parent.get("alignValues"):
+      write(" " * (node.parent.get("maxKeyLength") - len(keyString)))
+
+    write(":")
+    space(False)
+
+
+
+
+
+
+
+  #
+  # OPEN: BLOCK
+  ##################################
+
+  elif node.type == "block":
+    if pretty:
+      if node.isComplex():
+        line()
+      else:
+        space()
+
+    write("{")
+
+    if pretty:
+      if node.hasChildren():
+        plus()
+        line()
+
+
+  #
+  # OPEN: LOOP
+  ##################################
+
+  elif node.type == "loop":
+    # Additional new line before each loop
+    if not node.isFirstChild(True) and not node.getChild("commentsBefore", False):
+      prev = node.getPreviousSibling(False, True)
+
+      # No separation after case statements
+      if prev != None and prev.type in [ "case", "default" ]:
+        pass
+      elif node.hasChild("elseStatement") or node.getChild("statement").hasBlockChildren():
+        sep()
+      else:
+        line()
+
+    loopType = node.get("loopType")
+
+    if loopType == "IF":
+      write("if")
+      space(False)
+
+    elif loopType == "WHILE":
+      write("while")
+      space(False)
+
+    elif loopType == "FOR":
+      write("for")
+      space(False)
+
+    elif loopType == "DO":
+      write("do")
+      space(False)
+
+    elif loopType == "WITH":
+      write("with")
+      space(False)
+
+    else:
+      print "Warning: Unknown loop type: %s" % loopType
+
+
+
+  #
+  # OPEN: ELSE
+  ##################################
+
+  elif node.type == "elseStatement":
+    if node.hasChild("commentsBefore"):
+      pass
+
+    elif pretty:
+      if not node.hasChild("block") and not node.hasChild("loop"):
+        pass
+
+      elif not node.isComplex():
+        noline()
+        space()
+
+    write("else")
+
+    # This is a elseStatement without a block around (a set of {})
+    if not node.hasChild("block"):
+      space()
+
+
+  #
+  # OPEN: EXPRESSION
+  ##################################
+
+  elif node.type == "expression":
+    if node.parent.type == "loop":
+      loopType = node.parent.get("loopType")
+
+      # only do-while loops
+      if loopType == "DO":
+        if pretty:
+          stmnt = node.parent.getChild("statement")
+          compact = stmnt.hasChild("block") and not stmnt.getChild("block").isComplex()
+
+          if compact:
+            noline()
+            space()
+
+        write("while")
+
+        if pretty:
+          space()
+
+      # open expression block of IF/WHILE/DO-WHILE/FOR statements
+      write("(")
+
+    elif node.parent.type == "catch":
+      # open expression block of CATCH statement
+      write("(")
+
+    elif node.parent.type == "switch" and node.parent.get("switchType") == "case":
+      # open expression block of SWITCH statement
+      write("(")
+
+
+  #
+  # OPEN: FIRST
+  ##################################
+
+  elif node.type == "first":
+    # for loop
+    if node.parent.type == "loop" and node.parent.get("loopType") == "FOR":
+      write("(")
+
+    # operation
+    elif node.parent.type == "operation":
+      # operation (var a = -1)
+      if node.parent.get("left", False) == True:
+        compileToken(node.parent.get("operator"), True)
+
+
+
+  #
+  # OPEN: SECOND
+  ##################################
+
+  elif node.type == "second":
+    # for loop
+    if node.parent.type == "loop" and node.parent.get("loopType") == "FOR":
+      if not node.parent.hasChild("first"):
+        write("(;")
+
+    # operation
+    elif node.parent.type == "operation":
+      if node.isComplex():
+        # (?: hook operation)
+        if node.parent.get("operator") == "HOOK":
+          sep()
+        else:
+          line()
+
+
+
+
+
+  #
+  # OPEN: THIRD
+  ##################################
+
+  elif node.type == "third":
+    # for loop
+    if node.parent.type == "loop" and node.parent.get("loopType") == "FOR":
+      if not node.parent.hasChild("second"):
+        if node.parent.hasChild("first"):
+          write(";")
+          space(False)
+        else:
+          write("(;;")
+
+    # operation
+    elif node.parent.type == "operation":
+      # (?: hook operation)
+      if node.parent.get("operator") == "HOOK":
+        if node.isComplex():
+          sep()
+
+
+  #
+  # OPEN: STATEMENT
+  ##################################
+
+  elif node.type == "statement":
+    # for loop
+    if node.parent.type == "loop" and node.parent.get("loopType") == "FOR":
+      if node.parent.get("forVariant") == "iter":
+        if not node.parent.hasChild("first") and not node.parent.hasChild("second") and not node.parent.hasChild("third"):
+          write("(;;");
+
+        elif not node.parent.hasChild("second") and not node.parent.hasChild("third"):
+          write(";")
+
+      write(")")
+
+      if not node.hasChild("block"):
+        space(False)
+
+
+
+
+
+
+
+
+
+
+
+
+
+  #####################################################################################################################
+  # Children content
+  #####################################################################################################################
+
+  if node.hasChildren():
+    for child in node.children:
+      if not node.type in [ "commentsBefore", "commentsAfter" ]:
+        compileNode(child)
+
+
+
+
+
+
+
+
+
+  #####################################################################################################################
+  # Closing node
+  #####################################################################################################################
+
+  #
+  # CLOSE: IDENTIFIER
+  ##################################
+
+  if node.type == "identifier":
+    if node.hasParent() and node.parent.type == "variable" and not node.isLastChild(True):
+      write(".")
+    elif node.hasParent() and node.parent.type == "label":
+      write(":")
+
+
+  #
+  # CLOSE: ACCESSOR
+  ##################################
+
+  elif node.type == "accessor":
+    if node.hasParent() and node.parent.type == "variable" and not node.isLastChild(True):
+      write(".")
+
+
+  #
+  # CLOSE: KEYVALUE
+  ##################################
+
+  elif node.type == "keyvalue":
+    if node.hasParent() and node.parent.type == "map" and not node.isLastChild(True):
+      noline()
+      write(",")
+
+      if pretty:
+        commentNode(node)
+
+        if node.getChild("value").isComplex():
+          sep()
+        elif node.parent.isComplex():
+          line()
+        else:
+          space()
+
+
+  #
+  # CLOSE: DEFINITION
+  ##################################
+
+  elif node.type == "definition":
+    if node.hasParent() and node.parent.type == "definitionList" and not node.isLastChild(True):
+      write(",")
+
+      if pretty:
+        commentNode(node)
+
+        if node.hasComplexChildren():
+          line()
+        else:
+          space()
+
+
+  #
+  # CLOSE: LEFT
+  ##################################
+
+  elif node.type == "left":
+    if node.hasParent() and node.parent.type == "assignment":
+      oper = node.parent.get("operator", False)
+
+      if node.parent.parent.type == "statementList":
+        realNode = node.parent.parent
+      else:
+        realNode = node.parent
+
+      # be compact in for-loops
+      compact = realNode.hasParent() and realNode.parent.type in [ "first", "second", "third" ] and realNode.parent.parent.type == "loop" and realNode.parent.parent.get("loopType") == "FOR"
+      compileToken(oper, compact)
+
+
+
+
+
+
+  #
+  # CLOSE: KEY
+  ##################################
+
+  elif node.type == "key":
+    if node.hasParent() and node.parent.type == "accessor":
+      write("]")
+
+
+  #
+  # CLOSE: GROUP
+  ##################################
+
+  elif node.type == "group":
+    if node.getChildrenLength(True) == 1:
+      noline()
+
+    write(")")
+
+
+  #
+  # CLOSE: VOID
+  ##################################
+
+  elif node.type == "void":
+    if node.getChildrenLength(True) == 1:
+      noline()
+
+    write(")")
+
+
+  #
+  # CLOSE: ARRAY
+  ##################################
+
+  elif node.type == "array":
+    if node.hasChildren(True):
+      space(False)
+
+    write("]")
+
+
+  #
+  # CLOSE: PARAMS
+  ##################################
+
+  elif node.type == "params":
+    write(")")
+
+
+  #
+  # CLOSE: MAP
+  ##################################
+
+  elif node.type == "map":
+    if pretty:
+      if node.isComplex():
+        line()
+        minus()
+
+      elif node.hasChildren(True):
+        space()
+
+    write("}")
+
+
+
+
+
+
+  #
+  # CLOSE: SWITCH
+  ##################################
+
+  elif node.type == "switch":
+    if node.get("switchType") == "case":
+      if pretty:
+        minus()
+        minus()
+        line()
+
+      write("}")
+
+      if pretty:
+        commentNode(node)
+        line()
+
+    # Force a additinal line feed after each switch/try
+    if pretty and not node.isLastChild():
+      sep()
+
+
+  #
+  # CLOSE: CASE
+  ##################################
+
+  elif node.type == "case":
+    write(":")
+
+    if pretty:
+      commentNode(node)
+      plus()
+      line()
+
+
+
+
+
+
+
+
+  #
+  # CLOSE: BLOCK
+  ##################################
+
+  elif node.type == "block":
+    if pretty and node.hasChildren():
+      minus()
+      line()
+
+    write("}")
+
+    if pretty:
+      commentNode(node)
+
+      if node.hasChildren():
+        # Newline afterwards
+        if node.parent.type == "body" and node.parent.parent.type == "function":
+
+          # But only when this isn't a function block inside a assignment
+          if node.parent.parent.parent.type in [ "right", "params" ]:
+            pass
+
+          elif node.parent.parent.parent.type == "value" and node.parent.parent.parent.parent.type == "keyvalue":
+            pass
+
+          else:
+            line()
+
+        else:
+          line()
+
+
+  #
+  # CLOSE: LOOP
+  ##################################
+
+  elif node.type == "loop":
+    if node.get("loopType") == "DO":
+      semicolon()
+
+    if pretty:
+      commentNode(node)
+
+      # Force a additinal line feed after each loop
+      if not node.isLastChild():
+        if node.hasChild("elseStatement"):
+          sep()
+        elif node.getChild("statement").hasBlockChildren():
+          sep()
+        else:
+          line()
+
+
+  #
+  # CLOSE: FUNCTION
+  ##################################
+
+  elif node.type == "function":
+    if pretty:
+      commentNode(node)
+
+      if not node.isLastChild() and node.hasParent() and node.parent.type in [ "block", "file" ]:
+        sep()
+
+
+  #
+  # CLOSE: EXPRESSION
+  ##################################
+
+  elif node.type == "expression":
+    if node.parent.type == "loop":
+      write(")")
+
+      # e.g. a if-construct without a block {}
+      if node.parent.getChild("statement").hasChild("block"):
+        pass
+
+      elif node.parent.type == "loop" and node.parent.get("loopType") == "DO":
+        pass
+
+      else:
+        space(False)
+
+    elif node.parent.type == "catch":
+      write(")")
+
+    elif node.parent.type == "switch" and node.parent.get("switchType") == "case":
+      write(")")
+
+      if pretty:
+        commentNode(node)
+        line()
+
+      write("{")
+
+      if pretty:
+        plus()
+        plus()
+
+
+  #
+  # CLOSE: FIRST
+  ##################################
+
+  elif node.type == "first":
+    # for loop
+    if node.parent.type == "loop" and node.parent.get("loopType") == "FOR":
+      if node.parent.get("forVariant") == "iter":
+        write(";")
+
+        if node.parent.hasChild("second"):
+          space(False)
+
+    # operation
+    elif node.parent.type == "operation" and node.parent.get("left", False) != True:
+      oper = node.parent.get("operator")
+
+      if node.parent.parent.type == "statementList":
+        realNode = node.parent.parent
+      else:
+        realNode = node.parent
+
+      compact = realNode.hasParent() and realNode.parent.type in [ "first", "second", "third" ] and realNode.parent.parent.type == "loop" and realNode.parent.parent.get("loopType") == "FOR"
+      compileToken(oper, compact)
+
+
+  #
+  # CLOSE: SECOND
+  ##################################
+
+  elif node.type == "second":
+    # for loop
+    if node.parent.type == "loop" and node.parent.get("loopType") == "FOR":
+      write(";")
+
+      if node.parent.hasChild("third"):
+        space(False)
+
+    # operation
+    elif node.parent.type == "operation":
+      # (?: hook operation)
+      if node.parent.get("operator") == "HOOK":
+        noline()
+        space(False)
+        write(":")
+        space(False)
+
+
+
+
+
+
+
+
+
+  #
+  # CLOSE: OTHER
+  ##################################
+
+  if node.hasParent() and not node.type in [ "comment", "commentsBefore", "commentsAfter" ]:
+
+    # Add comma dividers between statements in these parents
+    if node.parent.type in [ "array", "params", "statementList" ]:
+      if not node.isLastChild(True):
+        write(",")
+
+        if pretty:
+          commentNode(node)
+
+          if node.isComplex():
+            line()
+          else:
+            space()
+
+    # Semicolon handling
+    elif node.type in [ "block", "assignment", "call", "operation", "definitionList", "return", "break", "continue", "delete", "accessor", "instantiation", "throw", "variable" ]:
+
+      # Default semicolon handling
+      if node.parent.type in [ "block", "file" ]:
+        semicolon()
+
+        if pretty:
+          commentNode(node)
+          line()
+
+          if node.isComplex() and not node.isLastChild():
+            sep()
+
+      # Special handling for switch statements
+      elif node.parent.type == "statement" and node.parent.parent.type == "switch" and node.parent.parent.get("switchType") == "case":
+        semicolon()
+
+        if pretty:
+          commentNode(node)
+          line()
+
+          if node.isComplex() and not node.isLastChild():
+            sep()
+
+      # Special handling for loops (e.g. if) without blocks {}
+      elif node.parent.type in [ "statement", "elseStatement" ] and not node.parent.hasChild("block") and node.parent.parent.type == "loop":
+        semicolon()
+
+        if pretty:
+          commentNode(node)
+          line()
+
+          if node.isComplex() and not node.isLastChild():
+            sep()
+
+
+  #
+  # CLOSE: OTHER
+  ##################################
+
+  if pretty:
+    # Rest of the after comments (not inserted previously)
+    commentNode(node)
+
+
+
+
+
+
+
+
+
+
+
+def main():
+  parser = optparse.OptionParser()
+
+  parser.add_option("-w", "--write", action="store_true", dest="write", default=False, help="Writes file to incoming fileName + EXTENSION.")
+  parser.add_option("-e", "--extension", dest="extension", metavar="EXTENSION", help="The EXTENSION to use", default=".compiled")
+  parser.add_option("-c", "--compress", action="store_true", dest="compress", help="Enable compression", default=False)
+  parser.add_option("--optimize-variables", action="store_true", dest="optimizeVariables", default=False, help="Optimize variables. Reducing size.")
+  parser.add_option("--encoding", dest="encoding", default="utf-8", metavar="ENCODING", help="Defines the encoding expected for input files.")
+
+  (options, args) = parser.parse_args()
+
+  if len(args) == 0:
+    print "Needs one or more arguments (files) to compile!"
+    sys.exit(1)
+
+  for fileName in args:
+    if options.write:
+      print "Compiling %s => %s%s" % (fileName, fileName, options.extension)
+    else:
+      print "Compiling %s => stdout" % fileName
+
+    restree = treegenerator.createSyntaxTree(tokenizer.parseFile(fileName, "", options.encoding))
+
+    if options.optimizeVariables:
+      variableoptimizer.search(restree, [], 0, "$")
+
+    compiledString = compile(restree, not options.compress)
+    if options.write:
+      filetool.save(fileName + options.extension, compiledString)
+
+    else:
+      try:
+        print compiledString
+
+      except UnicodeEncodeError:
+        print "  * Could not encode result to ascii. Use '-w' instead."
+        sys.exit(1)
+
+
+
+if __name__ == '__main__':
+  try:
+    main()
+
+  except KeyboardInterrupt:
+    print
+    print "  * Keyboard Interrupt"
+    sys.exit(1)
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/compiler.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/compiler.pyc
new file mode 100644 (file)
index 0000000..371a29b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/compiler.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/config.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/config.py
new file mode 100755 (executable)
index 0000000..5ac9b75
--- /dev/null
@@ -0,0 +1,168 @@
+#!/usr/bin/env python
+
+import re
+
+
+
+
+#
+# FILE EXTENSIONS
+#
+
+JSEXT = ".js"
+PYEXT = ".py"
+XMLEXT = ".xml"
+TOKENEXT = ".txt"
+DIRIGNORE = [ ".svn", "CVS" ]
+
+
+
+
+#
+# QOOXDOO HEADER SUPPORT
+#
+
+QXHEAD = {
+  # TODO: Obsolete with 0.7
+  "defineClass" : re.compile('qx.OO.defineClass\(\s*["\']([\.a-zA-Z0-9_-]+)["\'](\s*\,\s*([\.a-zA-Z0-9_-]+))?', re.M),
+    
+  # 0.7 API
+  "classDefine" : re.compile('qx.Clazz.define\(\s*["\']([\.a-zA-Z0-9_-]+)["\']?', re.M),
+  "superClass" : re.compile('extend\s*:\s*([\.a-zA-Z0-9_-]+)', re.M),
+    
+  "id" : re.compile("#id\(\s*([\.a-zA-Z0-9_-]+?)\s*\)", re.M),
+  "module" : re.compile("#module\(\s*([\.a-zA-Z0-9_-]+?)\s*\)", re.M),
+  "require" : re.compile("#require\(\s*([\.a-zA-Z0-9_-]+?)\s*\)", re.M),
+  "use" : re.compile("#use\(\s*([\.a-zA-Z0-9_-]+?)\s*\)", re.M),
+  "after" : re.compile("#after\(\s*([\.a-zA-Z0-9_-]+?)\s*\)", re.M),
+  "load" : re.compile("#load\(\s*([\.a-zA-Z0-9_-]+?)\s*\)", re.M),
+  "optional" : re.compile("#optional\(\s*([\.a-zA-Z0-9_-]+?)\s*\)", re.M),
+  "resource" : re.compile("#resource\(\s*(.*?)\s*\)", re.M)
+}
+
+
+
+
+
+#
+# JAVASCRIPT SUPPORT
+#
+
+JSBUILTIN = [ "Object", "Array", "RegExp", "Math", "String", "Number", "Error" ]
+
+JSTOKENS = {
+  "." : "DOT",
+  "," : "COMMA",
+  ":" : "COLON",
+  "?" : "HOOK",
+  ";" : "SEMICOLON",
+  "!" : "NOT",
+  "~" : "BITNOT",
+  "\\" : "BACKSLASH",
+
+  "+" : "ADD",
+  "-" : "SUB",
+  "*" : "MUL",
+  "/" : "DIV",
+  "%" : "MOD",
+
+  "{" : "LC",
+  "}" : "RC",
+  "(" : "LP",
+  ")" : "RP",
+  "[" : "LB",
+  "]" : "RB",
+
+  "<" : "LT",
+  "<=" : "LE",
+  ">" : "GT",
+  ">=" : "GE",
+  "==" : "EQ",
+  "!=" : "NE",
+  "===" : "SHEQ",
+  "!==" : "SHNE",
+
+  "=" : "ASSIGN",
+
+  "+=" : "ASSIGN_ADD",
+  "-=" : "ASSIGN_SUB",
+  "*=" : "ASSIGN_MUL",
+  "/=" : "ASSIGN_DIV",
+  "%=" : "ASSIGN_MOD",
+
+  "|=" : "ASSIGN_BITOR",
+  "^=" : "ASSIGN_BITXOR",
+  "&=" : "ASSIGN_BITAND",
+  "<<=" : "ASSIGN_LSH",
+  ">>=" : "ASSIGN_RSH",
+  ">>>=" : "ASSIGN_URSH",
+
+  "&&" : "AND",
+  "||" : "OR",
+
+  "|" : "BITOR",
+  "^|" : "BITXOR",
+  "&" : "BITAND",
+
+  "^" : "POWEROF",
+
+  "<<" : "LSH",
+  ">>" : "RSH",
+  ">>>" : "URSH",
+
+  "++" : "INC",
+  "--" : "DEC",
+
+  "::" : "COLONCOLON",
+  ".." : "DOTDOT",
+
+  "@" : "XMLATTR",
+
+  "//" : "SINGLE_COMMENT",
+  "/*" : "COMMENT_START",
+  "*/" : "COMMENT_STOP",
+  "/*!" : "DOC_START"
+}
+
+JSPROTECTED = {
+  "null" : "NULL",
+  "Infinity" : "INFINITY",
+  "true" : "TRUE",
+  "false" : "FALSE",
+
+  "this" : "THIS",
+  "var" : "VAR",
+  "new" : "NEW",
+  "prototype" : "PROTOTYPE",
+  "return" : "RETURN",
+  "function" : "FUNCTION",
+
+  "while" : "WHILE",
+  "if" : "IF",
+  "else" : "ELSE",
+  "switch" : "SWITCH",
+  "case" : "CASE",
+  "default" : "DEFAULT",
+  "break" : "BREAK",
+  "continue" : "CONTINUE",
+  "goto" : "GOTO",
+  "do" : "DO",
+  "delete" : "DELETE",
+  "for" : "FOR",
+  "in" : "IN",
+  "with" : "WITH",
+  "try" : "TRY",
+  "catch" : "CATCH",
+  "finally" : "FINALLY",
+  "throw" : "THROW",
+  "instanceof" : "INSTANCEOF",
+  "typeof" : "TYPEOF",
+  "void" : "VOID",
+  "call" : "CALL",
+  "apply" : "APPLY"
+}
+
+JSSPACE_BEFORE = [ "INSTANCEOF", "IN" ]
+JSSPACE_AFTER = [ "VAR", "NEW", "GOTO", "INSTANCEOF", "TYPEOF", "DELETE", "IN", "THROW", "CASE" ]
+JSSPACE_AFTER_USAGE = [ "RETURN", "FUNCTION" ]
+JSPARANTHESIS_BEFORE = [ "ELSE", "FINALLY", "CATCH", "WHILE" ]
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/config.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/config.pyc
new file mode 100644 (file)
index 0000000..44a5131
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/config.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/filetool.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/filetool.py
new file mode 100755 (executable)
index 0000000..089b33b
--- /dev/null
@@ -0,0 +1,96 @@
+#!/usr/bin/env python
+
+import os, codecs, cPickle, sys
+import textutil
+
+def save(filePath, content="", encoding="utf_8"):
+  # Normalize
+  filePath = normalize(filePath)
+
+  # Create directory
+  directory(os.path.dirname(filePath))
+
+  # Writing file
+  try:
+    outputFile = codecs.open(filePath, encoding=encoding, mode="w", errors="replace")
+    outputFile.write(content)
+  except IOError, (errno, strerror):
+    print "  * I/O error(%s): %s" % (errno, strerror)
+    sys.exit(1)
+  except UnicodeDecodeError:
+    print "  * Could not decode result to %s" % encoding
+    sys.exit(1)
+  except:
+    print "  * Unexpected error:", sys.exc_info()[0]
+    sys.exit(1)
+
+  outputFile.flush()
+  outputFile.close()
+
+
+def directory(dirname):
+  # Normalize
+  dirname = normalize(dirname)
+
+  # Check/Create directory
+  if dirname != "" and not os.path.exists(dirname):
+    os.makedirs(dirname)
+
+
+def normalize(filename):
+  return os.path.normcase(os.path.normpath(filename))
+
+
+def read(filePath, encoding="utf_8"):
+  try:
+    ref = codecs.open(filePath, encoding=encoding, mode="r")
+    content = ref.read()
+    ref.close()
+
+    return textutil.any2Unix(unicode(content))
+
+  except IOError, (errno, strerror):
+    print "  * I/O error(%s): %s" % (errno, strerror)
+    sys.exit(1)
+
+  except ValueError:
+    print "  * Invalid Encoding. Required encoding %s in %s" % (encoding, filePath)
+    sys.exit(1)
+
+  except:
+    print "  * Unexpected error:", sys.exc_info()[0]
+    sys.exit(1)
+
+
+def storeCache(cachePath, data):
+  try:
+    cPickle.dump(data, open(cachePath, 'w'), 2)
+
+  except EOFError or PickleError or PicklingError:
+    print "  * Could not store cache to %s" % cachePath
+    sys.exit(1)
+
+
+def readCache(cachePath):
+  try:
+    return cPickle.load(open(cachePath))
+
+  except EOFError or PickleError or UnpicklingError:
+    print "  * Could not read cache from %s" % cachePath
+    sys.exit(1)
+
+
+def checkCache(filePath, cachePath, internalModTime):
+  fileModTime = os.stat(filePath).st_mtime
+
+  try:
+    cacheModTime = os.stat(cachePath).st_mtime
+  except OSError:
+    cacheModTime = 0
+
+  if internalModTime > cacheModTime:
+    # print "Invalid cache: %s" % filePath
+    # print "%s > %s" % (internalModTime, cacheModTime)
+    return True
+
+  return fileModTime > cacheModTime
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/filetool.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/filetool.pyc
new file mode 100644 (file)
index 0000000..3d4a983
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/filetool.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/loader.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/loader.py
new file mode 100755 (executable)
index 0000000..4a9209f
--- /dev/null
@@ -0,0 +1,816 @@
+#!/usr/bin/env python
+
+import sys, string, re, os, random, cPickle, codecs
+import config, tokenizer, treegenerator, filetool, stringoptimizer
+
+internalModTime = 0
+
+
+def validateFiles():
+
+  global internalModTime
+
+  base = os.path.dirname(os.path.abspath(sys.argv[0]))
+  if base.endswith("modules"):
+    path = base
+  else:
+    path = os.path.join(base, "modules")
+
+  maxFileModTime = os.stat(os.path.join(path, ".." + os.path.sep + "generator.py")).st_mtime
+
+  for root, dirs, files in os.walk(path):
+
+    # Filter ignored directories
+    for ignoredDir in config.DIRIGNORE:
+      if ignoredDir in dirs:
+        dirs.remove(ignoredDir)
+
+    # Searching for files
+    for fileName in files:
+      if os.path.splitext(fileName)[1] != config.PYEXT:
+        continue
+
+      filePath = os.path.join(root, fileName)
+      fileModTime = os.stat(filePath).st_mtime
+
+      if fileModTime > maxFileModTime:
+        maxFileModTime = fileModTime
+
+
+  internalModTime = maxFileModTime
+
+
+
+def getInternalModTime(options):
+
+  global internalModTime
+
+  if internalModTime == 0 and not options.disableInternalCheck:
+    validateFiles()
+
+  return internalModTime
+
+
+
+def extractFileContentId(data):
+  for item in config.QXHEAD["id"].findall(data):
+    return item
+
+  for item in config.QXHEAD["classDefine"].findall(data):
+    return item
+
+  # TODO: Obsolete with 0.7
+  for item in config.QXHEAD["defineClass"].findall(data):
+    return item[0]
+
+  return None
+
+
+def extractSuperClass(data):
+  for item in config.QXHEAD["superClass"].findall(data):
+    return item
+
+  # TODO: Obsolete with 0.7
+  for item in config.QXHEAD["defineClass"].findall(data):
+    return item[2]
+
+  return None
+
+
+def extractLoadtimeDeps(data, fileId=""):
+  deps = []
+
+  # qooxdoo specific:
+  # store inheritance deps
+  superClass = extractSuperClass(data)
+  if superClass != None and superClass != "" and not superClass in config.JSBUILTIN:
+    deps.append("qx.OO")
+    deps.append(superClass)
+  elif "qx.OO.defineClass(" in data:
+    deps.append("qx.OO")
+
+
+  # Adding explicit requirements
+  for item in config.QXHEAD["require"].findall(data):
+    if item == fileId:
+      print "      - Self-referring load dependency: %s" % item
+    elif item in deps:
+      print "      - Double definition of load dependency: %s" % item
+    else:
+      deps.append(item)
+
+  return deps
+
+
+def extractAfterDeps(data, fileId=""):
+  deps = []
+
+  # Adding explicit after requirements
+  for item in config.QXHEAD["after"].findall(data):
+    if item == fileId:
+      print "      - Self-referring load dependency: %s" % item
+    elif item in deps:
+      print "      - Double definition of load dependency: %s" % item
+    else:
+      deps.append(item)
+
+  return deps
+
+
+def extractRuntimeDeps(data, fileId=""):
+  deps = []
+
+  # Adding explicit runtime requirements
+  for item in config.QXHEAD["use"].findall(data):
+    if item == fileId:
+      print "      - Self-referring runtime dependency: %s" % item
+    elif item in deps:
+      print "      - Double definition of runtime dependency: %s" % item
+    else:
+      deps.append(item)
+
+  return deps
+
+
+def extractLoadDeps(data, fileId=""):
+  deps = []
+
+  # Adding before requirements
+  for item in config.QXHEAD["load"].findall(data):
+    if item == fileId:
+      print "      - Self-referring runtime dependency: %s" % item
+    elif item in deps:
+      print "      - Double definition of runtime dependency: %s" % item
+    else:
+      deps.append(item)
+
+  return deps
+
+
+def extractOptional(data):
+  deps = []
+
+  # Adding explicit requirements
+  for item in config.QXHEAD["optional"].findall(data):
+    if not item in deps:
+      deps.append(item)
+
+  return deps
+
+
+def extractModules(data):
+  mods = []
+
+  for item in config.QXHEAD["module"].findall(data):
+    if not item in mods:
+      mods.append(item)
+
+  return mods
+
+
+def extractResources(data):
+  res = []
+
+  for item in config.QXHEAD["resource"].findall(data):
+    res.append(item)
+
+  return res
+
+
+
+
+
+
+def getTokens(fileDb, fileId, options):
+  if not fileDb[fileId].has_key("tokens"):
+    if options.verbose:
+      print "    - Generating tokens for %s..." % fileId
+
+    useCache = False
+    loadCache = False
+
+    fileEntry = fileDb[fileId]
+
+    filePath = fileEntry["path"]
+    fileEncoding = fileEntry["encoding"]
+
+    if options.cacheDirectory != None:
+      cachePath = os.path.join(filetool.normalize(options.cacheDirectory), fileId + "-tokens.pcl")
+      useCache = True
+
+      if not filetool.checkCache(filePath, cachePath, getInternalModTime(options)):
+        loadCache = True
+
+    if loadCache:
+      tokens = filetool.readCache(cachePath)
+    else:
+      fileContent = filetool.read(filePath, fileEncoding)
+      tokens = tokenizer.parseStream(fileContent, fileId)
+
+      if useCache:
+        if options.verbose:
+          print "    - Caching tokens for %s..." % fileId
+
+        filetool.storeCache(cachePath, tokens)
+
+    fileDb[fileId]["tokens"] = tokens
+
+  return fileDb[fileId]["tokens"]
+
+
+
+
+def getTree(fileDb, fileId, options):
+  if not fileDb[fileId].has_key("tree"):
+    if options.verbose:
+      print "    - Generating tree for %s..." % fileId
+
+    useCache = False
+    loadCache = False
+
+    fileEntry = fileDb[fileId]
+    filePath = fileEntry["path"]
+
+    if options.cacheDirectory != None:
+      cachePath = os.path.join(filetool.normalize(options.cacheDirectory), fileId + "-tree.pcl")
+      useCache = True
+
+      if not filetool.checkCache(filePath, cachePath, getInternalModTime(options)):
+        loadCache = True
+
+    if loadCache:
+      tree = filetool.readCache(cachePath)
+    else:
+      tree = treegenerator.createSyntaxTree(getTokens(fileDb, fileId, options))
+
+      if useCache:
+        if options.verbose:
+          print "    - Caching tree for %s..." % fileId
+
+        filetool.storeCache(cachePath, tree)
+
+    fileDb[fileId]["tree"] = tree
+
+  return fileDb[fileId]["tree"]
+
+
+
+
+
+def getStrings(fileDb, fileId, options):
+  if not fileDb[fileId].has_key("strings"):
+    if options.verbose:
+      print "    - Searching for strings in %s..." % fileId
+
+    useCache = False
+    loadCache = False
+
+    fileEntry = fileDb[fileId]
+    filePath = fileEntry["path"]
+
+    if options.cacheDirectory != None:
+      cachePath = os.path.join(filetool.normalize(options.cacheDirectory), fileId + "-strings.pcl")
+      useCache = True
+
+      if not filetool.checkCache(filePath, cachePath, getInternalModTime(options)):
+        loadCache = True
+
+    if loadCache:
+      strings = filetool.readCache(cachePath)
+    else:
+      strings = stringoptimizer.search(getTree(fileDb, fileId, options), options.verbose)
+
+      if useCache:
+        if options.verbose:
+          print "    - Caching strings for %s..." % fileId
+
+        filetool.storeCache(cachePath, strings)
+
+    fileDb[fileId]["strings"] = strings
+
+  return fileDb[fileId]["strings"]
+
+
+
+
+
+def resolveAutoDeps(fileDb, options):
+  ######################################################################
+  #  DETECTION OF AUTO DEPENDENCIES
+  ######################################################################
+
+  if options.verbose:
+    print "  * Resolving dependencies..."
+  else:
+    print "  * Resolving dependencies: ",
+
+  knownIds = []
+  depCounter = 0
+  hasMessage = False
+
+  for fileId in fileDb:
+    knownIds.append(fileId)
+
+  for fileId in fileDb:
+    fileEntry = fileDb[fileId]
+
+    if fileEntry["autoDeps"] == True:
+      continue
+
+    if not options.verbose:
+      sys.stdout.write(".")
+      sys.stdout.flush()
+
+    hasMessage = False
+
+    fileTokens = getTokens(fileDb, fileId, options)
+    fileDeps = []
+
+    assembledName = ""
+
+    for token in fileTokens:
+      if token["type"] == "name" or token["type"] == "builtin":
+        if assembledName == "":
+          assembledName = token["source"]
+        else:
+          assembledName += ".%s" % token["source"]
+
+        if assembledName in knownIds:
+          if assembledName != fileId and not assembledName in fileDeps:
+            fileDeps.append(assembledName)
+
+          assembledName = ""
+
+      elif not (token["type"] == "token" and token["source"] == "."):
+        if assembledName != "":
+          assembledName = ""
+
+        if token["type"] == "string" and token["source"] in knownIds and token["source"] != fileId and not token["source"] in fileDeps:
+          fileDeps.append(token["source"])
+
+
+    if options.verbose:
+      print "    - Analysing %s..." % fileId
+
+    # Updating lists...
+    optionalDeps = fileEntry["optionalDeps"]
+    loadtimeDeps = fileEntry["loadtimeDeps"]
+    runtimeDeps = fileEntry["runtimeDeps"]
+
+    # Removing optional deps from list
+    for dep in optionalDeps:
+      if dep in fileDeps:
+        fileDeps.remove(dep)
+
+    if options.verbose:
+
+      # Checking loadtime dependencies
+      for dep in loadtimeDeps:
+        if not dep in fileDeps:
+          print "    - Could not confirm #require(%s) in %s!" % (dep, fileId)
+
+      # Checking runtime dependencies
+      for dep in runtimeDeps:
+        if not dep in fileDeps:
+          print "    - Could not confirm #use(%s) in %s!" % (dep, fileId)
+
+    # Adding new content to runtime dependencies
+    for dep in fileDeps:
+      if not dep in runtimeDeps and not dep in loadtimeDeps:
+        if options.verbose:
+          print "      - Adding dependency: %s" % dep
+
+        runtimeDeps.append(dep)
+        depCounter += 1
+
+    # store flag to omit it the next run
+    fileEntry["autoDeps"] = True
+
+  if not hasMessage and not options.verbose:
+    print
+
+  print "  * Added %s dependencies" % depCounter
+
+
+
+
+def storeEntryCache(fileDb, options):
+  print "  * Storing file entries..."
+
+  cacheCounter = 0
+  ignoreDbEntries = [ "tokens", "tree", "path", "pathId", "encoding", "resourceInput", "resourceOutput", "sourceScriptPath", "listIndex", "scriptInput" ]
+
+  for fileId in fileDb:
+    fileEntry = fileDb[fileId]
+
+    if fileEntry["cached"] == True:
+      continue
+
+    # Store flag
+    fileEntry["cached"] = True
+
+    # Copy entries
+    fileEntryCopy = {}
+    for key in fileEntry:
+      if not key in ignoreDbEntries:
+        fileEntryCopy[key] = fileEntry[key]
+
+    filetool.storeCache(fileEntry["cachePath"], fileEntryCopy)
+    cacheCounter += 1
+
+  print "  * Updated %s files" % cacheCounter
+
+
+
+
+def indexFile(filePath, filePathId, scriptInput, listIndex, scriptEncoding, sourceScriptPath, resourceInput, resourceOutput, options, fileDb={}, moduleDb={}):
+
+  ########################################
+  # Checking cache
+  ########################################
+
+  useCache = False
+  loadCache = False
+  cachePath = None
+
+  if options.cacheDirectory != None:
+    cachePath = os.path.join(filetool.normalize(options.cacheDirectory), filePathId + "-entry.pcl")
+    useCache = True
+
+    if not filetool.checkCache(filePath, cachePath, getInternalModTime(options)):
+      loadCache = True
+
+
+
+  ########################################
+  # Loading file content / cache
+  ########################################
+
+  if loadCache:
+    fileEntry = filetool.readCache(cachePath)
+    fileId = filePathId
+
+  else:
+    fileContent = filetool.read(filePath, scriptEncoding)
+
+    # Extract ID
+    fileContentId = extractFileContentId(fileContent)
+
+    # Search for valid ID
+    if fileContentId == None:
+      print "    - Could not extract ID from file: %s. Using fileName!" % filePath
+      fileId = filePathId
+
+    else:
+      fileId = fileContentId
+
+    if fileId != filePathId:
+      print "    - ID mismatch: CONTENT=%s != PATH=%s" % (fileContentId, filePathId)
+      sys.exit(1)
+
+    fileEntry = {
+      "autoDeps" : False,
+      "cached" : False,
+      "cachePath" : cachePath,
+      "optionalDeps" : extractOptional(fileContent),
+      "loadtimeDeps" : extractLoadtimeDeps(fileContent, fileId),
+      "runtimeDeps" : extractRuntimeDeps(fileContent, fileId),
+      "afterDeps" : extractAfterDeps(fileContent, fileId),
+      "loadDeps" : extractLoadDeps(fileContent, fileId),
+      "resources" : extractResources(fileContent),
+      "modules" : extractModules(fileContent)
+    }
+
+
+
+  ########################################
+  # Additional data
+  ########################################
+
+  # We don't want to cache these items
+  fileEntry["path"] = filePath
+  fileEntry["pathId"] = filePathId
+  fileEntry["encoding"] = scriptEncoding
+  fileEntry["resourceInput"] = resourceInput
+  fileEntry["resourceOutput"] = resourceOutput
+  fileEntry["sourceScriptPath"] = sourceScriptPath
+  fileEntry["listIndex"] = listIndex
+  fileEntry["scriptInput"] = scriptInput
+
+
+  ########################################
+  # Registering file
+  ########################################
+
+  # Register to file database
+  fileDb[fileId] = fileEntry
+
+  # Register to module database
+  for moduleId in fileEntry["modules"]:
+    if moduleDb.has_key(moduleId):
+      moduleDb[moduleId].append(fileId)
+    else:
+      moduleDb[moduleId] = [ fileId ]
+
+
+
+
+
+def indexSingleScriptInput(scriptInput, listIndex, options, fileDb={}, moduleDb={}):
+  scriptInput = filetool.normalize(scriptInput)
+
+  # Search for other indexed lists
+  if len(options.scriptEncoding) > listIndex:
+    scriptEncoding = options.scriptEncoding[listIndex]
+  else:
+    scriptEncoding = "utf-8"
+
+  if len(options.sourceScriptPath) > listIndex:
+    sourceScriptPath = options.sourceScriptPath[listIndex]
+  else:
+    sourceScriptPath = None
+
+  if len(options.resourceInput) > listIndex:
+    resourceInput = options.resourceInput[listIndex]
+  else:
+    resourceInput = None
+
+  if len(options.resourceOutput) > listIndex:
+    resourceOutput = options.resourceOutput[listIndex]
+  else:
+    resourceOutput = None
+
+  for root, dirs, files in os.walk(scriptInput):
+
+    # Filter ignored directories
+    for ignoredDir in config.DIRIGNORE:
+      if ignoredDir in dirs:
+        dirs.remove(ignoredDir)
+
+    # Searching for files
+    for fileName in files:
+      if os.path.splitext(fileName)[1] == config.JSEXT:
+        filePath = os.path.join(root, fileName)
+        filePathId = filePath.replace(scriptInput + os.sep, "").replace(config.JSEXT, "").replace(os.sep, ".")
+
+        indexFile(filePath, filePathId, scriptInput, listIndex, scriptEncoding, sourceScriptPath, resourceInput, resourceOutput, options, fileDb, moduleDb)
+
+
+def indexScriptInput(options):
+  if options.cacheDirectory != None:
+    filetool.directory(options.cacheDirectory)
+
+  print "  * Indexing files... "
+
+  fileDb = {}
+  moduleDb = {}
+  listIndex = 0
+
+  for scriptInput in options.scriptInput:
+    indexSingleScriptInput(scriptInput, listIndex, options, fileDb, moduleDb)
+    listIndex += 1
+
+  print "  * %s files were found" % len(fileDb)
+
+  if options.enableAutoDependencies:
+    resolveAutoDeps(fileDb, options)
+
+  if options.cacheDirectory != None:
+    storeEntryCache(fileDb, options)
+
+  return fileDb, moduleDb
+
+
+
+
+
+"""
+Simple resolver, just try to add items and put missing stuff around
+the new one.
+"""
+def addIdWithDepsToSortedList(sortedList, fileDb, fileId):
+  if not fileDb.has_key(fileId):
+    print "    * Error: Couldn't find required file: %s" % fileId
+    return False
+
+  # Test if already in
+  if not fileId in sortedList:
+
+    # Including loadtime dependencies
+    for loadtimeDepId in fileDb[fileId]["loadtimeDeps"]:
+      if loadtimeDepId == fileId: break;
+      addIdWithDepsToSortedList(sortedList, fileDb, loadtimeDepId)
+
+    # Including after dependencies
+    for afterDepId in fileDb[fileId]["afterDeps"]:
+      if afterDepId == fileId: break;
+      addIdWithDepsToSortedList(sortedList, fileDb, afterDepId)
+
+    # Add myself
+    if not fileId in sortedList:
+      sortedList.append(fileId)
+
+    # Include runtime dependencies
+    for runtimeDepId in fileDb[fileId]["runtimeDeps"]:
+      addIdWithDepsToSortedList(sortedList, fileDb, runtimeDepId)
+
+    # Include load dependencies
+    for loadDepId in fileDb[fileId]["loadDeps"]:
+      addIdWithDepsToSortedList(sortedList, fileDb, loadDepId)
+
+
+
+
+
+"""
+Search for dependencies, but don't add them. Just use them to put
+the new class after the stuff which is required (if it's included, too)
+"""
+def addIdWithoutDepsToSortedList(sortedList, fileDb, fileId):
+  if not fileDb.has_key(fileId):
+    print "    * Error: Couldn't find required file: %s" % fileId
+    return False
+
+  # Test if already in
+  if not fileId in sortedList:
+
+    # Search sortedList for files which needs this one and are already included
+    lowestIndex = None
+    currentIndex = 0
+    for lowId in sortedList:
+      for lowDepId in getResursiveLoadDeps([], fileDb, lowId, lowId):
+        if lowDepId == fileId and (lowestIndex == None or currentIndex < lowestIndex):
+          lowestIndex = currentIndex
+
+      currentIndex += 1
+
+    # Insert at defined index or just append new entry
+    if lowestIndex != None:
+      sortedList.insert(lowestIndex, fileId)
+    else:
+      sortedList.append(fileId)
+
+
+
+
+def getResursiveLoadDeps(deps, fileDb, fileId, ignoreId=None):
+  if fileId in deps:
+    return
+
+  if fileId != ignoreId:
+    deps.append(fileId)
+
+  # Including loadtime dependencies
+  for loadtimeDepId in fileDb[fileId]["loadtimeDeps"]:
+    getResursiveLoadDeps(deps, fileDb, loadtimeDepId)
+
+  # Including after dependencies
+  for afterDepId in fileDb[fileId]["afterDeps"]:
+    getResursiveLoadDeps(deps, fileDb, afterDepId)
+
+  return deps
+
+
+
+
+
+def getSortedList(options, fileDb, moduleDb):
+  includeWithDeps = []
+  excludeWithDeps = []
+  includeWithoutDeps = []
+  excludeWithoutDeps = []
+
+  sortedIncludeList = []
+  sortedExcludeList = []
+
+
+
+  # INCLUDE
+
+  # Add Modules and Files (with deps)
+  if options.includeWithDeps:
+    for include in options.includeWithDeps:
+      if include in moduleDb:
+        includeWithDeps.extend(moduleDb[include])
+
+      elif "*" in include or "?" in include:
+        regstr = "^(" + include.replace('.', '\\.').replace('*', '.*').replace('?', '.?') + ")$"
+        regexp = re.compile(regstr)
+
+        for fileId in fileDb:
+          if regexp.search(fileId):
+            if not fileId in includeWithDeps:
+              includeWithDeps.append(fileId)
+
+      else:
+        if not include in includeWithDeps:
+          includeWithDeps.append(include)
+
+
+  # Add Modules and Files (without deps)
+  if options.includeWithoutDeps:
+    for include in options.includeWithoutDeps:
+      if include in moduleDb:
+        includeWithoutDeps.extend(moduleDb[include])
+
+      elif "*" in include or "?" in include:
+        regstr = "^(" + include.replace('.', '\\.').replace('*', '.*').replace('?', '.?') + ")$"
+        regexp = re.compile(regstr)
+
+        for fileId in fileDb:
+          if regexp.search(fileId):
+            if not fileId in includeWithoutDeps:
+              includeWithoutDeps.append(fileId)
+
+      else:
+        if not include in includeWithoutDeps:
+          includeWithoutDeps.append(include)
+
+
+
+
+
+
+  # Add all if both lists are empty
+  if len(includeWithDeps) == 0 and len(includeWithoutDeps) == 0:
+    for fileId in fileDb:
+      includeWithDeps.append(fileId)
+
+  # Sorting include (with deps)
+  for fileId in includeWithDeps:
+    addIdWithDepsToSortedList(sortedIncludeList, fileDb, fileId)
+
+  # Sorting include (without deps)
+  for fileId in includeWithoutDeps:
+    addIdWithoutDepsToSortedList(sortedIncludeList, fileDb, fileId)
+
+
+
+  # EXCLUDE
+
+  # Add Modules and Files (with deps)
+  if options.excludeWithDeps:
+    for exclude in options.excludeWithDeps:
+      if exclude in moduleDb:
+        excludeWithDeps.extend(moduleDb[exclude])
+
+      elif "*" in exclude or "?" in exclude:
+        regstr = "^(" + exclude.replace('.', '\\.').replace('*', '.*').replace('?', '.?') + ")$"
+        regexp = re.compile(regstr)
+
+        for fileId in fileDb:
+          if regexp.search(fileId):
+            if not fileId in excludeWithDeps:
+              excludeWithDeps.append(fileId)
+
+      else:
+        if not exclude in excludeWithDeps:
+          excludeWithDeps.append(exclude)
+
+
+  # Add Modules and Files (without deps)
+  if options.excludeWithoutDeps:
+    for exclude in options.excludeWithoutDeps:
+      if exclude in moduleDb:
+        excludeWithoutDeps.extend(moduleDb[exclude])
+
+      elif "*" in exclude or "?" in exclude:
+        regstr = "^(" + exclude.replace('.', '\\.').replace('*', '.*').replace('?', '.?') + ")$"
+        regexp = re.compile(regstr)
+
+        for fileId in fileDb:
+          if regexp.search(fileId):
+            if not fileId in excludeWithDeps:
+              excludeWithoutDeps.append(fileId)
+
+      else:
+        if not exclude in excludeWithDeps:
+          excludeWithoutDeps.append(exclude)
+
+
+
+
+
+  # Sorting exclude (with deps)
+  for fileId in excludeWithDeps:
+    addIdWithDepsToSortedList(sortedExcludeList, fileDb, fileId)
+
+  # Sorting exclude (without deps)
+  for fileId in excludeWithoutDeps:
+    addIdWithoutDepsToSortedList(sortedExcludeList, fileDb, fileId)
+
+
+
+
+  # MERGE
+
+  # Remove excluded files from included files list
+  for fileId in sortedExcludeList:
+    if fileId in sortedIncludeList:
+      sortedIncludeList.remove(fileId)
+
+
+
+  # RETURN
+
+  return sortedIncludeList
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/loader.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/loader.pyc
new file mode 100644 (file)
index 0000000..51d49a8
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/loader.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/mapper.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/mapper.py
new file mode 100755 (executable)
index 0000000..8d34450
--- /dev/null
@@ -0,0 +1,19 @@
+#!/usr/bin/env python
+
+table = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
+def convert(current):
+  # Possibilities with each character
+  # 1: 36 = 36
+  # 2: 36*36 = 1296
+  # 3: 36*36*36 = 46656
+
+  res = ""
+  length = len(table) - 1
+
+  if current / length > 0:
+    res += convert(current / length)
+
+  res += table[current % length]
+
+  return res
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/mapper.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/mapper.pyc
new file mode 100644 (file)
index 0000000..93f461b
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/mapper.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/migrator.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/migrator.py
new file mode 100755 (executable)
index 0000000..520a51f
--- /dev/null
@@ -0,0 +1,303 @@
+#!/usr/bin/env python
+
+import sys, re, os
+import config, filetool, treegenerator, tokenizer, compiler, textutil
+
+def entryCompiler(line):
+  # protect escaped equal symbols
+  line = line.replace("\=", "----EQUAL----")
+
+  splitLine = line.split("=")
+  
+  if len(splitLine) != 2:
+    print "        - Malformed entry: %s" % line
+    return
+    
+  orig = splitLine[0].strip()
+  repl = splitLine[1].strip()
+
+  #print "%s :: %s" % (orig, value)
+
+  # recover protected equal symbols
+  orig = orig.replace("----EQUAL----", "=")
+  repl = repl.replace("----EQUAL----", "=")
+
+  return {"expr":re.compile(orig), "orig":orig, "repl":repl}
+
+
+
+
+def regtool(content, regs, patch, options):
+  for patchEntry in regs:
+    matches = patchEntry["expr"].findall(content)
+    itercontent = content
+    line = 1
+
+    for fragment in matches:
+      # Search for first match position
+      pos = itercontent.find(fragment)
+      pos = patchEntry["expr"].search(itercontent).start()
+
+      # Update current line
+      line += len((itercontent[:pos] + fragment).split("\n")) - 1
+
+      # Removing leading part til matching part
+      itercontent = itercontent[pos+len(fragment):]
+
+      # Debug
+      if options.verbose:
+        print "      - Matches %s in %s" % (patchEntry["orig"], line)
+
+      # Replacing
+      if patch:
+        content = patchEntry["expr"].sub(patchEntry["repl"], content, 1)
+        
+      else:
+        print "      - line %s : (%s)" % (line, patchEntry["orig"])
+        print "        %s" % patchEntry["repl"]
+
+  return content
+
+
+
+
+def getHtmlList(options):
+  htmlList = []
+  
+  for htmlDir in options.migrationInput:
+    for root, dirs, files in os.walk(htmlDir):
+  
+      # Filter ignored directories
+      for ignoredDir in config.DIRIGNORE:
+        if ignoredDir in dirs:
+          dirs.remove(ignoredDir)
+  
+      # Searching for files
+      for fileName in files:
+        if os.path.splitext(fileName)[1] in [ ".js", ".html", ".htm", ".php", ".asp", ".jsp" ]:  
+          htmlList.append(os.path.join(root, fileName))
+
+  return htmlList
+
+
+
+def handle(fileList, fileDb, options):
+  confPath = os.path.join(os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])), "migration"), options.migrationTarget)
+
+  infoPath = os.path.join(confPath, "info")
+  patchPath = os.path.join(confPath, "patches")
+
+  importedModule = False
+  infoList = []
+  patchList = []
+  htmlList = getHtmlList(options)
+  
+  
+
+
+  print "  * Number of script input files: %s" % len(fileList)
+  print "  * Number of HTML input files: %s" % len(htmlList)
+  print "  * Update to version: %s" % options.migrationTarget
+
+
+
+  print "  * Searching for patch module..."
+
+  for root, dirs, files in os.walk(confPath):
+
+    # Filter ignored directories
+    for ignoredDir in config.DIRIGNORE:
+      if ignoredDir in dirs:
+        dirs.remove(ignoredDir)
+
+    # Searching for files
+    for fileName in files:
+      filePath = os.path.join(root, fileName)
+
+      if os.path.splitext(fileName)[1] != config.PYEXT:
+        continue
+
+      if fileName == "patch.py":
+        print "    - Importing..."
+
+        if not root in sys.path:
+          sys.path.insert(0, root)
+
+        import patch
+        importedModule = True
+
+
+
+
+
+
+
+  emptyLine = re.compile("^\s*$")
+
+
+
+  print "  * Searching for info expression data..."
+
+  for root, dirs, files in os.walk(infoPath):
+
+    # Filter ignored directories
+    for ignoredDir in config.DIRIGNORE:
+      if ignoredDir in dirs:
+        dirs.remove(ignoredDir)
+
+    # Searching for files
+    for fileName in files:
+      filePath = os.path.join(root, fileName)
+
+      fileContent = textutil.any2Unix(filetool.read(filePath, "utf-8"))
+      infoList.append({"path":filePath, "content":fileContent.split("\n")})
+
+      if options.verbose:
+        print "    - %s" % filePath
+
+  print "    - Number of info files: %s" % len(infoList)
+
+  print "    - Compiling expressions..."
+
+  compiledInfos = []
+
+  for infoFile in infoList:
+    print "      - %s" % os.path.basename(infoFile["path"])
+    for line in infoFile["content"]:
+      if emptyLine.match(line) or line.startswith("#") or line.startswith("//"):
+        continue
+
+      compiled = entryCompiler(line)
+      if compiled != None:
+        compiledInfos.append(compiled)
+
+  print "    - Number of infos: %s" % len(compiledInfos)
+
+
+
+
+  print "  * Searching for patch expression data..."
+
+  for root, dirs, files in os.walk(patchPath):
+
+    # Filter ignored directories
+    for ignoredDir in config.DIRIGNORE:
+      if ignoredDir in dirs:
+        dirs.remove(ignoredDir)
+
+    # Searching for files
+    for fileName in files:
+      filePath = os.path.join(root, fileName)
+
+      fileContent = textutil.any2Unix(filetool.read(filePath, "utf-8"))
+      patchList.append({"path":filePath, "content":fileContent.split("\n")})
+
+      if options.verbose:
+        print "    - %s" % filePath
+
+  print "    - Number of patch files: %s" % len(patchList)
+
+  print "    - Compiling expressions..."
+
+  compiledPatches = []
+
+  for patchFile in patchList:
+    print "      - %s" % os.path.basename(patchFile["path"])
+    for line in patchFile["content"]:
+      if emptyLine.match(line) or line.startswith("#") or line.startswith("//"):
+        continue
+
+      compiled = entryCompiler(line)
+      if compiled != None:
+        compiledPatches.append(compiled)
+
+  print "    - Number of patches: %s" % len(compiledPatches)
+
+
+
+
+
+
+
+
+  print
+  print "  FILE PROCESSING:"
+  print "----------------------------------------------------------------------------"
+
+  if len(fileList) > 0:
+    print "  * Processing script files:"
+  
+    for fileId in fileList:
+      fileEntry = fileDb[fileId]
+  
+      filePath = fileEntry["path"]
+      fileEncoding = fileEntry["encoding"]
+  
+      print "    - %s" % fileId
+  
+      # Read in original content
+      fileContent = filetool.read(filePath, fileEncoding)
+      patchedContent = fileContent
+  
+      # Apply patches
+      if importedModule:
+        tree = treegenerator.createSyntaxTree(tokenizer.parseStream(patchedContent))
+  
+        # If there were any changes, compile the result
+        if patch.patch(fileId, tree):
+          patchedContent = compiler.compile(tree, True)
+  
+      patchedContent = regtool(patchedContent, compiledPatches, True, options)
+      patchedContent = regtool(patchedContent, compiledInfos, False, options)
+  
+      # Write file
+      if patchedContent != fileContent:
+        print "      - Store modifications..."
+        filetool.save(filePath, patchedContent, fileEncoding)
+  
+    print "  * Done"
+
+
+
+  if len(htmlList) > 0:
+    print "  * Processing HTML files:"
+  
+    for filePath in htmlList:
+      print "    - %s" % filePath
+  
+      # Read in original content
+      fileContent = filetool.read(filePath)
+      
+      patchedContent = fileContent
+      patchedContent = regtool(patchedContent, compiledPatches, True, options)
+      patchedContent = regtool(patchedContent, compiledInfos, False, options)
+  
+      # Write file
+      if patchedContent != fileContent:
+        print "      - Store modifications..."
+        filetool.save(filePath, patchedContent)
+  
+    print "  * Done"
+
+
+
+
+
+
+
+
+
+
+
+######################################################################
+#  MAIN LOOP
+######################################################################
+
+if __name__ == '__main__':
+  try:
+    main()
+
+  except KeyboardInterrupt:
+    print
+    print "  * Keyboard Interrupt"
+    sys.exit(1)
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/migrator.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/migrator.pyc
new file mode 100644 (file)
index 0000000..78885cb
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/migrator.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/obfuscator.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/obfuscator.py
new file mode 100755 (executable)
index 0000000..f4348b2
--- /dev/null
@@ -0,0 +1,438 @@
+#!/usr/bin/env python
+
+import tree, mapper
+
+qooxdooStart = [
+  # Properties
+  "_modify", "_check", "_unitDetection",
+
+  # Layout
+  "_applyRuntime",
+
+  # Cache Properties
+  "_resetRuntime", "_compute", "_change", "_invalidate", "_recompute",
+
+  # Property Methods
+  "set", "get", "force", "reset"
+]
+
+qooxdooNames = [
+  # Demos
+  "ROOT_LOGGER", "removeAllAppenders", "addAppender", "DivAppender",
+
+  # qx.ui.core.Widget.initApplyMethods
+  "_style",
+  "setStyleProperty", "removeStyleProperty",
+  "constant", "Core",
+
+  # Inheritance
+  "qx", "Proto", "Class"
+]
+
+systemNames = [
+  # Statement
+  "break","catch","continue","do","for","in","finally","function","if","else","return","switch","case","default",
+  "this","throw","try","var","while","with",
+
+  # Operator
+  "delete","false","instanceof","new","null","true","typeof","void",
+
+  # Function
+  "GetObject","ScriptEngine","ScriptEngineBuildVersion","ScriptEngineMajorVersion","ScriptEngineMinorVersion",
+
+  # Objects
+  "ActiveXObject","Arguments","Array","Boolean","Date","Dictionary","Enumerator","Error","FileSystemObject",
+  "Function","Global","Image","Math","Number","Object","RegExp","String","VBArray",
+
+  # Property
+  "$1","$2","$3","$4","$5",
+  "$6","$7","$8","$9","arguments","arity","callee","caller","constructor","description","E","global","ignoreCase",
+  "index","Infinity","input","lastIndex","leftContext","length","LN2","LN10","LOG2E","LOG10E","MAX_VALUE",
+  "MIN_VALUE","message","multiline","name","NaN","NEGATIVE_INFINITY","number","PI","POSITIVE_INFINITY",
+  "prototype","rightContext","source","SQRT1_2","SQRT2","undefined",
+
+  # Methods
+  "abs","acos","anchor","apply","asin",
+  "atan","atan2","atEnd","big","blink","bold","call","ceil","charAt","charCodeAt","compile","concat","cos",
+  "decodeURI","decodeURIComponent","dimensions","encodeURI","encodeURIComponent","escape","eval","exec",
+  "exp","fixed","floor","fontcolor","fontsize","fromCharCode","getDate","getDay","getFullYear","getHours",
+  "getItem","getMilliseconds","getMinutes","getMonth","getSeconds","getTime","getTimezoneOffset","getUTCDate",
+  "getUTCDay","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds",
+  "getVarDate","getYear","hasOwnProperty","indexOf","isFinite","isNaN","isPrototypeOf","italics","item","join",
+  "lastIndexOf","lastMatch","lastParen","lbound","link","localeCompare","log","match","max","min","moveFirst",
+  "moveNext","parse","parseFloat","parseInt","pop","pow","propertyIsEnumerable","push","random","replace",
+  "reverse","round","search","setDate","setFullYear","setHours","setMilliseconds","setMinutes","setMonth",
+  "setSeconds","setTime","setUTCDate","setUTCFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes",
+  "setUTCMonth","setUTCSeconds","setYear","shift","sin","slice","small","sort","splice","split","sqrt","strike",
+  "sub","substr","substring","sup","tan","test","toArray","toDateString","toExponential","toFixed","toGMTString",
+  "toLocaleDateString","toLocaleLowerCase","toLocaleString","toLocaleTimeString","toLocaleUpperCase","toLowerCase",
+  "toPrecision","toString","toTimeString","toUpperCase","toUTCString","ubound","unescape","unshift","unwatch","UTC",
+  "valueOf","watch",
+
+  # HTML Entity
+  "nbsp","lt","gt","amp","apos","quot","cent","pound","yen","sect","copy","reg","times","divide",
+
+  # DHTML Constant
+  "ATTRIBUTE_NODE","CDATA_SECTION_NODE","COMMENT_NODE","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE",
+  "ELEMENT_NODE","ENTITY_NODE","ENTITY_REFERENCE_NODE","NOTATION_NODE","PROCESSING_INSTRUCTION_NODE","TEXT_NODE",
+  "NOTATION_FRAGMENT_NODE","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR","INDEX_SIZE_ERR","INUSE_ATTRIBUTE_ERR",
+  "INVALID_ACCESS_ERR","INVALID_CHARACTER_ERR","INVALID_MODIFICATION_ERR","INVALID_STATE_ERR","NAMESPACE_ERR",
+  "NOT_FOUND_ERR","NOT_SUPPORTED_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","SYNTAX_ERR",
+  "WRONG_DOCUMENT_ERR","ABORT","BLUR","CLICK","CHANGE","DBLCLICK","DRAGDROP","ERROR","FOCUS","KEYDOWN","KEYPRESS",
+  "KEYUP","LOAD","MOUSEDOWN","MOUSEMOVE","MOUSEOUT","MOUSEOVER","MOUSEUP","MOVE","RESET","RESIZE","SELECT","SUBMIT",
+  "UNLOAD","NODE_BEFORE","NODE_AFTER","NODE_BEFORE_AND_AFTER","NODE_INSIDE","START_TO_START","START_TO_END",
+  "END_TO_END","END_TO_START","BAD_BOUNDARYPOINTS_ERR","INVALID_NODE_TYPE_ERR","UNKNOWN_RULE","STYLE_RULE",
+  "CHARSET_RULE","IMPORT_RULE","MEDIA_RULE","FONT_FACE_RULE","PAGE_RULE","CSS_UNKNOWN","CSS_NUMBER","CSS_PERCENTAGE",
+  "CSS_EMS","CSS_EXS","CSS_PX","CSS_CM","CSS_MM","CSS_IN","CSS_PT","CSS_PC","CSS_DEG","CSS_RAD","CSS_GRAD","CSS_MS",
+  "CSS_S","CSS_HZ","CSS_KHZ","CSS_DIMENSION","CSS_STRING","CSS_URI","CSS_IDENT","CSS_ATTR","CSS_COUNTER","CSS_RECT",
+  "CSS_RGBCOLOR","CSS_INHERIT","CSS_PRIMITIVE_VALUE","CSS_VALUE_LIST","CSS_CUSTOM","STATE_MAXIMIZED","STATE_MINIMIZED",
+  "STATE_NORMAL","DOCUMENT_POSITION_DISCONNECTED","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_FOLLOWING",
+  "DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC",
+  "CAPTURING_PHASE","AT_TARGET","BUBBLING_PHASE","MOUSEDOWN","MOUSEUP","MOUSEOVER","MOUSEOUT","MOUSEMOVE",
+  "MOUSEDRAG","CLICK","DBLCLICK","KEYDOWN","KEYUP","KEYPRESS","DRAGDROP","FOCUS","BLUR","SELECT","CHANGE",
+  "RESET","SUBMIT","SCROLL","LOAD","UNLOAD","XFER_DONE","ABORT","ERROR","LOCATE","MOVE","RESIZE","FORWARD",
+  "HELP","BACK","TEXT","ALT_MASK","CONTROL_MASK","SHIFT_MASK","META_MASK","SCROLL_PAGE_UP","SCROLL_PAGE_DOWN",
+  "DOM_VK_CANCEL","DOM_VK_HELP","DOM_VK_BACK_SPACE","DOM_VK_TAB","DOM_VK_CLEAR","DOM_VK_RETURN","DOM_VK_ENTER",
+  "DOM_VK_SHIFT","DOM_VK_CONTROL","DOM_VK_ALT","DOM_VK_PAUSE","DOM_VK_CAPS_LOCK","DOM_VK_ESCAPE","DOM_VK_SPACE",
+  "DOM_VK_PAGE_UP","DOM_VK_PAGE_DOWN","DOM_VK_END","DOM_VK_HOME","DOM_VK_LEFT","DOM_VK_UP","DOM_VK_RIGHT","DOM_VK_DOWN",
+  "DOM_VK_PRINTSCREEN","DOM_VK_INSERT","DOM_VK_DELETE","DOM_VK_0","DOM_VK_1","DOM_VK_2","DOM_VK_3","DOM_VK_4","DOM_VK_5",
+  "DOM_VK_6","DOM_VK_7","DOM_VK_8","DOM_VK_9","DOM_VK_SEMICOLON","DOM_VK_EQUALS","DOM_VK_A","DOM_VK_B","DOM_VK_C",
+  "DOM_VK_D","DOM_VK_E","DOM_VK_F","DOM_VK_G","DOM_VK_H","DOM_VK_I","DOM_VK_J","DOM_VK_K","DOM_VK_L","DOM_VK_M",
+  "DOM_VK_N","DOM_VK_O","DOM_VK_P","DOM_VK_Q","DOM_VK_R","DOM_VK_S","DOM_VK_T","DOM_VK_U","DOM_VK_V","DOM_VK_W",
+  "DOM_VK_X","DOM_VK_Y","DOM_VK_Z","DOM_VK_CONTEXT_MENU","DOM_VK_NUMPAD0","DOM_VK_NUMPAD1","DOM_VK_NUMPAD2",
+  "DOM_VK_NUMPAD3","DOM_VK_NUMPAD4","DOM_VK_NUMPAD5","DOM_VK_NUMPAD6","DOM_VK_NUMPAD7","DOM_VK_NUMPAD8","DOM_VK_NUMPAD9",
+  "DOM_VK_MULTIPLY","DOM_VK_ADD","DOM_VK_SEPARATOR","DOM_VK_SUBTRACT","DOM_VK_DECIMAL","DOM_VK_DIVIDE","DOM_VK_F1",
+  "DOM_VK_F2","DOM_VK_F3","DOM_VK_F4","DOM_VK_F5","DOM_VK_F6","DOM_VK_F7","DOM_VK_F8","DOM_VK_F9","DOM_VK_F10",
+  "DOM_VK_F11","DOM_VK_F12","DOM_VK_F13","DOM_VK_F14","DOM_VK_F15","DOM_VK_F16","DOM_VK_F17","DOM_VK_F18","DOM_VK_F19",
+  "DOM_VK_F20","DOM_VK_F21","DOM_VK_F22","DOM_VK_F23","DOM_VK_F24","DOM_VK_NUM_LOCK","DOM_VK_SCROLL_LOCK","DOM_VK_COMMA",
+  "DOM_VK_PERIOD","DOM_VK_SLASH","DOM_VK_BACK_QUOTE","DOM_VK_OPEN_BRACKET","DOM_VK_BACK_SLASH","DOM_VK_CLOSE_BRACKET",
+  "DOM_VK_QUOTE","DOM_VK_META","MODIFICATION","ADDITION","REMOVAL","INVALID_EXPRESSION_ERR","TYPE_ERR","ANY_TYPE",
+  "NUMBER_TYPE","STRING_TYPE","BOOLEAN_TYPE","UNORDERED_NODE_ITERATOR_TYPE","ORDERED_NODE_ITERATOR_TYPE",
+  "UNORDERED_NODE_SNAPSHOT_TYPE","ORDERED_NODE_SNAPSHOT_TYPE","ANY_UNORDERED_NODE_TYPE","FIRST_ORDERED_NODE_TYPE",
+  "UNSPECIFIED_EVENT_TYPE_ERR",
+
+  # DHTML Object
+  "a","AbstractView","acronym","address","applet","area","Attr","attribute","b",
+  "BarProp","base","baseFont","bdo","BeforeUnloadEvent","bgSound","big","blockQuote","body","br","button",
+  "CanvasGradient","CanvasPattern","CanvasRenderingContext2D","caption","CDATASection","center","CharacterData",
+  "ChromeWindow","cite","clientInformation","clipboardData","code","col","colGroup","comment","Comment","Counter",
+  "CSS2Properties","CSSCharsetRule","CSSFontFaceRule","CSSImportRule","CSSMediaRule","CSSPageRule","CSSPrimitiveValue",
+  "CSSRGBColor","CSSRule","CSSRuleList","CSSStyleDeclaration","CSSStyleRule","CSSStyleSheet","CSSUnknownRule",
+  "CSSValue","CSSValueList","currentStyle","custom","dataTransfer","dd","defaults","del","dfn","dir","div","dl",
+  "document","Document","DocumentCSS","DocumentEvent","DocumentFragment","DocumentRange","DocumentStyle",
+  "DocumentType","DocumentView","DOMException","DOMImplementation","DOMImplementationCSS","DOMParser",
+  "DOMStringList","dt","Element","ElementCSSInlineStyle","em","embed","Entity","EntityReference","event",
+  "Event","EventException","EventListener","EventTarget","external","fieldSet","font","form","frame","frameSet",
+  "h","head","history","History","hr","html","HTMLAnchorElement","HTMLAppletElement","HTMLAreaElement",
+  "HTMLBRElement","HTMLBaseElement","HTMLBaseFontElement","HTMLBodyElement","HTMLButtonElement","HTMLCanvasElement",
+  "HTMLCollection","HTMLDListElement","HTMLDirectoryElement","HTMLDivElement","HTMLDocument","HTMLDOMImplementation",
+  "HTMLElement","HTMLEmbedElement","HTMLFieldSetElement","HTMLFontElement","HTMLFormElement","HTMLFrameElement",
+  "HTMLFrameSetElement","HTMLHRElement","HTMLHeadElement","HTMLHeadingElement","HTMLHtmlElement","HTMLIFrameElement",
+  "HTMLImageElement","HTMLInputElement","HTMLIsIndexElement","HTMLLIElement","HTMLLabelElement","HTMLLegendElement",
+  "HTMLLinkElement","HTMLMapElement","HTMLMenuElement","HTMLMetaElement","HTMLModElement","HTMLOListElement",
+  "HTMLObjectElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOptionsCollection","HTMLParagraphElement",
+  "HTMLParamElement","HTMLPreElement","HTMLQuoteElement","HTMLScriptElement","HTMLSelectElement","HTMLStyleElement",
+  "HTMLTableCaptionElement","HTMLTableCellElement","HTMLTableColElement","HTMLTableElement","HTMLTableRowElement",
+  "HTMLTableSectionElement","HTMLTextAreaElement","HTMLTitleElement","HTMLUListElement","i","iframe","ImageDocument",
+  "img","implementation","IMPORT","input","ins","isIndex","kbd","KeyboardEvent","KeyEvent","label","legend","li",
+  "link","LinkStyle","listing","location","Location","map","marquee","MediaList","menu","meta","MimeType",
+  "MimeTypeArray","MouseEvent","MutationEvent","NamedNodeMap","NameList","namespace","navigator","Navigator",
+  "nextID","noBR","Node","NodeList","noFrames","noScript","Notation","NSDocument","NSEvent","NSHTMLAnchorElement",
+  "NSHTMLAreaElement","NSHTMLButtonElement","NSHTMLDocument","NSHTMLElement","NSHTMLFormElement","NSHTMLFrameElement",
+  "NSHTMLHRElement","NSHTMLImageElement","NSHTMLInputElement","NSHTMLOptionElement","NSHTMLSelectElement",
+  "NSHTMLTextAreaElement","NSRange","NSUIEvent","object","ol","optGroup","option","p","page","PageTransitionEvent",
+  "param","plainText","Plugin","PluginArray","popup","PopupBlockedEvent","pre","ProcessingInstruction","q","Range",
+  "RangeException","Rect","RGBColor","rt","ruby","rule","runtimeStyle","s","samp","SchemaLoader","screen","Screen",
+  "script","select","selection","Selection","small","SmartCardEvent","span","strike","strong","style","styleSheet",
+  "StyleSheet","StyleSheetList","sub","sup","Supports","table","TableSectionElement","tBody","td","Text","textArea",
+  "TextNode","TextRange","TextRectangle","tFoot","th","tHead","title","tr","TreeWalker","tt","u","UIEvent","ul",
+  "userProfile","URI","var","ViewCSS","wbr","WebBrowser","WebNavigation","window","Window","Window2","WindowCollection",
+  "WindowInternal","xml","XMLDocument","XMLHttpRequest","XMLSerializer","xmp","XPathEvaluator","XPathException",
+  "XPathExpression","XPathNSResolver","XPathResult","XPointerResult","XSLTProcessor",
+
+  # DHTML Property
+  "_content","abbr","accelerator",
+  "accept","acceptCharset","accessKey","action","activeElement","additive","align","aLink","alinkColor","allowTransparency",
+  "alt","altHTML","altKey","altLeft","anchorNode","anchorOffset","appCodeName","APPLICATION","appMinorVersion","appName",
+  "appVersion","archive","async","ATOMICSELECTION","attrChange","attrName","autocomplete","availHeight","availLeft",
+  "availTop","availWidth","azimuth","axis","background","backgroundAttachment","backgroundColor","backgroundImage",
+  "backgroundPosition","backgroundPositionX","backgroundPositionY","backgroundRepeat","balance","Banner",
+  "BannerAbstract","BaseHref","baseURI","behavior","bgColor","BGCOLOR","bgProperties","blockDirection","blue",
+  "booleanValue","border","borderBottom","borderBottomColor","borderBottomStyle","borderBottomWidth","borderCollapse",
+  "borderColor","borderColorDark","borderColorLight","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth",
+  "borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderSpacing","borderStyle","borderTop",
+  "borderTopColor","borderTopStyle","borderTopWidth","borderWidth","borderWidths","bottom","bottomMargin","boundingHeight",
+  "boundingLeft","boundingTop","boundingWidth","browserDOMWindow","browserLanguage","bubbles","bufferDepth","button",
+  "cancelable","cancelBubble","canHaveChildren","canHaveHTML","canvas","caption","captionSide","cellIndex","cellPadding",
+  "cellSpacing","ch","channel","charCode","charset","checked","characterSet","chOff","cite","classid","className",
+  "clear","clientHeight","clientLeft","clientTop","clientWidth","clientX","clientY","clip","clipBottom","clipLeft",
+  "clipRight","clipTop","cloneContents","closed","code","codeBase","codeType","collapsed","color","colorDepth","cols",
+  "colSpan","columnNumber","commonAncestorContainer","compact","compatMode","complete","content","contentDocument",
+  "contentEditable","contentOverflow","contentType","contentWindow","cookie","cookieEnabled","coords","Count",
+  "counterIncrement","counterReset","cpuClass","crypto","cssFloat","cssRules","cssText","cssValueType","ctrlKey",
+  "ctrlLeft","cue","cueAfter","cueBefore","current","currentNode","currentTarget","cursor","data","dataFld","DATAFLD",
+  "dataFormatAs","DATAFORMATAS","dataPageSize","dataSrc","DATASRC","dateTime","declare","defaultCharset",
+  "defaultChecked","defaultSelected","defaultStatus","defaultValue","defaultView","defer","description","designMode",
+  "detail","deviceXDPI","deviceYDPI","dialogArguments","dialogHeight","dialogLeft","dialogTop","dialogWidth","dir",
+  "direction","directories","disabled","display","displays","doctype","document","documentElement","documentURI",
+  "domain","domConfig","dropEffect","dynsrc","effectAllowed","elevation","emptyCells","enabledPlugin","encoding",
+  "enctype","endContainer","endOffset","entities","event","eventPhase","expandEntityReferences","expando",
+  "explicitOriginalTarget","face","fgColor","FieldDelim","fileCreatedDate","fileModifiedDate","filename","fileSize",
+  "fileUpdatedDate","fillStyle","filter","firstChild","focusNode","focusOffset","font","fontFamily","fontSize",
+  "fontSizeAdjust","fontSmoothingEnabled","fontStretch","fontStyle","fontVariant","fontWeight","form","formName",
+  "frame","frameBorder","frameElement","frameSpacing","fromElement","fullScreen","galleryImg","globalAlpha",
+  "globalCompositeOperation","green","hash","hasLayout","headers","height","hidden","hideFocus","history","host",
+  "hostname","href","hreflang","hspace","htmlFor","htmlText","httpEquiv","id","identifier","imageIsOverflowing",
+  "imageIsResized","imageRequest","imageResizingEnabled","imeMode","implementation","indeterminate","index","inner",
+  "innerHeight","innerHTML","innerText","innerWidth","inputEncoding","internalSubset","invalidIteratorState","isChar",
+  "isCollapsed","isContentEditable","isDisabled","isMap","isMultiLine","isOpen","isTextEdit","isTrusted","keyCode",
+  "label","lang","language","lastChild","lastModified","layerX","layerY","layoutFlow","layoutGrid","layoutGridChar",
+  "layoutGridLine","layoutGridMode","layoutGridType","left","leftMargin","length","letterSpacing","lineBreak","lineCap",
+  "lineHeight","lineJoin","lineNumber","lineWidth","link","linkColor","listStyle","listStyleImage","listStylePosition",
+  "listStyleType","localName","location","locationbar","logicalXDPI","logicalYDPI","longDesc","loop","loop","lowsrc",
+  "lowSrc","margin","marginBottom","marginHeight","marginLeft","marginRight","margins","marginTop","marginWidth",
+  "markerOffset","marks","maxHeight","maxLength","maxWidth","media","mediaText","menuArguments","menubar","message",
+  "metaKey","method","Methods","minHeight","minWidth","miterLimit","MozAppearance","MozBackgroundClip",
+  "MozBackgroundInlinePolicy","MozBackgroundOrigin","MozBinding","MozBorderBottomColors","MozBorderLeftColors",
+  "MozBorderRadius","MozBorderRadiusBottomleft","MozBorderRadiusBottomright","MozBorderRadiusTopleft",
+  "MozBorderRadiusTopright","MozBorderRightColors","MozBorderTopColors","MozBoxAlign","MozBoxDirection","MozBoxFlex",
+  "MozBoxOrdinalGroup","MozBoxOrient","MozBoxPack","MozBoxSizing","MozColumnCount","MozColumnGap","MozColumnWidth",
+  "MozFloatEdge","MozForceBrokenImageIcon","MozImageRegion","MozMarginEnd","MozMarginStart","MozOpacity","MozOutline",
+  "MozOutlineColor","MozOutlineOffset","MozOutlineRadius","MozOutlineRadiusBottomleft","MozOutlineRadiusBottomright",
+  "MozOutlineRadiusTopleft","MozOutlineRadiusTopright","MozOutlineStyle","MozOutlineWidth","MozPaddingEnd",
+  "MozPaddingStart","MozUserFocus","MozUserInput","MozUserModify","MozUserSelect","multipart","multiple","name",
+  "nameProp","namespaceURI","naturalHeight","naturalWidth","navigator","newValue","next","nextPage","nextSibling",
+  "nodeName","nodeType","nodeValue","noHref","noResize","noShade","notationName","notations","noWrap","numberValue",
+  "object","offscreenBuffering","offsetHeight","offsetLeft","offsetParent","offsetTop","offsetWidth","offsetX",
+  "offsetY","onBefore","onLine","opacity","opener","originalTarget","orphans","oscpu","outerHeight","outerHTML",
+  "outerText","outerWidth","outline","outlineColor","outlineOffset","outlineStyle","outlineWidth","overflow","overflowX",
+  "overflowY","ownerDocument","ownerElement","ownerNode","ownerRule","owningElement","padding","paddingBottom",
+  "paddingLeft","paddingRight","paddings","paddingTop","page","pageBreakAfter","pageBreakBefore","pageBreakInside",
+  "pageX","pageXOffset","pageY","pageYOffset","palette","parent","parentElement","parentNode","parentRule",
+  "parentStyleSheet","parentTextEdit","parentWindow","pathname","pause","pauseAfter","pauseBefore","persisted",
+  "personalbar","pitch","pitchRange","pixelBottom","pixelDepth","pixelHeight","pixelLeft","pixelRight","pixelTop",
+  "pixelWidth","pkcs11","platform","playDuring","pluginspage","popupWindowFeatures","popupWindowURI","port","posBottom",
+  "posHeight","position","posLeft","posRight","posTop","posWidth","preferredStylesheetSet","prefix","previous",
+  "previousSibling","prevValue","primitiveType","product","productSub","profile","prompt","prompter","propertyName",
+  "protocol","pseudoClass","publicId","qualifier","quotes","rangeCount","rangeOffset","rangeParent","readOnly",
+  "readyState","reason","recordNumber","recordset","red","referrer","rel","relatedNode","relatedTarget","repeat",
+  "requestingWindowURI","responseText","responseXML","result","resultType","returnValue","rev","richness","right",
+  "rightMargin","root","rowIndex","rows","rowSpan","rubyAlign","rubyOverhang","rubyPosition","rules","saveType",
+  "scheme","scope","scopeName","screen","screenLeft","screenTop","screenX","screenY","scroll","scrollAmount",
+  "scrollbar3dLightColor","scrollbarArrowColor","scrollbarBaseColor","scrollbarDarkShadowColor","scrollbarFaceColor",
+  "scrollbarHighlightColor","scrollbars","scrollbarShadowColor","scrollbarTrackColor","scrollDelay","scrollHeight",
+  "scrolling","scrollLeft","scrollMaxX","scrollMaxY","scrollTop","scrollX","scrollY","scrollWidth","search",
+  "sectionRowIndex","SECURITY","securityPolicy","selected","selectedIndex","selectionEnd","selectionStart","selector",
+  "selectorText","self","separator","shape","sheet","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY",
+  "shiftKey","shiftLeft","sidebar","singleNodeValue","size","snapshotLength","sourceIndex","span","speak","speakHeader",
+  "speakNumeral","speakPunctuation","specified","speechRate","src","srcElement","srcFilter","srcUrn","standby","start",
+  "startContainer","startOffset","status","statusbar","statusText","stress","strictErrorChecking","stringValue",
+  "strokeStyle","style","STYLE","styleFloat","styleSheet","suffixes","summary","systemId","systemLanguage","tabIndex",
+  "tableLayout","tabStop","tagName","tagUrn","target","text","textAlign","textAlignLast","textAutospace","textContent",
+  "textDecoration","textDecorationBlink","textDecorationLineThrough","textDecorationNone","textDecorationOverline",
+  "textDecorationUnderline","textIndent","textJustify","textKashidaSpace","textLength","textOverflow","textShadow",
+  "textTransform","textUnderlinePosition","textZoom","tFoot","tHead","timeStamp","title","tmpRealOriginalTarget",
+  "toElement","tokenName","toolbar","top","topMargin","trueSpeed","type","typeDetail","unicodeBidi","uniqueID","units",
+  "unselectable","UNSELECTABLE","updateInterval","URL","URLUnencoded","urn","useMap","userAgent","userLanguage","vAlign",
+  "value","valueType","vcard_name","vendor","vendorSub","version","verticalAlign","view","viewInheritStyle","viewLink",
+  "viewMasterTab","visibility","visible","vLink","vlinkColor","voiceFamily","volume","vspace","whatToShow","wheelDelta",
+  "which","whiteSpace","widows","width","window","windowRoot","windowState","wordBreak","wordSpacing","wordWrap","wrap",
+  "writingMode","x","XMLDocument","xmlEncoding","XMLNS","xmlStandalone","xmlVersion","XSLDocument","y","zIndex","zoom",
+
+  # DHTML Method
+  "abort","add","addBehavior","addBinding","addColorStop","addEventListener","AddChannel","AddDesktopComponent",
+  "addElement","AddFavorite","addImport","addPageRule","addRange","addReadRequest","addRule","adoptNode","alert",
+  "appendChild","appendData","appendMedium","applyElement","arc","arcTo","assign","atob","attachEvent",
+  "AutoCompleteSaveForm","AutoScan","back","beginPath","bezierCurveTo","blur","btoa","captureEvents","ChooseColorDlg",
+  "clear","clearAttributes","clearData","clearInterval","clearParameters","clearRect","clearRequest","clearTimeout",
+  "click","clip","cloneNode","cloneRange","close","closePath","collapse","collapseToEnd","collapseToStart",
+  "compareBoundaryPoints","compareDocumentPosition","compareEndPoints","compareNode","comparePoint","componentFromPoint",
+  "confirm","contains","containsNode","containsNS","createAttribute","createAttributeNS","createCaption",
+  "createCDATASection","createComment","createContextualFragment","createControlRange","createCSSStyleSheet",
+  "createDocument","createDocumentFragment","createDocumentType","createElement","createElementNS",
+  "createEntityReference","createEvent","createEventObject","createExpression","createLinearGradient",
+  "createHTMLDocument","createNodeIterator","createNSResolver","createPattern","createPopup",
+  "createProcessingInstruction","createRadialGradient","createRange","createRangeCollection","createStyleSheet",
+  "createTextNode","createTextRange","createTFoot","createTHead","createTreeWalker","deleteCaption","deleteCell",
+  "deleteContents","deleteData","deleteFromDocument","deleteMedium","deleteRow","deleteRule","deleteTFoot",
+  "deleteTHead","detach","detachEvent","disableExternalCapture","dispatchEvent","doImport","doReadRequest",
+  "doScroll","dragDrop","drawImage","dump","duplicate","elementFromPoint","enableExternalCapture","empty",
+  "escape","evaluate","evaluateFIXptr","evaluateWithContext","evaluateXPointer","execCommand","execCommandShowHelp",
+  "execScript","expand","extend","extractContents","fill","fillRect","find","findText","fireEvent","firstPage",
+  "focus","forward","getAdjacentText","getAllResponseHeaders","getAnonymousElementByAttribute","getAnonymousNodes",
+  "getAttention","getAttentionWithCycleCount","getAttribute","getAttributeNode","getAttributeNodeNS","getAttributeNS",
+  "getBindingParent","getBookmark","getBoundingClientRect","getBoxObjectFor","getCharset","getClientRects",
+  "getComputedStyle","getContext","getCounterValue","getData","getElementById","getElementsByName","getElementsByTagName",
+  "getElementsByTagNameNS","getExpression","getFeature","getFloatValue","getName","getNamedItem","getNamedItemNS",
+  "getNamespaceURI","getOverrideStyle","getParameter","getPreventDefault","getPropertyCSSValue","getPropertyPriority",
+  "getPropertyValue","getRangeAt","getRectValue","getResponseHeader","getRGBColorValue","getSelection","getStringValue",
+  "getSVGDocument","getUserData","go","hasAttribute","hasAttributeNS","hasAttributes","hasChildNodes","hasFeature",
+  "hasFocus","hide","home","ImportExportFavorites","importNode","importStylesheet","Init","initEvent","initKeyEvent",
+  "initMouseEvent","initMutationEvent","initPageTransitionEvent","initPopupBlockedEvent","initUIEvent","inRange",
+  "insertNode","insertAdjacentElement","insertAdjacentHTML","insertAdjacentText","insertBefore","insertCell","insertData",
+  "insertRow","insertRule","intersectsNode","isDefaultNamespace","isEqual","isEqualNode","isPointInRange","isSameNode",
+  "IsSubscribed","isSupported","item","Item","iterateNext","javaEnabled","lastPage","lineTo","load","loadAsync",
+  "loadBindingDocument","loadOverlay","lookupNamespaceURI","lookupPrefix","maximize","mergeAttributes","minimize",
+  "move","moveBy","moveEnd","moveRow","moveStart","moveTo","moveToBookmark","moveToElementText","moveToPoint",
+  "namedItem","namedRecordset","navigate","NavigateAndFind","nextNode","nextPage","normalize","normalizeDocument",
+  "nSDetach","open","openDialog","openRequest","overrideMimeType","parentElement","parseFromBuffer","parseFromStream",
+  "parseFromString","pasteHTML","preference","preventBubble","preventCapture","preventDefault","previousNode",
+  "previousPage","print","processSchemaElement","prompt","quadraticCurveTo","queryCommandEnabled","queryCommandIndeterm",
+  "queryCommandState","queryCommandSupported","queryCommandText","queryCommandValue","recalc","rect","refresh",
+  "releaseCapture","releaseEvents","reload","remove","removeAllRanges","removeAttribute","removeAttributeNode",
+  "removeAttributeNS","removeBehavior","removeBinding","removeChild","removeEventListener","removeExpression",
+  "removeNamedItem","removeNamedItemNS","removeNode","removeParameter","removeProperty","removeRange","removeRule",
+  "renameNode","replace","replaceAdjacentText","replaceChild","replaceData","replaceNode","reset","resizeBy",
+  "resizeTo","restore","restoreImage","restoreImageTo","rotate","routeEvent","save","scale","scroll","scrollBy",
+  "scrollByLines","scrollByPages","scrollIntoView","scrollTo","select","selectAllChildren","selectionLanguageChange",
+  "selectNode","selectNodeContents","send","serializeToStream","serializeToString","setActive","setAttribute",
+  "setAttributeNode","setAttributeNodeNS","setAttributeNS","setBoxObjectFor","setCapture","setCursor","setData",
+  "setEnd","setEndAfter","setEndBefore","setEndPoint","setExpression","setFloatValue","setInterval","setNamedItem",
+  "setNamedItemNS","setParameter","setProperty","setPropertyPriority","setRequestHeader","setResizable",
+  "setSelectionRange","setStart","setStartAfter","setStartBefore","setStringValue","setTimeout","setUserData",
+  "show","ShowBrowserUI","showHelp","showModalDialog","showModelessDialog","shrinkToFit","sizeToContent",
+  "snapshotItem","splitText","start","stop","stopPropagation","stroke","strokeRect","submit","substringData",
+  "supports","surroundContents","swapNode","tags","taintEnabled","toggleImageSize","transformToDocument",
+  "transformToFragment","translate","unescape","updateCommands","urns","write","writeln",
+
+  # DHTML Event
+  "onabort","onactivate",
+  "onafterprint","onafterupdate","onbeforeactivate","onbeforecopy","onbeforecut","onbeforedeactivate","onbeforeeditfocus",
+  "onbeforepaste","onbeforeprint","onbeforeunload","onbeforeupdate","onblur","onbounce","oncellchange","onchange",
+  "onclick","onclose","oncontextmenu","oncontrolselect","oncopy","oncut","ondataavailable","ondatasetchanged",
+  "ondatasetcomplete","ondblclick","ondeactivate","ondrag","ondragdrop","ondragend","ondragenter","ondragleave",
+  "ondragover","ondragstart","ondrop","onerror","onerrorupdate","onfilterchange","onfinish","onfocus","onfocusin",
+  "onfocusout","onhelp","onkeydown","onkeypress","onkeyup","onlayoutcomplete","onload","onlosecapture","onmousedown",
+  "onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onmove","onmoveend",
+  "onmovestart","onpaint","onpaste","onprogress","onpropertychange","onreadystatechange","onreset","onresize",
+  "onresizeend","onresizestart","onrowenter","onrowexit","onrowsdelete","onrowsinserted","onscroll","onselect",
+  "onselectionchange","onselectstart","onstart","onstop","onsubmit","onunload",
+
+  # DHTML Collection
+  "all","anchors","applets","areas",
+  "attributes","behaviorUrns","blockFormats","bookmarks","boundElements","cells","childNodes","children","classes",
+  "Components","controllers","controlRange","elements","embeds","filters","fonts","forms","frames","ids","images",
+  "imports","interfaces","layers","links","mimeTypes","namespaces","options","pages","plugins","rows","rules","scripts",
+  "styleSheets","tBodies","TextRange","TextRectangle",
+
+  # IE Default Behavior
+  "anchorClick","anim","clientCaps","download","homePage","httpFolder",
+  "mediaBar","saveFavorite","saveHistory","saveSnapshot","userData",
+
+  # IE Default Behavior Object
+  "MediaItem","PlaylistInfo",
+
+  # IE Default Behavior Property
+  "attributeCount",
+  "availHeight","availWidth","bufferDepth","colorDepth","connectionType","cookieEnabled","cpuClass","currentItem",
+  "disabledUI","duration","enabled","expires","folder","hasNextItem","height","image","javaEnabled","name","nextItem",
+  "openState","platform","playlistInfo","playState","sound","sourceURL","statics","systemLanguage","target",
+  "userLanguage","width","XMLDocument",
+
+  # IE Default Behavior Method
+  "addComponentRequest","addDABehavior","clearComponentRequest","compareVersions",
+  "doComponentRequest","getAttribute","getAttributeName","getComponentVersion","getItemInfo","isComponentInstalled",
+  "isHomePage","load","navigate","navigateFrame","navigateHomePage","playNext","playURL","removeAttribute",
+  "removeDABehavior","save","setAttribute","setHomePage","startDownload","stop",
+
+  # IE Default Behavior Event
+  "onhide","onload","onopenstatechange",
+  "onplaystatechange","onsave","onshow",
+
+  # XMLHTTP Object Property
+  "onreadystatechange","readyState","responseBody","responseStream","responseText",
+  "responseXML","status","statusText",
+
+  # XMLHTTP Object Method
+  "abort","getAllResponseHeaders","getResponseHeader","open","send",
+  "setRequestHeader"
+]
+
+
+def search(node, names):
+
+  if node.type == "assignment":
+    left = node.getChild("left", False)
+
+    if left:
+      variable = left.getChild("variable", False)
+
+      if variable:
+        last = variable.getLastChild()
+        first = variable.getFirstChild()
+
+        if last == first:
+          if last.type == "identifier":
+            pass
+
+        elif last.type == "identifier":
+          name = last.get("name")
+
+          ignore = False
+
+          if name in systemNames or name in qooxdooNames:
+            ignore = True
+
+          if not ignore:
+            for item in qooxdooStart:
+              if name.startswith(item):
+                ignore = True
+
+          # only apply to names which starts with an underscore
+          if not name.startswith("_"):
+            ignore = True
+
+          if not ignore:
+            if not names.has_key(name):
+              # print "Add %s" % name
+
+              names[name] = 1
+            else:
+              names[name] += 1
+
+  if node.hasChildren():
+    for child in node.children:
+      search(child, names)
+
+  return names
+
+
+
+
+def update(node, list, prefix):
+  counter = 0
+
+  if node.type == "identifier":
+    idenName = node.get("name", False)
+
+    if idenName != None and idenName in list:
+      replName = "%s%s" % (prefix, mapper.convert(list.index(idenName)))
+      node.set("name", replName)
+      counter += 1
+
+      # print "  - Replaced '%s' with '%s'" % (idenName, replName)
+
+  if node.hasChildren():
+    for child in node.children:
+      counter += update(child, list, prefix)
+
+  return counter
+
+
+
+def sort(names):
+  temp = []
+
+  for name in names:
+    temp.append({ "name" : name, "number" : names[name] })
+
+  temp.sort(lambda x, y: y["number"]-x["number"])
+
+  list = []
+
+  for item in temp:
+    list.append(item["name"])
+
+  print "  * Found %s names" % len(list)
+
+  return list
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/obfuscator.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/obfuscator.pyc
new file mode 100644 (file)
index 0000000..5de4c4c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/obfuscator.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/optparseext.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/optparseext.py
new file mode 100755 (executable)
index 0000000..487277e
--- /dev/null
@@ -0,0 +1,16 @@
+#!/usr/bin/env python
+
+from optparse import *
+
+class ExtendAction(Option):
+  ACTIONS = Option.ACTIONS + ("extend",)
+  STORE_ACTIONS = Option.STORE_ACTIONS + ("extend",)
+  TYPED_ACTIONS = Option.TYPED_ACTIONS + ("extend",)
+
+  def take_action(self, action, dest, opt, value, values, parser):
+    if action == "extend":
+      lvalue = value.split(",")
+      values.ensure_value(dest, []).extend(lvalue)
+    else:
+      Option.take_action(
+        self, action, dest, opt, value, values, parser)
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/optparseext.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/optparseext.pyc
new file mode 100644 (file)
index 0000000..7f63b30
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/optparseext.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/resources.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/resources.py
new file mode 100755 (executable)
index 0000000..ce345af
--- /dev/null
@@ -0,0 +1,88 @@
+#!/usr/bin/env python
+
+import os, shutil
+import config
+
+
+def copy(options, sortedIncludeList, fileDb):
+  print "  * Preparing configuration..."
+
+  overrideList = []
+
+  for overrideEntry in options.overrideResourceOutput:
+    # Parse
+    # fileId.resourceId:destinationDirectory
+    targetSplit = overrideEntry.split(":")
+    targetStart = targetSplit.pop(0)
+    targetStartSplit = targetStart.split(".")
+
+    # Store
+    overrideData = {}
+    overrideData["destinationDirectory"] = ":".join(targetSplit)
+    overrideData["resourceId"] = targetStartSplit.pop()
+    overrideData["fileId"] = ".".join(targetStartSplit)
+
+    # Append
+    overrideList.append(overrideData)
+
+  print "  * Syncing..."
+
+  for fileId in sortedIncludeList:
+    filePath = fileDb[fileId]["path"]
+    fileResources = fileDb[fileId]["resources"]
+
+    if len(fileResources) > 0:
+      print "    - Found %i resources in %s" % (len(fileResources), fileId)
+
+      for fileResource in fileResources:
+        fileResourceSplit = fileResource.split(":")
+
+        resourceId = fileResourceSplit.pop(0)
+        relativeDirectory = ":".join(fileResourceSplit)
+
+        sourceDirectory = os.path.join(fileDb[fileId]["resourceInput"], relativeDirectory)
+        destinationDirectory = os.path.join(fileDb[fileId]["resourceOutput"], relativeDirectory)
+
+        # Searching for overrides
+        for overrideData in overrideList:
+          if overrideData["fileId"] == fileId and overrideData["resourceId"] == resourceId:
+            destinationDirectory = overrideData["destinationDirectory"]
+
+        print "      - Copy %s => %s" % (sourceDirectory, destinationDirectory)
+
+        try:
+          os.listdir(sourceDirectory)
+        except OSError:
+          print "        - Source directory isn't readable! Ignore resource!"
+          continue
+
+        for root, dirs, files in os.walk(sourceDirectory):
+
+          # Filter ignored directories
+          for ignoredDir in config.DIRIGNORE:
+            if ignoredDir in dirs:
+              dirs.remove(ignoredDir)
+
+          # Searching for items (resource files)
+          for itemName in files:
+
+            # Generate absolute source file path
+            itemSourcePath = os.path.join(root, itemName)
+
+            # Extract relative path and directory
+            itemRelPath = itemSourcePath.replace(sourceDirectory + os.sep, "")
+            itemRelDir = os.path.dirname(itemRelPath)
+
+            # Generate destination directory and file path
+            itemDestDir = os.path.join(destinationDirectory, itemRelDir)
+            itemDestPath = os.path.join(itemDestDir, itemName)
+
+            # Check/Create destination directory
+            if not os.path.exists(itemDestDir):
+              os.makedirs(itemDestDir)
+
+            # Copy file
+            if options.verbose:
+              print "      - Copying: %s => %s" % (itemSourcePath, itemDestPath)
+
+            shutil.copyfile(itemSourcePath, itemDestPath)
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/resources.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/resources.pyc
new file mode 100644 (file)
index 0000000..4c08b8e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/resources.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/settings.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/settings.py
new file mode 100755 (executable)
index 0000000..1e17e53
--- /dev/null
@@ -0,0 +1,97 @@
+#!/usr/bin/env python
+
+import sys, re, os, optparse
+import filetool
+
+
+
+
+def generate(options):
+  if len(options.defineRuntimeSetting) == 0:
+    return ""
+
+  typeFloat = re.compile("^([0-9\-]+\.[0-9]+)$")
+  typeNumber = re.compile("^([0-9\-])$")
+
+  settingsStr = ""
+
+  settingsStr += 'if(!window.qx)qx={};'
+
+  if options.addNewLines:
+    settingsStr += "\n"
+
+  settingsStr += 'if(!qx.Settings)qx.Settings={};'
+
+  if options.addNewLines:
+    settingsStr += "\n"
+
+  settingsStr += 'if(!qx.Settings._customSettings)qx.Settings._customSettings={};'
+
+  if options.addNewLines:
+    settingsStr += "\n"
+
+  for setting in options.defineRuntimeSetting:
+    settingSplit = setting.split(":")
+    settingKey = settingSplit.pop(0)
+    settingValue = ":".join(settingSplit)
+
+    settingKeySplit = settingKey.split(".")
+    settingKeyName = settingKeySplit.pop()
+    settingKeySpace = ".".join(settingKeySplit)
+
+    checkStr = 'if(!qx.Settings._customSettings["%s"])qx.Settings._customSettings["%s"]={};' % (settingKeySpace, settingKeySpace)
+    if not checkStr in settingsStr:
+      settingsStr += checkStr
+
+      if options.addNewLines:
+        settingsStr += "\n"
+
+    settingsStr += 'qx.Settings._customSettings["%s"]["%s"]=' % (settingKeySpace, settingKeyName)
+
+    if settingValue == "false" or settingValue == "true" or typeFloat.match(settingValue) or typeNumber.match(settingValue):
+      settingsStr += '%s' % settingValue
+
+    else:
+      settingsStr += '"%s"' % settingValue.replace("\"", "\\\"")
+
+    settingsStr += ";"
+
+    if options.addNewLines:
+      settingsStr += "\n"
+
+  return settingsStr
+
+
+
+
+def main():
+  parser = optparse.OptionParser()
+
+  parser.add_option("-d", "--define-runtime-setting", action="append", dest="defineRuntimeSetting", metavar="NAMESPACE.KEY:VALUE", default=[], help="Define a setting.")
+  parser.add_option("-s", "--settings-script-file", dest="settingsScriptFile", metavar="FILENAME", help="Name of settings script file.")
+  parser.add_option("-n", "--add-new-lines", action="store_true", dest="addNewLines", default=False, help="Keep newlines in compiled files.")
+
+  (options, args) = parser.parse_args()
+
+  if options.settingsScriptFile == None:
+    print "  * Please define the output file!"
+    sys.exit(1)
+
+  if len(options.defineRuntimeSetting) == 0:
+    print "  * Please define at least one runtime setting!"
+    sys.exit(1)
+
+  print "   * Saving settings to %s" % options.settingsScriptFile
+  filetool.save(options.settingsScriptFile, generate(options))
+
+
+
+
+if __name__ == '__main__':
+  try:
+    main()
+
+  except KeyboardInterrupt:
+    print
+    print "  * Keyboard Interrupt"
+    sys.exit(1)
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/settings.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/settings.pyc
new file mode 100644 (file)
index 0000000..e6cbe3d
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/settings.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/stringoptimizer.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/stringoptimizer.py
new file mode 100755 (executable)
index 0000000..4c0f3c9
--- /dev/null
@@ -0,0 +1,173 @@
+#!/usr/bin/env python
+
+import tree
+
+
+def search(node, verbose=False):
+  return search_loop(node, {}, verbose)
+
+
+def search_loop(node, stringMap={}, verbose=False):
+  if node.type == "constant" and node.get("constantType") == "string":
+
+    if verbose:
+      print "    - Found: %s" % node.get("value")
+
+    if node.get("detail") == "singlequotes":
+      quote = "'"
+    elif node.get("detail") == "doublequotes":
+      quote = '"'
+
+    value = "%s%s%s" % (quote, node.get("value"), quote)
+
+    if value in stringMap:
+      stringMap[value] += 1
+    else:
+      stringMap[value] = 1
+
+  if check(node, verbose):
+    for child in node.children:
+      search_loop(child, stringMap, verbose)
+
+  return stringMap
+
+
+
+def check(node, verbose=False):
+  # Needs children
+  if not node.hasChildren():
+    return False
+
+  # Try to find all output statements
+  if node.type == "call":
+    cu = node
+    nx = cu.getChild("operand", False)
+
+    if nx != None:
+      cu = nx
+
+    all = cu.getAllChildrenOfType("identifier")
+
+    for ch in all:
+      if ch.get("name", False) in [ "Error", "debug", "info", "warning", "error", "alert" ]:
+        if verbose:
+          print "    - Ignore output statement at line: %s" % ch.get("line")
+        return False
+
+  # Try to find all constant assignments (ns.UPPER = string)
+  elif node.type == "assignment":
+    left = node.getChild("left", False)
+    if left != None:
+      var = left.getChild("variable", False)
+
+      if var != None:
+        last = var.getLastChild()
+
+        if last.type == "identifier" and last.get("name").isupper():
+          if verbose:
+            print "    - Ignore constant assignment at line: %s" % last.get("line")
+          return False
+
+  # Try to find all constant assignments from Maps ({ UPPER : string })
+  elif node.type == "keyvalue":
+    if node.get("key").isupper():
+      if verbose:
+        print "    - Ignore constant key value at line: %s" % node.get("line")
+      return False
+
+  return True
+
+
+
+def sort(stringMap):
+  stringList = []
+
+  for value in stringMap:
+    stringList.append({ "value" : value, "number" : stringMap[value] })
+
+  stringList.sort(lambda x, y: y["number"]-x["number"])
+
+  return stringList
+
+
+
+
+def replace(node, stringList, var="$", verbose=False):
+  if node.type == "constant" and node.get("constantType") == "string":
+    if node.get("detail") == "singlequotes":
+      quote = "'"
+    elif node.get("detail") == "doublequotes":
+      quote = '"'
+
+    oldvalue = "%s%s%s" % (quote, node.get("value"), quote)
+
+    pos = 0
+    for item in stringList:
+      if item["value"] == oldvalue:
+        newvalue = "%s[%s]" % (var, pos)
+
+        if verbose:
+          print "    - Replace: %s => %s" % (oldvalue, newvalue)
+
+        line = node.get("line")
+
+
+        # GENERATE IDENTIFIER
+
+        newidentifier = tree.Node("identifier")
+        newidentifier.set("line", line)
+
+        childidentifier = tree.Node("identifier")
+        childidentifier.set("line", line)
+        childidentifier.set("name", var)
+
+        newidentifier.addChild(childidentifier)
+
+
+
+        # GENERATE KEY
+
+        newkey = tree.Node("key")
+        newkey.set("line", line)
+
+        newconstant = tree.Node("constant")
+        newconstant.set("line", line)
+        newconstant.set("constantType", "number")
+        newconstant.set("value", "%s" % pos)
+
+        newkey.addChild(newconstant)
+
+
+
+        # COMBINE CHILDREN
+
+        newnode = tree.Node("accessor")
+        newnode.set("line", line)
+        newnode.set("optimized", True)
+        newnode.set("original", oldvalue)
+        newnode.addChild(newidentifier)
+        newnode.addChild(newkey)
+
+
+        # REPLACE NODE
+
+        node.parent.replaceChild(node, newnode)
+        break
+
+      pos += 1
+
+  if check(node, verbose):
+    for child in node.children:
+      replace(child, stringList, var, verbose)
+
+
+
+def replacement(stringList, var="$"):
+  repl = "%s=[" % var
+
+  for item in stringList:
+    repl += "%s," % (item["value"])
+
+  repl = repl[:-1] + "];"
+
+  return repl
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/stringoptimizer.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/stringoptimizer.pyc
new file mode 100644 (file)
index 0000000..57ada1c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/stringoptimizer.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tagtool.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tagtool.py
new file mode 100755 (executable)
index 0000000..0313be7
--- /dev/null
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+
+import sys, string, re, optparse
+import config, filetool, comment, random
+
+
+R_TAG = re.compile("random\(.*\)")
+
+
+
+def main():
+  parser = optparse.OptionParser()
+
+  parser.add_option("-q", "--quiet", action="store_false", dest="verbose", default=False, help="Quiet output mode.")
+  parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help="Verbose output mode.")
+  parser.add_option("--encoding", dest="encoding", default="utf-8", metavar="ENCODING", help="Defines the encoding expected for input files.")
+
+  (options, args) = parser.parse_args()
+  
+  if len(args) == 0:
+    print "Needs one or more arguments (files) to tag!"
+    sys.exit(1)
+    
+  for fileName in args:
+    if options.verbose:
+      print "  * Tagging %s" % fileName
+    
+    origFileContent = filetool.read(fileName, options.encoding)
+    patchedFileContent = R_TAG.sub("random(%s)" % random.randint(100, 999), origFileContent)
+    
+    if patchedFileContent != origFileContent:
+      filetool.save(fileName, patchedFileContent, options.encoding)
+
+
+
+
+if __name__ == '__main__':
+  try:
+    main()
+
+  except KeyboardInterrupt:
+    print
+    print "  * Keyboard Interrupt"
+    sys.exit(1)
+    
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/textile.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/textile.py
new file mode 100755 (executable)
index 0000000..a54e892
--- /dev/null
@@ -0,0 +1,2873 @@
+#!/usr/bin/env python
+# _*_ coding: latin1 _*_
+
+"""This is Textile
+A Humane Web Text Generator
+
+TODO:
+* Make it work with Python 2.1.
+* Make it work with Python 1.5.2? Or that's too optimistic?
+
+---
+To get an overview of all PyTextile's features, simply
+type 'tell me about textile.' in a single line.
+"""
+
+__authors__ = ["Roberto A. F. De Almeida (roberto@dealmeida.net)",
+               "Mark Pilgrim (f8dy@diveintomark.org)"]
+__version__ = "2.0.10"
+__date__ = "2004/10/06"
+__copyright__ = """
+Copyright (c) 2004, Roberto A. F. De Almeida, http://dealmeida.net/
+Copyright (c) 2003, Mark Pilgrim, http://diveintomark.org/
+All rights reserved.
+
+Original PHP version:
+Version 1.0
+21 Feb, 2003
+
+Copyright (c) 2003, Dean Allen, www.textism.com
+All rights reserved.
+
+Parts of the documentation and some of the regular expressions are (c) Brad
+Choate, http://bradchoate.com/. Thanks, Brad!
+"""
+__license__ = """
+Redistribution and use in source and binary forms, with or without 
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, 
+  this list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+* Neither the name Textile nor the names of its contributors may be used to
+  endorse or promote products derived from this software without specific
+  prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+"""
+__history__ = """
+1.0 - 2003/03/19 - MAP - initial release
+1.01 - 2003/03/19 - MAP - don't strip whitespace within <pre> tags;
+  map high-bit ASCII to HTML numeric entities
+1.02 - 2003/03/19 - MAP - changed hyperlink qtag expression to only
+  match valid URL characters (per RFC 2396); fixed preg_replace to
+  not match across line breaks (solves lots of problems with
+  mistakenly matching overlapping inline markup); fixed whitespace
+  stripping to only strip whitespace from beginning and end of lines,
+  not immediately before and after HTML tags.
+1.03 - 2003/03/20 - MAP - changed hyperlink qtag again to more
+  closely match original Textile (fixes problems with links
+  immediately followed by punctuation -- somewhere Dean is
+  grinning right now); handle curly apostrophe with "ve"
+  contraction; clean up empty titles at end.
+1.04 - 2003/03/23 - MAP - lstrip input to deal with extra spaces at
+  beginning of first line; tweaked list loop to handle consecutive lists
+1.1 - 2003/06/06 - MAP - created initial test suite for links and images,
+  and fixed a bunch of related bugs to pass them
+1.11 - 2003/07/20 - CL - don't demoronise unicode strings; handle
+  "they're" properly
+1.12 - 2003/07/23 - GW - print debug messages to stderr; handle bq(cite).
+1.13 - 2003/07/23 - MAP - wrap bq. text in <p>...</p>
+2 - 2004/03/26 - RAFA - rewritten from (almost) scratch to include
+  all features from Textile 2 and a little bit more.
+2.0.1 - 2004/04/02 - RAFA - Fixed validating function that uses uTidyLib.
+2.0.2 - 2004/04/02 - RAFA - Fixed problem with caps letters in URLs.
+2.0.3 - 2004/04/19 - RAFA - Multiple classes are allowed, thanks to Dave
+  Anderson. The "lang" attribute is now removed from <code>, to be valid
+  XHTML. Fixed <span class="caps">UCAS</span> problem.
+2.0.4 - 2004/05/20 - RAFA, CLB - Added inline formatting to table cells.
+  Curt Bergmann fixed a bug with the colspan formatting. Added Amazon
+  Associated id.
+2.0.5 - 2004/06/01 - CL - Applied patch from Chris Lawrence to (1) fix
+  that Amazon associates ID was being added to all search URIs, (2)
+  customize the Amazon site used with the AMAZON variable, and (3) added
+  an "isbn" URI type that links directly to an Amazon product by ISBN or
+  Amazon ASIN.
+2.0.6 - 2004/06/02 - RAFA - Fixed CAPS problem, again. I hope this is
+  the last time.
+2.0.7 - 2004/06/04 - RAFA, MW - Fixed bullet macro, thanks to Adam
+  Messinger. Added patch from Michal Wallace changing {}.pop() for
+  compatibility with Python 2.2.x.
+2.0.8 - 2004/06/25 - RAFA - Strip tags when adding the content from a
+  footnote to the reference link. Escaped '<' and '>' in the self-
+  generated documentation.
+2.0.9 - 2004/10/04 - RAFA - In images, if ALT is not defined, add an
+  empty attribute. Added "LaTeX" style open/close quotes. Fixed a bug 
+  where the acronym definition was being formatted with inline rules. 
+  Handle "broken" lines correctly, removing the <br /> from inside
+  split HTML tags.
+2.0.10 - 2004/10/06 - RAFA, LO - Escape all non-escaped ampersands.
+  Applied "trivial patch" from Ludvig Omholt to remove newline right
+  after the <pre> tag.
+"""
+
+# Set your encoding here.
+ENCODING = 'utf-8'
+
+# Output? Non-ASCII characters will be automatically
+# converted to XML entities if you choose ASCII.
+OUTPUT = 'utf-8'
+
+# PyTextile can optionally validate the generated
+# XHTML code. We can use either mxTidy or uTidyLib.
+# You can change the default behaviour here.
+VALIDATE = 0
+
+# If you want h1. to be translated to something other
+# than <h1>, change this offset. You can also pass it
+# as an argument to textile().
+HEAD_OFFSET = 0
+
+# If you want to use itex2mml, specify the full path
+# to the binary here. You can download it from here:
+# http://golem.ph.utexas.edu/~distler/blog/files/itexToMML.tar.gz
+itex2mml = None
+#itex2mml = '/usr/local/bin/itex2MML'
+#itex2mml = '/usr/people/almeida/bin/itex2MML'
+
+# PyTextile can optionally sanitize the generated XHTML,
+# which is good for weblog comments or if you don't trust
+# yourself.
+SANITIZE = 1
+
+# Turn debug on?
+DEBUGLEVEL = 0
+
+# Amazon associate for links: "keywords":amazon
+# If you don't have one, please consider leaving mine here as
+# a small compensation for writing PyTextile. It's commented
+# off as default.
+#amazon_associate_id = 'bomtempo-21'
+amazon_associate_id = None 
+
+#AMAZON = 'www.amazon.co.uk'
+AMAZON = 'www.amazon.com'
+
+import re
+import sys
+import os
+import sgmllib
+import unicodedata
+
+
+def _in_tag(text, tag):
+    """Extracts text from inside a tag.
+
+    This function extracts the text from inside a given tag.
+    It's useful to get the text between <body></body> or
+    <pre></pre> when using the validators or the colorizer.
+    """
+    if text.count('<%s' % tag):
+        text = text.split('<%s' % tag, 1)[1]
+        if text.count('>'):
+            text = text.split('>', 1)[1]
+    if text.count('</%s' % tag):
+        text = text.split('</%s' % tag, 1)[0]
+
+    text = text.strip().replace('\r\n', '\n')
+
+    return text
+
+
+# If you want PyTextile to automatically colorize
+# your Python code, you need the htmlizer module
+# from Twisted. (You can just grab this file from
+# the distribution, it has no other dependencies.)
+try:
+    #from twisted.python import htmlizer
+    import htmlizer
+    from StringIO import StringIO
+
+    def _color(code):
+        """Colorizer Python code.
+
+        This function wraps a text string in a StringIO,
+        and passes it to the htmlizer function from
+        Twisted.
+        """
+        # Fix line continuations.
+        code = preg_replace(r' \\\n', ' \\\\\n', code)
+        
+        code_in  = StringIO(code)
+        code_out = StringIO()
+
+        htmlizer.filter(code_in, code_out)
+
+        # Remove <pre></pre> from input.
+        code = _in_tag(code_out.getvalue(), 'pre')
+
+        # Fix newlines.
+        code = code.replace('<span class="py-src-newline">\n</span>', '<span class="py-src-newline"></span>\n')
+
+        return code
+
+except ImportError:
+    htmlizer = None
+
+
+# PyTextile can optionally validate the generated
+# XHTML code using either mxTidy or uTidyLib.
+try:
+    # This is mxTidy.
+    from mx.Tidy import Tidy
+    
+    def _tidy1(text):
+        """mxTidy's XHTML validator.
+
+        This function is a wrapper to mxTidy's validator.
+        """
+        nerrors, nwarnings, text, errortext = Tidy.tidy(text, output_xhtml=1, numeric_entities=1, wrap=0)
+        return _in_tag(text, 'body')
+
+    _tidy = _tidy1
+
+except ImportError:
+    try:
+        # This is uTidyLib.
+        import tidy
+
+        def _tidy2(text):
+            """uTidyLib's XHTML validator.
+
+            This function is a wrapper to uTidyLib's validator.
+            """
+            text = tidy.parseString(text,  output_xhtml=1, add_xml_decl=0, indent=0, tidy_mark=0)
+            return _in_tag(str(text), 'body')
+
+        _tidy = _tidy2
+
+    except ImportError:
+        _tidy = None
+    
+
+# This is good for debugging.
+def _debug(s, level=1):
+    """Outputs debug information to sys.stderr.
+
+    This function outputs debug information if DEBUGLEVEL is
+    higher than a given treshold.
+    """
+    if DEBUGLEVEL >= level: print >> sys.stderr, s
+
+
+#############################
+# Useful regular expressions.
+parameters = {
+    # Horizontal alignment.
+    'align':    r'''(?:(?:<>|[<>=])                 # Either '<>', '<', '>' or '='
+                    (?![^\s]*(?:<>|[<>=])))         # Look-ahead to ensure it happens once
+                 ''',
+
+    # Horizontal padding.
+    'padding':  r'''(?:[\(\)]+)                     # Any number of '(' and/or ')'
+                 ''',
+
+    # Class and/or id.
+    'classid':  r'''(                               #
+                        (?:\(\#[\w]+\))             # (#id)
+                        |                           #
+                        (?:\((?:[\w]+(?:\s[\w]+)*)  #
+                            (?:\#[\w]+)?\))         # (class1 class2 ... classn#id) or (class1 class2 ... classn)
+                    )                               #
+                    (?![^\s]*(?:\([\w#]+\)))        # must happen once
+                 ''',
+           
+    # Language.
+    'lang':     r'''(?:\[[\w-]+\])                  # [lang]
+                    (?![^\s]*(?:\[.*?\]))           # must happen once
+                 ''',
+
+    # Style.
+    'style':    r'''(?:{[^\}]+})                    # {style}
+                    (?![^\s]*(?:{.*?}))             # must happen once
+                 ''',
+}
+
+res = {
+    # Punctuation.
+    'punct': r'''[\!"#\$%&'()\*\+,\-\./:;<=>\?@\[\\\]\^_`{\|}\~]''',
+        
+    # URL regular expression.
+    'url':   r'''(?=[a-zA-Z0-9./#])                         # Must start correctly
+                 (?:                                        # Match the leading part (proto://hostname, or just hostname)
+                     (?:ftp|https?|telnet|nntp)             #     protocol
+                     ://                                    #     ://
+                     (?:                                    #     Optional 'username:password@'
+                         \w+                                #         username
+                         (?::\w+)?                          #         optional :password
+                         @                                  #         @
+                     )?                                     # 
+                     [-\w]+(?:\.\w[-\w]*)+                  #     hostname (sub.example.com)
+                 |                                          #
+                     (?:mailto:)?                           #     Optional mailto:
+                     [-\+\w]+                               #     username
+                     \@                                     #     at
+                     [-\w]+(?:\.\w[-\w]*)+                  #     hostname
+                 |                                          #
+                     (?:[a-z0-9](?:[-a-z0-9]*[a-z0-9])?\.)+ #     domain without protocol
+                     (?:com\b                               #     TLD
+                     |  edu\b                               #
+                     |  biz\b                               #
+                     |  gov\b                               #
+                     |  in(?:t|fo)\b                        #     .int or .info
+                     |  mil\b                               #
+                     |  net\b                               #
+                     |  org\b                               #
+                     |  museum\b                            #
+                     |  aero\b                              #
+                     |  coop\b                              #
+                     |  name\b                              #
+                     |  pro\b                               #
+                     |  [a-z][a-z]\b                        #     two-letter country codes
+                     )                                      #
+                 )?                                         #
+                 (?::\d+)?                                  # Optional port number
+                 (?:                                        # Rest of the URL, optional
+                     /?                                     #     Start with '/'
+                     [^.!,?;:"'<>()\[\]{}\s\x7F-\xFF]*      #     Can't start with these
+                     (?:                                    #
+                         [.!,?;:]+                          #     One or more of these
+                         [^.!,?;:"'<>()\[\]{}\s\x7F-\xFF]+  #     Can't finish with these
+                         #'"                                #     # or ' or "
+                     )*                                     #
+                 )?                                         #
+              ''',
+
+
+    # Block attributes.
+    'battr': r'''(?P<parameters>                            # 
+                     (?: %(align)s                          # alignment
+                     |   %(classid)s                        # class and/or id
+                     |   %(padding)s                        # padding tags
+                     |   %(lang)s                           # [lang]
+                     |   %(style)s                          # {style}
+                     )+                                     #
+                 )?                                         #
+              ''' % parameters,
+
+    # (Un)ordered list attributes.
+    'olattr': r'''(?P<olparameters>                         # 
+                      (?: %(align)s                         # alignment
+                      | ((?:\(\#[\w]+\))                    # (#id)
+                          |                                 #
+                          (?:\((?:[\w]+(?:\s[\w]+)*)        #
+                            (?:\#[\w]+)?\))                 # (class1 class2 ... classn#id) or (class1 class2 ... classn)
+                      )                                     #
+                      |   %(padding)s                       # padding tags
+                      |   %(lang)s                          # [lang]
+                      |   %(style)s                         # {style}
+                      )+                                    #
+                  )?                                        #
+              ''' % parameters,
+
+    # List item attributes.
+    'liattr': r'''(?P<liparameters>                         # 
+                      (?: %(align)s                         # alignment
+                      |   %(classid)s                       # class and/or id
+                      |   %(padding)s                       # padding tags
+                      |   %(lang)s                          # [lang]
+                      |   %(style)s                         # {style}
+                      )+                                    #
+                  )?                                        #
+              ''' % parameters,
+
+    # Qtag attributes.
+    'qattr': r'''(?P<parameters>                            #
+                     (?: %(classid)s                        # class and/or id
+                     |   %(lang)s                           # [lang]
+                     |   %(style)s                          # {style}
+                     )+                                     #
+                 )?                                         #
+              ''' % parameters,
+
+    # Link attributes.
+    'lattr': r'''(?P<parameters>                            # Links attributes
+                     (?: %(align)s                          # alignment
+                     |   %(classid)s                        # class and/or id
+                     |   %(lang)s                           # [lang]
+                     |   %(style)s                          # {style}
+                     )+                                     #
+                 )?                                         #
+              ''' % parameters,
+
+    # Image attributes.
+    'iattr': r'''(?P<parameters>                            #
+                     (?:                                    #
+                     (?: [<>]+                              # horizontal alignment tags
+                         (?![^\s]*(?:[<>])))                #     (must happen once)
+                     |                                      # 
+                     (?: [\-\^~]+                           # vertical alignment tags
+                         (?![^\s]*(?:[\-\^~])))             #     (must happen once)
+                     | %(classid)s                          # class and/or id
+                     | %(padding)s                          # padding tags
+                     | %(style)s                            # {style}
+                     )+                                     #
+                 )?                                         #
+              ''' % parameters,
+
+    # Resize attributes.
+    'resize': r'''(?:                                       #
+                      (?:([\d]+%?)x([\d]+%?))               # 20x10
+                      |                                     #
+                      (?:                                   # or
+                          (?:([\d]+)%?w\s([\d]+)%?h)        #     10h 20w
+                          |                                 #     or
+                          (?:([\d]+)%?h\s([\d]+)%?w)        #     20w 10h 
+                      )                                     #
+                  )?                                        #
+               ''',
+
+    # Table attributes.
+    'tattr': r'''(?P<parameters>                            #
+                     (?:                                    #
+                     (?: [\^~]                              # vertical alignment
+                         (?![^\s]*(?:[\^~])))               #     (must happen once)
+                     |   %(align)s                          # alignment
+                     |   %(lang)s                           # [lang]
+                     |   %(style)s                          # {style}
+                     |   %(classid)s                        # class and/or id
+                     |   %(padding)s                        # padding
+                     |   _                                  # is this a header row/cell?
+                     |   \\\d+                              # colspan
+                     |   /\d+                               # rowspan
+                     )+                                     #
+                 )?                                         #
+              ''' % parameters,
+}
+
+
+def preg_replace(pattern, replacement, text):
+    """Alternative re.sub that handles empty groups.
+
+    This acts like re.sub, except it replaces empty groups with ''
+    instead of raising an exception.
+    """
+
+    def replacement_func(matchobj):
+        counter = 1
+        rc = replacement
+        _debug(matchobj.groups())
+        for matchitem in matchobj.groups():
+            if not matchitem:
+                matchitem = ''
+
+            rc = rc.replace(r'\%s' % counter, matchitem)
+            counter += 1
+
+        return rc
+        
+    p = re.compile(pattern)
+    _debug(pattern)
+
+    return p.sub(replacement_func, text)
+
+
+def html_replace(pattern, replacement, text):
+    """Replacement outside HTML tags.
+
+    Does a preg_replace only outside HTML tags.
+    """
+    # If there is no html, do a simple search and replace.
+    if not re.search(r'''<.*>''', text):
+        return preg_replace(pattern, replacement, text)
+
+    else:
+        lines = []
+        # Else split the text into an array at <>.
+        for line in re.split('(<.*?>)', text):
+            if not re.match('<.*?>', line):
+                line = preg_replace(pattern, replacement, line)
+
+            lines.append(line)
+
+        return ''.join(lines)
+
+
+# PyTextile can optionally sanitize the generated XHTML,
+# which is good for weblog comments. This code is from
+# Mark Pilgrim's feedparser.
+class _BaseHTMLProcessor(sgmllib.SGMLParser):
+    elements_no_end_tag = ['area', 'base', 'basefont', 'br', 'col', 'frame', 'hr',
+      'img', 'input', 'isindex', 'link', 'meta', 'param']
+    
+    def __init__(self):
+        sgmllib.SGMLParser.__init__(self)
+    
+    def reset(self):
+        self.pieces = []
+        sgmllib.SGMLParser.reset(self)
+
+    def normalize_attrs(self, attrs):
+        # utility method to be called by descendants
+        attrs = [(k.lower(), sgmllib.charref.sub(lambda m: unichr(int(m.groups()[0])), v).strip()) for k, v in attrs]
+        attrs = [(k, k in ('rel', 'type') and v.lower() or v) for k, v in attrs]
+        return attrs
+    
+    def unknown_starttag(self, tag, attrs):
+        # called for each start tag
+        # attrs is a list of (attr, value) tuples
+        # e.g. for <pre class="screen">, tag="pre", attrs=[("class", "screen")]
+        strattrs = "".join([' %s="%s"' % (key, value) for key, value in attrs])
+        if tag in self.elements_no_end_tag:
+            self.pieces.append("<%(tag)s%(strattrs)s />" % locals())
+        else:
+            self.pieces.append("<%(tag)s%(strattrs)s>" % locals())
+        
+    def unknown_endtag(self, tag):
+        # called for each end tag, e.g. for </pre>, tag will be "pre"
+        # Reconstruct the original end tag.
+        if tag not in self.elements_no_end_tag:
+            self.pieces.append("</%(tag)s>" % locals())
+
+    def handle_charref(self, ref):
+        # called for each character reference, e.g. for "&#160;", ref will be "160"
+        # Reconstruct the original character reference.
+        self.pieces.append("&#%(ref)s;" % locals())
+
+    def handle_entityref(self, ref):
+        # called for each entity reference, e.g. for "&copy;", ref will be "copy"
+        # Reconstruct the original entity reference.
+        self.pieces.append("&%(ref)s;" % locals())
+
+    def handle_data(self, text):
+        # called for each block of plain text, i.e. outside of any tag and
+        # not containing any character or entity references
+        # Store the original text verbatim.
+        self.pieces.append(text)
+
+    def handle_comment(self, text):
+        # called for each HTML comment, e.g. <!-- insert Javascript code here -->
+        # Reconstruct the original comment.
+        self.pieces.append("<!--%(text)s-->" % locals())
+
+    def handle_pi(self, text):
+        # called for each processing instruction, e.g. <?instruction>
+        # Reconstruct original processing instruction.
+        self.pieces.append("<?%(text)s>" % locals())
+
+    def handle_decl(self, text):
+        # called for the DOCTYPE, if present, e.g.
+        # <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+        #     "http://www.w3.org/TR/html4/loose.dtd">
+        # Reconstruct original DOCTYPE
+        self.pieces.append("<!%(text)s>" % locals())
+
+    def output(self):
+        """Return processed HTML as a single string"""
+        return "".join(self.pieces)
+
+
+class _HTMLSanitizer(_BaseHTMLProcessor):
+    acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area', 'b', 'big',
+      'blockquote', 'br', 'button', 'caption', 'center', 'cite', 'code', 'col',
+      'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset',
+      'font', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'input',
+      'ins', 'kbd', 'label', 'legend', 'li', 'map', 'menu', 'ol', 'optgroup',
+      'option', 'p', 'pre', 'q', 's', 'samp', 'select', 'small', 'span', 'strike',
+      'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th',
+      'thead', 'tr', 'tt', 'u', 'ul', 'var']
+
+    acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey',
+      'action', 'align', 'alt', 'axis', 'border', 'cellpadding', 'cellspacing',
+      'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'clear', 'cols',
+      'colspan', 'color', 'compact', 'coords', 'datetime', 'dir', 'disabled',
+      'enctype', 'for', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace',
+      'id', 'ismap', 'label', 'lang', 'longdesc', 'maxlength', 'media', 'method',
+      'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'prompt', 'readonly',
+      'rel', 'rev', 'rows', 'rowspan', 'rules', 'scope', 'selected', 'shape', 'size',
+      'span', 'src', 'start', 'summary', 'tabindex', 'target', 'title', 'type',
+      'usemap', 'valign', 'value', 'vspace', 'width']
+    
+    unacceptable_elements_with_end_tag = ['script', 'applet'] 
+    
+    # This if for MathML.
+    mathml_elements = ['math', 'mi', 'mn', 'mo', 'mrow', 'msup']
+    mathml_attributes = ['mode', 'xmlns']
+
+    acceptable_elements = acceptable_elements + mathml_elements
+    acceptable_attributes = acceptable_attributes + mathml_attributes
+                  
+    def reset(self):
+        _BaseHTMLProcessor.reset(self)
+        self.unacceptablestack = 0
+        
+    def unknown_starttag(self, tag, attrs):
+        if not tag in self.acceptable_elements:
+            if tag in self.unacceptable_elements_with_end_tag:
+                self.unacceptablestack += 1
+            return
+        attrs = self.normalize_attrs(attrs)
+        attrs = [(key, value) for key, value in attrs if key in self.acceptable_attributes]
+        _BaseHTMLProcessor.unknown_starttag(self, tag, attrs)
+
+    def unknown_endtag(self, tag):
+        if not tag in self.acceptable_elements:
+            if tag in self.unacceptable_elements_with_end_tag:
+                self.unacceptablestack -= 1
+            return
+        _BaseHTMLProcessor.unknown_endtag(self, tag)
+
+    def handle_pi(self, text):
+        pass
+
+    def handle_decl(self, text):
+        pass
+
+    def handle_data(self, text):
+        if not self.unacceptablestack:
+            _BaseHTMLProcessor.handle_data(self, text)
+
+
+class Textiler:
+    """Textile formatter.
+
+    This is the base class for the PyTextile text processor.
+    """
+    def __init__(self, text=''):
+        """Instantiate the class, passing the text to be formatted.
+            
+        Here we pre-process the text and collect all the link
+        lookups for later.
+        """
+        self.text = text
+
+        # Basic regular expressions.
+        self.res = res
+
+        # Smart searches.
+        self.searches = {}
+        self.searches['imdb']   = 'http://www.imdb.com/Find?for=%s'
+        self.searches['google'] = 'http://www.google.com/search?q=%s'
+        self.searches['python'] = 'http://www.python.org/doc/current/lib/module-%s.html'
+        if amazon_associate_id:
+            self.searches['isbn']   = ''.join(['http://', AMAZON, '/exec/obidos/ASIN/%s/', amazon_associate_id])
+            self.searches['amazon'] = ''.join(['http://', AMAZON, '/exec/obidos/external-search?mode=blended&keyword=%s&tag=', amazon_associate_id])
+        else:
+            self.searches['isbn']   = ''.join(['http://', AMAZON, '/exec/obidos/ASIN/%s'])
+            self.searches['amazon'] = ''.join(['http://', AMAZON, '/exec/obidos/external-search?mode=blended&keyword=%s'])
+
+        # These are the blocks we know.
+        self.signatures = [
+                           # Paragraph.
+                           (r'''^p                       # Paragraph signature
+                                %(battr)s                # Paragraph attributes
+                                (?P<dot>\.)              # .
+                                (?P<extend>\.)?          # Extended paragraph denoted by a second dot
+                                \s                       # whitespace
+                                (?P<text>.*)             # text
+                             ''' % self.res, self.paragraph),
+   
+                           # Pre-formatted text.
+                           (r'''^pre                     # Pre signature
+                                %(battr)s                # Pre attributes
+                                (?P<dot>\.)              # .
+                                (?P<extend>\.)?          # Extended pre denoted by a second dot
+                                \s                       # whitespace
+                                (?P<text>.*)             # text
+                             ''' % self.res, self.pre),
+   
+                           # Block code.
+                           (r'''^bc                      # Blockcode signature
+                                %(battr)s                # Blockcode attributes
+                                (?P<dot>\.)              # .
+                                (?P<extend>\.)?          # Extended blockcode denoted by a second dot
+                                \s                       # whitespace
+                                (?P<text>.*)             # text
+                             ''' % self.res, self.bc),
+   
+                           # Blockquote.
+                           (r'''^bq                      # Blockquote signature
+                                %(battr)s                # Blockquote attributes
+                                (?P<dot>\.)              # .
+                                (?P<extend>\.)?          # Extended blockquote denoted by a second dot
+                                (:(?P<cite>              # Optional cite attribute
+                                (                        #
+                                    %(url)s              #     URL
+                                |   "[\w]+(?:\s[\w]+)*"  #     "Name inside quotes"
+                                ))                       #
+                                )?                       #
+                                \s                       # whitespace
+                                (?P<text>.*)             # text
+                             ''' % self.res, self.blockquote),
+   
+                           # Header.
+                           (r'''^h                       # Header signature
+                                (?P<header>\d)           # Header number
+                                %(battr)s                # Header attributes
+                                (?P<dot>\.)              # .
+                                (?P<extend>\.)?          # Extended header denoted by a second dot
+                                \s                       # whitespace
+                                (?P<text>.*)             # text
+                             ''' % self.res, self.header),
+   
+                           # Footnote.
+                           (r'''^fn                      # Footnote signature
+                                (?P<footnote>[\d]+)      # Footnote number
+                                (?P<dot>\.)              # .
+                                (?P<extend>\.)?          # Extended footnote denoted by a second dot
+                                \s                       # whitespace
+                                (?P<text>.*)             # text
+                             ''', self.footnote),
+   
+                           # Definition list.
+                           (r'''^dl                      # Definition list signature
+                                %(battr)s                # Definition list attributes
+                                (?P<dot>\.)              # .
+                                (?P<extend>\.)?          # Extended definition list denoted by a second dot
+                                \s                       # whitespace
+                                (?P<text>.*)             # text
+                             ''' % self.res, self.dl),
+                           
+                           # Ordered list (attributes to first <li>).
+                           (r'''^%(olattr)s              # Ordered list attributes
+                                \#                       # Ordered list signature
+                                %(liattr)s               # List item attributes
+                                (?P<dot>\.)?             # .
+                                \s                       # whitespace
+                                (?P<text>.*)             # text
+                             ''' % self.res, self.ol),
+   
+                           # Unordered list (attributes to first <li>).
+                           (r'''^%(olattr)s              # Unrdered list attributes
+                                \*                       # Unordered list signature
+                                %(liattr)s               # Unordered list attributes
+                                (?P<dot>\.)?             # .
+                                \s                       # whitespace
+                                (?P<text>.*)             # text
+                             ''' % self.res, self.ul),
+   
+                           # Escaped text.
+                           (r'''^==?(?P<text>.*?)(==)?$  # Escaped text
+                             ''', self.escape),
+   
+                           (r'''^(?P<text><.*)$          # XHTML tag
+                             ''', self.escape),
+   
+                           # itex code.
+                           (r'''^(?P<text>               # itex code
+                                \\\[                     # starts with \[
+                                .*?                      # complicated mathematical equations go here
+                                \\\])                    # ends with \]
+                             ''', self.itex),
+   
+                           # Tables.
+                           (r'''^table                   # Table signature
+                                %(tattr)s                # Table attributes
+                                (?P<dot>\.)              # .
+                                (?P<extend>\.)?          # Extended blockcode denoted by a second dot
+                                \s                       # whitespace
+                                (?P<text>.*)             # text
+                             ''' % self.res, self.table),
+                           
+                           # Simple tables.
+                           (r'''^(?P<text>
+                                \|
+                                .*)
+                             ''', self.table),
+   
+                           # About.
+                           (r'''^(?P<text>tell\sme\sabout\stextile\.)$''', self.about),
+                          ]
+
+
+    def preprocess(self):
+        """Pre-processing of the text.
+
+        Remove whitespace, fix carriage returns.
+        """
+        # Remove whitespace.
+        self.text = self.text.strip()
+
+        # Zap carriage returns.
+        self.text = self.text.replace("\r\n", "\n")
+        self.text = self.text.replace("\r", "\n")
+
+        # Minor sanitizing.
+        self.text = self.sanitize(self.text)
+
+
+    def grab_links(self):
+        """Grab link lookups.
+
+        Check the text for link lookups, store them in a 
+        dictionary, and clean them up.
+        """
+        # Grab links like this: '[id]example.com'
+        links = {}
+        p = re.compile(r'''(?:^|\n)\[([\w]+?)\](%(url)s)(?:$|\n)''' % self.res, re.VERBOSE)
+        for key, link in p.findall(self.text):
+            links[key] = link
+
+        # And clear them from the text.
+        self.text = p.sub('', self.text)
+
+        return links
+
+
+    def process(self, head_offset=HEAD_OFFSET, validate=VALIDATE, sanitize=SANITIZE, output=OUTPUT, encoding=ENCODING):
+        """Process the text.
+
+        Here we actually process the text, splitting the text in
+        blocks and applying the corresponding function to each
+        one of them.
+        """
+        # Basic global changes.
+        self.preprocess()
+
+        # Grab lookup links and clean them from the text.
+        self._links = self.grab_links()
+
+        # Offset for the headers.
+        self.head_offset = head_offset
+
+        # Process each block.
+        self.blocks = self.split_text()
+
+        text = []
+        for [function, captures] in self.blocks:
+            text.append(function(**captures))
+
+        text = '\n\n'.join(text)
+
+        # Add titles to footnotes.
+        text = self.footnotes(text)
+
+        # Convert to desired output.
+        text = unicode(text, encoding)
+        text = text.encode(output, 'xmlcharrefreplace')
+
+        # Sanitize?
+        if sanitize:
+            p = _HTMLSanitizer()
+            p.feed(text)
+            text = p.output()
+
+        # Validate output.
+        if _tidy and validate:
+            text = _tidy(text)
+
+        return text
+
+
+    def sanitize(self, text):
+        """Fix single tags.
+
+        Fix tags like <img />, <br /> and <hr />.
+
+        ---
+        h1. Sanitizing
+
+        Textile can help you generate valid XHTML(eXtensible HyperText Markup Language).
+        It will fix any single tags that are not properly closed, like
+        @<img />@, @<br />@ and @<hr />@.
+
+        If you have "mx.Tidy":http://www.egenix.com/files/python/mxTidy.html
+        and/or "&micro;TidyLib":http://utidylib.sourceforge.net/ installed,
+        it also can optionally validade the generated code with these wrappers
+        to ensure 100% valid XHTML(eXtensible HyperText Markup Language).
+        """
+        # Fix single tags like <img /> and <br />.
+        text = preg_replace(r'''<(img|br|hr)(.*?)(?:\s*/?\s*)?>''', r'''<\1\2 />''', text)
+
+        # Remove ampersands.
+        text = preg_replace(r'''&(?!#?[xX]?(?:[0-9a-fA-F]+|\w{1,8});)''', r'''&amp;''', text)
+
+        return text
+
+
+    def split_text(self):
+        """Process the blocks from the text.
+
+        Split the blocks according to the signatures, join extended
+        blocks and associate each one of them with a function to
+        process them.
+
+        ---
+        h1. Blocks
+
+        Textile process your text by dividing it in blocks. Each block
+        is identified by a signature and separated from other blocks by
+        an empty line.
+
+        All signatures should end with a period followed by a space. A
+        header @<h1></h1>@ can be done this way:
+
+        pre. h1. This is a header 1.
+
+        Blocks may continue for multiple paragraphs of text. If you want
+        a block signature to stay "active", use two periods after the
+        signature instead of one. For example:
+
+        pre.. bq.. This is paragraph one of a block quote.
+
+        This is paragraph two of a block quote.
+
+        =p. Now we're back to a regular paragraph.
+
+        p. Becomes:
+        
+        pre.. <blockquote>
+        <p>This is paragraph one of a block quote.</p>
+
+        <p>This is paragraph two of a block quote.</p>
+        </blockquote>
+
+        <p>Now we&#8217;re back to a regular paragraph.</p>
+
+        p. The blocks can be customised by adding parameters between the
+        signature and the period. These include:
+
+        dl. {style rule}:A CSS(Cascading Style Sheets) style rule.
+        [ll]:A language identifier (for a "lang" attribute).
+        (class) or (#id) or (class#id):For CSS(Cascading Style Sheets) class and id attributes.
+        &gt;, &lt;, =, &lt;&gt;:Modifier characters for alignment. Right-justification, left-justification, centered, and full-justification. The paragraph will also receive the class names "right", "left", "center" and "justify", respectively.
+        ( (one or more):Adds padding on the left. 1em per "(" character is applied. When combined with the align-left or align-right modifier, it makes the block float. 
+        ) (one or more):Adds padding on the right. 1em per ")" character is applied. When combined with the align-left or align-right modifier, it makes the block float.
+
+        Here's an overloaded example:
+
+        pre. p(())>(class#id)[en]{color:red}. A simple paragraph.
+
+        Becomes:
+
+        pre. <p lang="en" style="color:red;padding-left:2em;padding-right:2em;float:right;" class="class right" id="id">A simple paragraph.</p>
+        """
+        # Clear signature.
+        clear_sig = r'''^clear(?P<alignment>[<>])?\.$'''
+        clear = None
+
+        extending  = 0
+
+        # We capture the \n's because they are important inside "pre..".
+        blocks = re.split(r'''((\n\s*){2,})''', self.text)
+        output = []
+        for block in blocks:
+            # Check for the clear signature.
+            m = re.match(clear_sig, block)
+            if m:
+                clear = m.group('alignment')
+                if clear:
+                    clear = {'<': 'clear:left;', '>': 'clear:right;'}[clear]
+                else:
+                    clear = 'clear:both;'
+
+            else:
+                # Check each of the code signatures.
+                for regexp, function in self.signatures:
+                    p = re.compile(regexp, (re.VERBOSE | re.DOTALL))
+                    m = p.match(block)
+                    if m:
+                        # Put everything in a dictionary.
+                        captures = m.groupdict()
+
+                        # If we are extending a block, we require a dot to
+                        # break it, so we can start lines with '#' inside
+                        # an extended <pre> without matching an ordered list.
+                        if extending and not captures.get('dot', None):
+                            output[-1][1]['text'] += block
+                            break 
+                        elif captures.has_key('dot'):
+                            del captures['dot']
+                            
+                        # If a signature matches, we are not extending a block.
+                        extending = 0
+
+                        # Check if we should extend this block.
+                        if captures.has_key('extend'):
+                            extending = captures['extend']
+                            del captures['extend']
+                            
+                        # Apply head_offset.
+                        if captures.has_key('header'):
+                            captures['header'] = int(captures['header']) + self.head_offset
+
+                        # Apply clear.
+                        if clear:
+                            captures['clear'] = clear
+                            clear = None
+
+                        # Save the block to be processed later.
+                        output.append([function, captures])
+
+                        break
+
+                else:
+                    if extending:
+                        # Append the text to the last block.
+                        output[-1][1]['text'] += block
+                    elif block.strip():
+                        output.append([self.paragraph, {'text': block}])
+    
+        return output
+
+
+    def parse_params(self, parameters, clear=None, align_type='block'):
+        """Parse the parameters from a block signature.
+
+        This function parses the parameters from a block signature,
+        splitting the information about class, id, language and
+        style. The positioning (indentation and alignment) is parsed
+        and stored in the style.
+
+        A paragraph like:
+
+            p>(class#id){color:red}[en]. Paragraph.
+
+        or:
+            
+            p{color:red}[en](class#id)>. Paragraph.
+
+        will have its parameters parsed to:
+
+            output = {'lang' : 'en',
+                      'class': 'class',
+                      'id'   : 'id',
+                      'style': 'color:red;text-align:right;'}
+
+        Note that order is not important.
+        """
+        if not parameters:
+            if clear:
+                return {'style': clear}
+            else:
+                return {}
+
+        output = {}
+        
+        # Match class from (class) or (class#id).
+        m = re.search(r'''\((?P<class>[\w]+(\s[\w]+)*)(\#[\w]+)?\)''', parameters)
+        if m: output['class'] = m.group('class')
+
+        # Match id from (#id) or (class#id).
+        m = re.search(r'''\([\w]*(\s[\w]+)*\#(?P<id>[\w]+)\)''', parameters)
+        if m: output['id'] = m.group('id')
+
+        # Match [language].
+        m = re.search(r'''\[(?P<lang>[\w-]+)\]''', parameters)
+        if m: output['lang'] = m.group('lang')
+
+        # Match {style}.
+        m = re.search(r'''{(?P<style>[^\}]+)}''', parameters)
+        if m:
+            output['style'] = m.group('style').replace('\n', '')
+
+            # If necessary, apppend a semi-comma to the style.
+            if not output['style'].endswith(';'):
+                output['style'] += ';'
+
+        # Clear the block?
+        if clear:
+            output['style'] = output.get('style', '') + clear
+
+        # Remove classes, ids, langs and styles. This makes the 
+        # regular expression for the positioning much easier.
+        parameters = preg_replace(r'''\([\#\w\s]+\)''', '', parameters)
+        parameters = preg_replace(r'''\[[\w-]+\]''', '', parameters)
+        parameters = preg_replace(r'''{[\w:;#%-]+}''', '', parameters)
+
+        style = []
+        
+        # Count the left indentation.
+        l_indent = parameters.count('(')
+        if l_indent: style.append('padding-left:%dem;' % l_indent)
+
+        # Count the right indentation.
+        r_indent = parameters.count(')')
+        if r_indent: style.append('padding-right:%dem;' % r_indent)
+
+        # Add alignment.
+        if align_type == 'image':
+            align = [('<', 'float:left;', ' left'),
+                     ('>', 'float:right;', ' right')]
+
+            valign = [('^', 'vertical-align:text-top;', ' top'),
+                      ('-', 'vertical-align:middle;', ' middle'),
+                      ('~', 'vertical-align:text-bottom;', ' bottom')]
+
+            # Images can have both a vertical and a horizontal alignment.
+            for alignments in [align, valign]:
+                for _align, _style, _class in alignments:
+                    if parameters.count(_align):
+                        style.append(_style)
+                        
+                        # Append a class name related to the alignment.
+                        output['class'] = output.get('class', '') + _class
+                        break
+
+        elif align_type == 'table':
+            align = [('<', 'left'),
+                     ('>', 'right'),
+                     ('=', 'center'),
+                     ('<>', 'justify')]
+
+            valign = [('^', 'top'),
+                      ('~', 'bottom')]
+
+            # Horizontal alignment.
+            for _align, _style, in align:
+                if parameters.count(_align):
+                    output['align'] = _style
+            
+            # Vertical alignment.
+            for _align, _style, in valign:
+                if parameters.count(_align):
+                    output['valign'] = _style
+
+            # Colspan and rowspan.
+            m = re.search(r'''\\(\d+)''', parameters)
+            if m:
+                #output['colspan'] = m.groups()
+                output['colspan'] = int(m.groups()[0])
+
+            m = re.search(r'''/(\d+)''', parameters)
+            if m:
+                output['rowspan'] = int(m.groups()[0])
+
+        else:
+            if l_indent or r_indent:
+                alignments = [('<>', 'text-align:justify;', ' justify'),
+                              ('=', 'text-align:center;', ' center'),
+                              ('<', 'float:left;', ' left'),
+                              ('>', 'float:right;', ' right')]
+            else:
+                alignments = [('<>', 'text-align:justify;', ' justify'),
+                              ('=', 'text-align:center;', ' center'),
+                              ('<', 'text-align:left;', ' left'),
+                              ('>', 'text-align:right;', ' right')]
+
+            for _align, _style, _class in alignments:
+                if parameters.count(_align):
+                    style.append(_style)
+
+                    # Append a class name related to the alignment.
+                    output['class'] = output.get('class', '') + _class
+                    break
+
+        # Join all the styles.
+        output['style'] = output.get('style', '') + ''.join(style)
+
+        # Remove excess whitespace.
+        if output.has_key('class'):
+            output['class'] = output['class'].strip()
+
+        return output 
+        
+
+    def build_open_tag(self, tag, attributes={}, single=0):
+        """Build the open tag with specified attributes.
+
+        This function is used by all block builders to 
+        generate the opening tags with the attributes of
+        the block.
+        """
+        # Open tag.
+        open_tag = ['<%s' % tag]
+        for k,v in attributes.items():
+            # The ALT attribute can be empty.
+            if k == 'alt' or v: open_tag.append(' %s="%s"' % (k, v))
+
+        if single:
+            open_tag.append(' /')
+
+        # Close tag.
+        open_tag.append('>')
+
+        return ''.join(open_tag)
+
+
+    def paragraph(self, text, parameters=None, attributes=None, clear=None):
+        """Process a paragraph.
+
+        This function processes the paragraphs, enclosing the text in a 
+        <p> tag and breaking lines with <br />. Paragraphs are formatted
+        with all the inline rules.
+
+        ---
+        h1. Paragraph
+        
+        This is how you write a paragraph:
+
+        pre. p. This is a paragraph, although a short one.
+        
+        Since the paragraph is the default block, you can safely omit its
+        signature ([@p@]). Simply write:
+
+        pre. This is a paragraph, although a short one.
+
+        Text in a paragraph block is wrapped in @<p></p>@ tags, and
+        newlines receive a <br /> tag. In both cases Textile will process
+        the text to:
+
+        pre. <p>This is a paragraph, although a short one.</p>
+
+        Text in a paragraph block is processed with all the inline rules.
+        """
+        # Split the lines.
+        lines = re.split('\n{2,}', text)
+        
+        # Get the attributes.
+        attributes = attributes or self.parse_params(parameters, clear)
+
+        output = []
+        for line in lines:
+            if line:
+                # Clean the line.
+                line = line.strip()
+                 
+                # Build the tag.
+                open_tag = self.build_open_tag('p', attributes)
+                close_tag = '</p>'
+
+                # Pop the id because it must be unique.
+                if attributes.has_key('id'): del attributes['id']
+
+                # Break lines. 
+                line = preg_replace(r'(<br />|\n)+', '<br />\n', line)
+
+                # Remove <br /> from inside broken HTML tags.
+                line = preg_replace(r'(<[^>]*)<br />\n(.*?>)', r'\1 \2', line)
+
+                # Inline formatting.
+                line = self.inline(line)
+
+                output.append(open_tag + line + close_tag)
+
+        return '\n\n'.join(output)
+
+
+    def pre(self, text, parameters=None, clear=None):
+        """Process pre-formatted text.
+
+        This function processes pre-formatted text into a <pre> tag.
+        No HTML is added for the lines, but @<@ and @>@ are translated into
+        HTML entities.
+
+        ---
+        h1. Pre-formatted text
+
+        Pre-formatted text can be specified using the @pre@ signature.
+        Inside a "pre" block, whitespace is preserved and @<@ and @>@ are
+        translated into HTML(HyperText Markup Language) entities
+        automatically.
+
+        Text in a "pre" block is _not processed_ with any inline rule.
+
+        Here's a simple example:
+
+        pre. pre. This text is pre-formatted.
+        Nothing interesting happens inside here...
+        
+        Will become:
+
+        pre. <pre>
+        This text is pre-formatted.
+        Nothing interesting happens inside here...
+        </pre>
+        """
+
+        # Remove trailing whitespace.
+        text = text.rstrip()
+
+        # Get the attributes.
+        attributes = self.parse_params(parameters, clear)
+
+        # Build the tag.
+        #open_tag = self.build_open_tag('pre', attributes) + '\n'
+        open_tag = self.build_open_tag('pre', attributes)
+        close_tag = '\n</pre>'
+
+        # Replace < and >.
+        text = text.replace('<', '&lt;')
+        text = text.replace('>', '&gt;')
+
+        return open_tag + text + close_tag
+
+
+    def bc(self, text, parameters=None, clear=None):
+        """Process block code.
+
+        This function processes block code into a <code> tag inside a
+        <pre>. No HTML is added for the lines, but @<@ and @>@ are translated
+        into HTML entities.
+
+        ---
+        h1. Block code
+
+        A block code, specified by the @bc@ signature, is a block of
+        pre-formatted text which also receives a @<code></code>@ tag. As
+        with "pre", whitespace is preserved and @<@ and @>@ are translated
+        into HTML(HyperText Markup Language) entities automatically.
+
+        Text in a "bc" code is _not processed_ with the inline rules.
+        
+        If you have "Twisted":http://www.twistedmatrix.com/ installed,
+        Textile can automatically colorize your Python code if you
+        specify its language as "Python":
+        
+        pre. bc[python]. from twisted.python import htmlizer
+
+        This will become:
+
+        pre. <pre>
+        <code lang="python">
+        <span class="py-src-keyword">from</span> <span class="py-src-variable">twisted</span><span class="py-src-op">.</span><span class="py-src-variable">python</span> <span class="py-src-keyword">import</span> <span class="py-src-variable">htmlizer</span>
+        </code>
+        </pre>
+
+        The colors can be specified in your CSS(Cascading Style Sheets)
+        file. If you don't want to install Twisted, you can download just
+        the @htmlizer@ module "independently":http://dealmeida.net/code/htmlizer.py.txt.
+        """
+
+        # Get the attributes.
+        attributes = self.parse_params(parameters, clear)
+
+        # XHTML <code> can't have the attribute lang.
+        if attributes.has_key('lang'):
+            lang = attributes['lang']
+            del attributes['lang']
+        else:
+            lang = None
+
+        # Build the tag.
+        open_tag = '<pre>\n' + self.build_open_tag('code', attributes) + '\n'
+        close_tag = '\n</code>\n</pre>'
+
+        # Colorize Python code?
+        if htmlizer and lang == 'python':
+            text = _color(text)
+        else:
+            # Replace < and >.
+            text = text.replace('<', '&lt;')
+            text = text.replace('>', '&gt;')
+
+        return open_tag + text + close_tag
+
+
+    def dl(self, text, parameters=None, clear=None):
+        """Process definition list.
+
+        This function process definition lists. The text inside
+        the <dt> and <dd> tags is processed for inline formatting.
+
+        ---
+        h1. Definition list
+
+        A definition list starts with the signature @dl@, and has
+        its items separated by a @:@. Here's a simple example:
+
+        pre. dl. name:Sir Lancelot of Camelot.
+        quest:To seek the Holy Grail.
+        color:Blue.
+
+        Becomes:
+
+        pre. <dl>
+        <dt>name</dt>
+        <dd>Sir Lancelot of Camelot.</dd>
+        <dt>quest</dt>
+        <dd>To seek the Holy Grail.</dd>
+        <dt>color</dt>
+        <dd>Blue.</dd>
+        </dl>
+        """
+        # Get the attributes.
+        attributes = self.parse_params(parameters, clear)
+
+        # Build the tag.
+        open_tag = self.build_open_tag('dl', attributes) + '\n'
+        close_tag = '\n</dl>'
+
+        lines = text.split('\n')
+        output = []
+        for line in lines:
+            if line.count(':'):
+                [dt, dd] = line.split(':', 1)
+            else:
+                dt,dd = line, ''
+
+            if dt: output.append('<dt>%s</dt>\n<dd>%s</dd>' % (dt, dd))
+
+        text = '\n'.join(output)
+
+        text = self.inline(text)
+
+        return open_tag + text + close_tag
+
+
+    def blockquote(self, text, parameters=None, cite=None, clear=None):
+        """Process block quote.
+
+        The block quote is inserted into a <blockquote> tag, and
+        processed as a paragraph. An optional cite attribute can
+        be appended on the last line after two dashes (--), or
+        after the period following ':' for compatibility with the
+        Perl version.
+
+        ---
+        h1. Blockquote
+
+        A blockquote is denoted by the signature @bq@. The text in this
+        block will be enclosed in @<blockquote></blockquote>@ and @<p></p>@,
+        receiving the same formatting as a paragraph. For example:
+
+        pre. bq. This is a blockquote.
+
+        Becomes:
+
+        pre. <blockquote>
+        <p>This is a blockquote.</p>
+        </blockquote>
+
+        You can optionally specify the @cite@ attribute of the blockquote,
+        using the following syntax:
+
+        pre. bq.:http://example.com Some text.
+
+        pre. bq.:"John Doe" Some other text.
+
+        Becomes:
+
+        pre. <blockquote cite="http://example.com">
+        <p>Some text.</p>
+        </blockquote>
+
+        pre. <blockquote cite="John Doe">
+        <p>Some other text.</p>
+        </blockquote>
+
+        You can also specify the @cite@ using a pair of dashes on the
+        last line of the blockquote:
+
+        pre. bq. Some text.
+        -- http://example.com
+        """
+
+        # Get the attributes.
+        attributes = self.parse_params(parameters, clear)
+
+        if cite:
+            # Remove the quotes?
+            cite = cite.strip('"')
+            attributes['cite'] = cite
+        else:
+            # The citation should be on the last line.
+            text = text.split('\n')
+            if text[-1].startswith('-- '):
+                attributes['cite'] = text.pop()[3:]    
+        
+            text = '\n'.join(text)
+
+        # Build the tag.
+        open_tag = self.build_open_tag('blockquote', attributes) + '\n'
+        close_tag = '\n</blockquote>'
+
+        # Process the paragraph, passing the attributes.
+        # Does it make sense to pass the id, class, etc. to
+        # the paragraph instead of applying it to the
+        # blockquote tag?
+        text = self.paragraph(text)
+        
+        return open_tag + text + close_tag
+
+
+    def header(self, text, parameters=None, header=1, clear=None):
+        """Process a header.
+
+        The header number is captured by the regular 
+        expression and lives in header. If head_offset is
+        set, it is adjusted accordingly.
+
+        ---
+        h1. Header
+
+        A header is produced by the signature @hn@, where @n@ goes
+        from 1 to 6. You can adjust the relative output of the headers
+        passing a @head_offset@ attribute when calling @textile()@.
+
+        To make a header:
+
+        pre. h1. This is a header.
+
+        Becomes:
+
+        pre. <h1>This is a header.</h1>
+        """
+        # Get the attributes.
+        attributes = self.parse_params(parameters, clear)
+
+        # Get the header number and limit it between 1 and 6.
+        n = header
+        n = min(n,6)
+        n = max(n,1)
+
+        # Build the tag.
+        open_tag = self.build_open_tag('h%d' % n, attributes)
+        close_tag = '</h%d>' % n
+
+        text = self.inline(text)
+
+        return open_tag + text + close_tag
+
+
+    def footnote(self, text, parameters=None, footnote=1, clear=None):
+        """Process a footnote.
+
+        A footnote is formatted as a paragraph of class
+        'footnote' and id 'fn%d', starting with the footnote
+        number in a <sup> tag. Here we just build the
+        attributes and pass them directly to self.paragraph().
+
+        ---
+        h1. Footnote
+
+        A footnote is produced by the signature @fn@ followed by
+        a number. Footnotes are paragraphs of a special CSS(Cascading Style Sheets)
+        class. An example:
+
+        pre. fn1. This is footnote number one.
+
+        Will produce this:
+
+        pre. <p class="footnote" id="fn1"><sup>1</sup> This is footnote number one.</p>
+
+        This footnote can be referenced anywhere on the text by the
+        following way:
+
+        pre. This is a reference[1] to footnote number one.
+
+        Which becomes:
+
+        pre. <p>This is a reference<sup class="footnote"><a href="#fn1" title="This is footnote number one.">1</a></sup> to footnote number 1.</p>
+
+        Note that the text from the footnote appears in the @title@ of the
+        link pointing to it.
+        """
+        # Get the number.
+        n = int(footnote)
+
+        # Build the attributes to the paragraph.
+        attributes = self.parse_params(parameters, clear)
+        attributes['class'] = 'footnote'
+        attributes['id']    = 'fn%d' % n
+
+        # Build the paragraph text.
+        text = ('<sup>%d</sup> ' % n) + text
+
+        # And return the paragraph.
+        return self.paragraph(text=text, attributes=attributes)
+
+
+    def build_li(self, items, liattributes):
+        """Build the list item.
+
+        This function build the list item of an (un)ordered list. It
+        works by peeking at the next list item, and searching for a
+        multi-list. If a multi-list is found, it is processed and 
+        appended inside the list item tags, as it should be.
+        """
+        lines = []
+        while len(items):
+            item = items.pop(0)
+
+            # Clean the line.
+            item = item.lstrip()
+            item = item.replace('\n', '<br />\n')
+
+            # Get list item attributes.
+            p = re.compile(r'''^%(liattr)s\s''' % self.res, re.VERBOSE)
+            m = p.match(item)
+            if m:
+                c = m.groupdict('')
+                liparameters = c['liparameters']
+                item = p.sub('', item)
+            else:
+                liparameters = ''
+
+            liattributes = liattributes or self.parse_params(liparameters)
+            
+            # Build the item tag.
+            open_tag_li = self.build_open_tag('li', liattributes) 
+
+            # Reset the attributes, which should be applied
+            # only to the first <li>.
+            liattributes = {}
+
+            # Build the closing tag.
+            close_tag_li = '</li>'
+
+            # Multi-list recursive routine.
+            # Here we check the _next_ items for a multi-list. If we
+            # find one, we extract all items of the multi-list and
+            # process them recursively.
+            if len(items):
+                inlist = []
+
+                # Grab all the items that start with # or *.
+                n_item = items.pop(0)
+
+                # Grab the <ol> parameters.
+                p = re.compile(r'''^%(olattr)s''' % self.res, re.VERBOSE)
+                m = p.match(n_item)
+                if m:
+                    c = m.groupdict('')
+                    olparameters = c['olparameters']
+                    tmp = p.sub('', n_item)
+                else:
+                    olparameters = ''
+
+                # Check for an ordered list inside this one.
+                if tmp.startswith('#'):
+                    n_item = tmp
+                    inlist.append(n_item)
+                    while len(items):
+                        # Peek into the next item.
+                        n_item = items.pop(0)
+                        if n_item.startswith('#'):
+                            inlist.append(n_item)
+                        else:
+                            items.insert(0, n_item)
+                            break
+                        
+                    inlist = self.ol('\n'.join(inlist), olparameters=olparameters)
+                    item = item + '\n' + inlist + '\n'
+
+                # Check for an unordered list inside this one.
+                elif tmp.startswith('*'):
+                    n_item = tmp
+                    inlist.append(n_item)
+                    while len(items):
+                        # Peek into the next item.
+                        n_item = items.pop(0)
+                        if n_item.startswith('*'):
+                            inlist.append(n_item)
+                        else:
+                            items.insert(0, n_item)
+                            break
+
+                    inlist = self.ul('\n'.join(inlist), olparameters=olparameters)
+                    item = item + '\n' + inlist + '\n'
+
+                # Otherwise we just put it back in the list.
+                else:
+                    items.insert(0, n_item)
+
+            item = self.inline(item)
+
+            item = open_tag_li + item + close_tag_li
+            lines.append(item)
+
+        return '\n'.join(lines)
+
+
+    def ol(self, text, liparameters=None, olparameters=None, clear=None):
+        """Build an ordered list.
+
+        This function basically just sets the <ol></ol> with the
+        right attributes, and then pass everything inside to 
+        _build_li, which does the real tough recursive job.
+
+        ---
+        h1. Ordered lists
+
+        Ordered lists can be constructed this way:
+
+        pre. # Item number 1.
+        # Item number 2.
+        # Item number 3.
+
+        And you get:
+
+        pre. <ol>
+        <li>Item number 1.</li>
+        <li>Item number 2.</li>
+        <li>Item number 3.</li>
+        </ol>
+
+        If you want a list to "break" an extended block, you should
+        add a period after the hash. This is useful for writing 
+        Python code:
+
+        pre.. bc[python].. #!/usr/bin/env python
+
+        # This is a comment, not an ordered list!
+        # So this won't break the extended "bc".
+
+        p. Lists can be nested:
+
+        pre. # Item number 1.
+        ## Item number 1a.
+        ## Item number 1b.
+        # Item number 2.
+        ## Item number 2a.
+
+        Textile will transform this to:
+
+        pre. <ol>
+        <li>Item number 1.
+        <ol>
+        <li>Item number 1a.</li>
+        <li>Item number 1b.</li>
+        </ol>
+        </li>
+        <li>Item number 2.
+        <ol>
+        <li>Item number 2a.</li>
+        </ol>
+        </li>
+        </ol>
+
+        You can also mix ordered and unordered lists:
+
+        pre. * To write well you need:
+        *# to read every day
+        *# to write every day
+        *# and X
+
+        You'll get this:
+
+        pre. <ul>
+        <li>To write well you need:
+        <ol>
+        <li>to read every day</li>
+        <li>to write every day</li>
+        <li>and X</li>
+        </ol>
+        </li>
+        </ul>
+
+        To style a list, the parameters should go before the hash if you want
+        to set the attributes on the @<ol>@ tag:
+
+        pre. (class#id)# one
+        # two
+        # three
+
+        If you want to customize the firsr @<li>@ tag, apply the parameters
+        after the hash:
+
+        pre. #(class#id) one
+        # two
+        # three
+        """
+        # Get the attributes.
+        olattributes = self.parse_params(olparameters, clear)
+        liattributes = self.parse_params(liparameters)
+
+        # Remove list depth.
+        if text.startswith('#'):
+            text = text[1:]
+
+        items = text.split('\n#')
+
+        # Build the open tag.
+        open_tag = self.build_open_tag('ol', olattributes) + '\n'
+
+        close_tag = '\n</ol>'
+
+        # Build the list items.
+        text = self.build_li(items, liattributes)
+
+        return open_tag + text + close_tag
+
+
+    def ul(self, text, liparameters=None, olparameters=None, clear=None):
+        """Build an unordered list.
+
+        This function basically just sets the <ul></ul> with the
+        right attributes, and then pass everything inside to 
+        _build_li, which does the real tough recursive job.
+
+        ---
+        h1. Unordered lists
+
+        Unordered lists behave exactly like the ordered lists, and are
+        defined using a star:
+
+        pre. * Python
+        * Perl
+        * PHP
+
+        Becomes:
+
+        pre. <ul>
+        <li>Python</li>
+        <li>Perl</li>
+        <li><span class="caps">PHP</span></li>
+        </ul>
+        """
+        # Get the attributes.
+        olattributes = self.parse_params(olparameters, clear)
+        liattributes = self.parse_params(liparameters)
+
+        # Remove list depth.
+        if text.startswith('*'):
+            text = text[1:]
+
+        items = text.split('\n*')
+
+        # Build the open tag.
+        open_tag = self.build_open_tag('ul', olattributes) + '\n'
+
+        close_tag = '\n</ul>'
+
+        # Build the list items.
+        text = self.build_li(items, liattributes)
+
+        return open_tag + text + close_tag
+    
+
+    def table(self, text, parameters=None, clear=None):
+        """Build a table.
+
+        To build a table we split the text in lines to get the
+        rows, and split the rows between '|' to get the individual
+        cells.
+
+        ---
+        h1. Tables
+
+        Making a simple table is as easy as possible:
+
+        pre. |a|b|c|
+        |1|2|3|
+
+        Will be processed into:
+
+        pre. <table>
+        <tr>
+        <td>a</td>
+        <td>b</td>
+        <td>c</td>
+        </tr>
+        <tr>
+        <td>1</td>
+        <td>2</td>
+        <td>3</td>
+        </tr>
+        </table>
+
+        If you want to customize the @<table>@ tag, you must use the
+        @table@ signature:
+
+        pre. table(class#id)[en]. |a|b|c|
+        |1|2|3|
+
+        To customize a row, apply the modifier _before_ the first @|@:
+
+        pre. table. (class)<>|a|b|c|
+        |1|2|3|
+
+        Individual cells can by customized by adding the parameters _after_
+        the @|@, proceded by a period and a space:
+
+        pre. |(#id). a|b|c|
+        |1|2|3|
+
+        The allowed modifiers are:
+
+        dl. {style rule}:A CSS(Cascading Style Sheets) style rule. 
+        (class) or (#id) or (class#id):A CSS(Cascading Style Sheets) class and/or id attribute. 
+        ( (one or more):Adds 1em of padding to the left for each '(' character. 
+        ) (one or more):Adds 1em of padding to the right for each ')' character. 
+        &lt;:Aligns to the left (floats to left for tables if combined with the ')' modifier). 
+        &gt;:Aligns to the right (floats to right for tables if combined with the '(' modifier). 
+        =:Aligns to center (sets left, right margins to 'auto' for tables). 
+        &lt;&gt;:For cells only. Justifies text. 
+        ^:For rows and cells only. Aligns to the top. 
+        ~ (tilde):For rows and cells only. Aligns to the bottom. 
+        _ (underscore):Can be applied to a table row or cell to indicate a header row or cell. 
+        \\2 or \\3 or \\4, etc.:Used within cells to indicate a colspan of 2, 3, 4, etc. columns. When you see "\\", think "push forward". 
+        /2 or /3 or /4, etc.:Used within cells to indicate a rowspan of 2, 3, 4, etc. rows. When you see "/", think "push downward". 
+        
+        When a cell is identified as a header cell and an alignment is
+        specified, that becomes the default alignment for cells below it.
+        You can always override this behavior by specifying an alignment
+        for one of the lower cells.
+        """
+        attributes = self.parse_params(parameters, clear, align_type='table')
+        #attributes['cellspacing'] = '0'
+
+        # Build the <table>.
+        open_tag = self.build_open_tag('table', attributes) + '\n'
+        close_tag = '</table>'
+
+        output = []
+        default_align = {}
+        rows = re.split(r'''\n+''', text)
+        for row in rows:
+            # Get the columns.
+            columns = row.split('|')
+
+            # Build the <tr>.
+            parameters = columns.pop(0)
+
+            rowattr = self.parse_params(parameters, align_type='table')
+            open_tr = self.build_open_tag('tr', rowattr) + '\n'
+            output.append(open_tr)
+
+            # Does the row define headers?
+            if parameters.count('_'):
+                td_tag = 'th'
+            else:
+                td_tag = 'td'
+                
+            col = 0
+            for cell in columns[:-1]:
+                p = re.compile(r'''(?:%(tattr)s\.\s)?(?P<text>.*)''' % self.res, re.VERBOSE)
+                m = p.match(cell)
+                if m:
+                    c = m.groupdict('')
+                    cellattr = self.parse_params(c['parameters'], align_type='table')
+
+                    # Get the width of this cell.
+                    width = cellattr.get('colspan', 1)
+
+                    # Is this a header?
+                    if c['parameters'].count('_'):
+                        td_tag = 'th'
+
+                    # If it is a header, let's set the default alignment.
+                    if td_tag == 'th':
+                        # Set the default aligment for all cells below this one.
+                        # This is a little tricky because this header can have
+                        # a colspan set.
+                        for i in range(col, col+width):
+                            default_align[i] = cellattr.get('align', None)
+
+                    else:
+                        # Apply the default align, if any.
+                        cellattr['align'] = cellattr.get('align', default_align.get(col, None))
+
+                    open_td = self.build_open_tag(td_tag, cellattr)
+                    close_td = '</%s>\n' % td_tag
+
+                    #output.append(open_td + c['text'].strip() + close_td)
+                    output.append(open_td + self.inline(c['text'].strip()) + close_td)
+
+                col += width
+
+            output.append('</tr>\n')
+
+        text = open_tag + ''.join(output) + close_tag
+
+        return text
+
+
+    def escape(self, text):
+        """Do nothing.
+
+        This is used to match escaped text. Nothing to see here!
+
+        ---
+        h1. Escaping
+
+        If you don't want Textile processing a block, you can simply
+        enclose it inside @==@:
+
+        pre. p. Regular paragraph
+
+        pre. ==
+        Escaped portion -- will not be formatted
+        by Textile at all
+        ==
+
+        pre. p. Back to normal.
+
+        This can also be used inline, disabling the formatting temporarily:
+
+        pre. p. This is ==*a test*== of escaping.
+        """
+        return text
+
+
+    def itex(self, text):
+        """Convert itex to MathML.
+
+        If the itex2mml binary is set, we use it to convert the
+        itex to MathML. Otherwise, the text is unprocessed and 
+        return as is.
+
+        ---
+        h1. itex
+
+        Textile can automatically convert itex code to MathML(Mathematical Markup Language)
+        for you, if you have the itex2MML binary (you can download it
+        from the "Movable Type plugin":http://golem.ph.utexas.edu/~distler/blog/files/itexToMML.tar.gz).
+
+        Block equations should be enclosed inbetween @\[@ and @\]@:
+
+        pre. \[ e^{i\pi} + 1 = 0 \]
+
+        Will be translated to:
+
+        pre. <math xmlns='http://www.w3.org/1998/Math/MathML' mode='display'>
+        <msup><mi>e</mi> <mrow><mi>i</mi>
+        <mi>&amp;pi;</mi></mrow></msup>
+        <mo>+</mo><mn>1</mn><mo>=</mo><mn>0</mn>
+        </math>
+
+        Equations can also be displayed inline:
+
+        pre. Euler's formula, $e^{i\pi}+1=0$, ...
+
+        (Note that if you want to display MathML(Mathematical Markup Language)
+        your content must be served as @application/xhtml+xml@, which is not
+        accepted by all browsers.)
+        """
+        if itex2mml:
+            try:
+                text = os.popen("echo '%s' | %s" % (text, itex2mml)).read()
+            except:
+                pass
+
+        return text
+
+
+    def about(self, text=None):
+        """Show PyTextile's functionalities.
+
+        An introduction to PyTextile. Can be called when running the
+        main script or if you write the following line:
+
+            'tell me about textile.'
+
+        But keep it a secret!
+        """
+
+        about = []
+        about.append(textile('h1. This is Textile', head_offset=self.head_offset))
+        about.append(textile(__doc__.split('---', 1)[1], head_offset=self.head_offset))
+
+        functions = [(self.split_text, 1),
+                     (self.paragraph,  2),
+                     (self.pre,        2),
+                     (self.bc,         2),
+                     (self.blockquote, 2),
+                     (self.dl,         2),
+                     (self.header,     2),
+                     (self.footnote,   2),
+                     (self.escape,     2),
+                     (self.itex,       2),
+                     (self.ol,         2),
+                     (self.ul,         2),
+                     (self.table,      2),
+                     (self.inline,     1),
+                     (self.qtags,      2),
+                     (self.glyphs,     2),
+                     (self.macros,     2),
+                     (self.acronym,    2),
+                     (self.images,     1),
+                     (self.links,      1),
+                     (self.sanitize,   1),
+                    ]
+
+        for function, offset in functions:
+            doc = function.__doc__.split('---', 1)[1]
+            doc = doc.split('\n')
+            lines = []
+            for line in doc:
+                line = line.strip()
+                lines.append(line)
+                
+            doc = '\n'.join(lines)
+            about.append(textile(doc, head_offset=self.head_offset+offset))
+
+        about = '\n'.join(about)
+        about = about.replace('<br />', '')
+
+        return about
+
+
+    def acronym(self, text):
+        """Process acronyms.
+
+        Acronyms can have letters in upper and lower caps, or even numbers,
+        provided that the numbers and upper caps are the same in the
+        abbreviation and in the description. For example:
+
+            XHTML(eXtensible HyperText Markup Language)
+            OPeNDAP(Open source Project for a Network Data Access Protocol)
+            L94(Levitus 94)
+
+        are all valid acronyms.
+
+        ---
+        h1. Acronyms
+
+        You can define acronyms in your text the following way:
+
+        pre. This is XHTML(eXtensible HyperText Markup Language).
+
+        The resulting code is:
+
+        pre. <p><acronym title="eXtensible HyperText Markup Language"><span class="caps">XHTML</span></acronym></p>
+
+        Acronyms can have letters in upper and lower caps, or even numbers,
+        provided that the numbers and upper caps are the same in the
+        abbreviation and in the description. For example:
+
+        pre. XHTML(eXtensible HyperText Markup Language)
+        OPeNDAP(Open source Project for a Network Data Access Protocol)
+        L94(Levitus 94)
+
+        are all valid acronyms.
+        """
+        # Find the acronyms.
+        acronyms = r'''(?P<acronym>[\w]+)\((?P<definition>[^\(\)]+?)\)'''
+
+        # Check all acronyms.
+        for acronym, definition in re.findall(acronyms, text):
+            caps_acronym = ''.join(re.findall('[A-Z\d]+', acronym))
+            caps_definition = ''.join(re.findall('[A-Z\d]+', definition))
+            if caps_acronym and caps_acronym == caps_definition:
+                text = text.replace('%s(%s)' % (acronym, definition), '<acronym title="%s">%s</acronym>' % (definition, acronym))
+        
+        text = html_replace(r'''(^|\s)([A-Z]{3,})\b(?!\()''', r'''\1<span class="caps">\2</span>''', text)
+
+        return text
+
+
+    def footnotes(self, text):
+        """Add titles to footnotes references.
+
+        This function searches for footnotes references like this [1], and 
+        adds a title to the link containing the first paragraph of the
+        footnote.
+        """
+        # Search for footnotes.
+        p = re.compile(r'''<p class="footnote" id="fn(?P<n>\d+)"><sup>(?P=n)</sup>(?P<note>.*)</p>''')
+        for m in p.finditer(text):
+            n = m.group('n')
+            note = m.group('note').strip()
+
+            # Strip HTML from note.
+            note = re.sub('<.*?>', '', note)
+
+            # Add the title.
+            text = text.replace('<a href="#fn%s">' % n, '<a href="#fn%s" title="%s">' % (n, note))
+
+        return text
+
+
+    def macros(self, m):
+        """Quick macros.
+
+        This function replaces macros inside brackets using a built-in
+        dictionary, and also unicode names if the key doesn't exist.
+
+        ---
+        h1. Macros
+
+        Textile has support for character macros, which should be enclosed
+        in curly braces. A few useful ones are:
+
+        pre. {C=} or {=C}: euro sign
+        {+-} or {-+}: plus-minus sign
+        {L-} or {-L}: pound sign.
+
+        You can also make accented characters:
+
+        pre. Expos{e'}
+
+        Becomes:
+
+        pre. <p>Expos&amp;#233;</p>
+
+        You can also specify Unicode names like:
+
+        pre. {umbrella}
+        {white smiling face}
+        """
+        entity = m.group(1)
+
+        macros = {'c|': '&#162;',       # cent sign
+                  '|c': '&#162;',       # cent sign
+                  'L-': '&#163;',       # pound sign
+                  '-L': '&#163;',       # pound sign
+                  'Y=': '&#165;',       # yen sign
+                  '=Y': '&#165;',       # yen sign
+                  '(c)': '&#169;',      # copyright sign
+                  '<<': '&#171;',       # left-pointing double angle quotation
+                  '(r)': '&#174;',      # registered sign
+                  '+_': '&#177;',       # plus-minus sign
+                  '_+': '&#177;',       # plus-minus sign
+                  '>>': '&#187;',       # right-pointing double angle quotation
+                  '1/4': '&#188;',      # vulgar fraction one quarter
+                  '1/2': '&#189;',      # vulgar fraction one half
+                  '3/4': '&#190;',      # vulgar fraction three quarters
+                  'A`': '&#192;',       # latin capital letter a with grave
+                  '`A': '&#192;',       # latin capital letter a with grave
+                  'A\'': '&#193;',      # latin capital letter a with acute
+                  '\'A': '&#193;',      # latin capital letter a with acute
+                  'A^': '&#194;',       # latin capital letter a with circumflex
+                  '^A': '&#194;',       # latin capital letter a with circumflex
+                  'A~': '&#195;',       # latin capital letter a with tilde
+                  '~A': '&#195;',       # latin capital letter a with tilde
+                  'A"': '&#196;',       # latin capital letter a with diaeresis
+                  '"A': '&#196;',       # latin capital letter a with diaeresis
+                  'Ao': '&#197;',       # latin capital letter a with ring above
+                  'oA': '&#197;',       # latin capital letter a with ring above
+                  'AE': '&#198;',       # latin capital letter ae
+                  'C,': '&#199;',       # latin capital letter c with cedilla
+                  ',C': '&#199;',       # latin capital letter c with cedilla
+                  'E`': '&#200;',       # latin capital letter e with grave
+                  '`E': '&#200;',       # latin capital letter e with grave
+                  'E\'': '&#201;',      # latin capital letter e with acute
+                  '\'E': '&#201;',      # latin capital letter e with acute
+                  'E^': '&#202;',       # latin capital letter e with circumflex
+                  '^E': '&#202;',       # latin capital letter e with circumflex
+                  'E"': '&#203;',       # latin capital letter e with diaeresis
+                  '"E': '&#203;',       # latin capital letter e with diaeresis
+                  'I`': '&#204;',       # latin capital letter i with grave
+                  '`I': '&#204;',       # latin capital letter i with grave
+                  'I\'': '&#205;',      # latin capital letter i with acute
+                  '\'I': '&#205;',      # latin capital letter i with acute
+                  'I^': '&#206;',       # latin capital letter i with circumflex
+                  '^I': '&#206;',       # latin capital letter i with circumflex
+                  'I"': '&#207;',       # latin capital letter i with diaeresis
+                  '"I': '&#207;',       # latin capital letter i with diaeresis
+                  'D-': '&#208;',       # latin capital letter eth
+                  '-D': '&#208;',       # latin capital letter eth
+                  'N~': '&#209;',       # latin capital letter n with tilde
+                  '~N': '&#209;',       # latin capital letter n with tilde
+                  'O`': '&#210;',       # latin capital letter o with grave
+                  '`O': '&#210;',       # latin capital letter o with grave
+                  'O\'': '&#211;',      # latin capital letter o with acute
+                  '\'O': '&#211;',      # latin capital letter o with acute
+                  'O^': '&#212;',       # latin capital letter o with circumflex
+                  '^O': '&#212;',       # latin capital letter o with circumflex
+                  'O~': '&#213;',       # latin capital letter o with tilde
+                  '~O': '&#213;',       # latin capital letter o with tilde
+                  'O"': '&#214;',       # latin capital letter o with diaeresis
+                  '"O': '&#214;',       # latin capital letter o with diaeresis
+                  'O/': '&#216;',       # latin capital letter o with stroke
+                  '/O': '&#216;',       # latin capital letter o with stroke
+                  'U`':  '&#217;',      # latin capital letter u with grave
+                  '`U':  '&#217;',      # latin capital letter u with grave
+                  'U\'': '&#218;',      # latin capital letter u with acute
+                  '\'U': '&#218;',      # latin capital letter u with acute
+                  'U^': '&#219;',       # latin capital letter u with circumflex
+                  '^U': '&#219;',       # latin capital letter u with circumflex
+                  'U"': '&#220;',       # latin capital letter u with diaeresis
+                  '"U': '&#220;',       # latin capital letter u with diaeresis
+                  'Y\'': '&#221;',      # latin capital letter y with acute
+                  '\'Y': '&#221;',      # latin capital letter y with acute
+                  'a`': '&#224;',       # latin small letter a with grave
+                  '`a': '&#224;',       # latin small letter a with grave
+                  'a\'': '&#225;',      # latin small letter a with acute
+                  '\'a': '&#225;',      # latin small letter a with acute
+                  'a^': '&#226;',       # latin small letter a with circumflex
+                  '^a': '&#226;',       # latin small letter a with circumflex
+                  'a~': '&#227;',       # latin small letter a with tilde
+                  '~a': '&#227;',       # latin small letter a with tilde
+                  'a"': '&#228;',       # latin small letter a with diaeresis
+                  '"a': '&#228;',       # latin small letter a with diaeresis
+                  'ao': '&#229;',       # latin small letter a with ring above
+                  'oa': '&#229;',       # latin small letter a with ring above
+                  'ae': '&#230;',       # latin small letter ae
+                  'c,': '&#231;',       # latin small letter c with cedilla
+                  ',c': '&#231;',       # latin small letter c with cedilla
+                  'e`': '&#232;',       # latin small letter e with grave
+                  '`e': '&#232;',       # latin small letter e with grave
+                  'e\'': '&#233;',      # latin small letter e with acute
+                  '\'e': '&#233;',      # latin small letter e with acute
+                  'e^': '&#234;',       # latin small letter e with circumflex
+                  '^e': '&#234;',       # latin small letter e with circumflex
+                  'e"': '&#235;',       # latin small letter e with diaeresis
+                  '"e': '&#235;',       # latin small letter e with diaeresis
+                  'i`': '&#236;',       # latin small letter i with grave
+                  '`i': '&#236;',       # latin small letter i with grave
+                  'i\'': '&#237;',      # latin small letter i with acute
+                  '\'i': '&#237;',      # latin small letter i with acute
+                  'i^': '&#238;',       # latin small letter i with circumflex
+                  '^i': '&#238;',       # latin small letter i with circumflex
+                  'i"': '&#239;',       # latin small letter i with diaeresis
+                  '"i': '&#239;',       # latin small letter i with diaeresis
+                  'n~': '&#241;',       # latin small letter n with tilde
+                  '~n': '&#241;',       # latin small letter n with tilde
+                  'o`': '&#242;',       # latin small letter o with grave
+                  '`o': '&#242;',       # latin small letter o with grave
+                  'o\'': '&#243;',      # latin small letter o with acute
+                  '\'o': '&#243;',      # latin small letter o with acute
+                  'o^': '&#244;',       # latin small letter o with circumflex
+                  '^o': '&#244;',       # latin small letter o with circumflex
+                  'o~': '&#245;',       # latin small letter o with tilde
+                  '~o': '&#245;',       # latin small letter o with tilde
+                  'o"': '&#246;',       # latin small letter o with diaeresis
+                  '"o': '&#246;',       # latin small letter o with diaeresis
+                  ':-': '&#247;',       # division sign
+                  '-:': '&#247;',       # division sign
+                  'o/': '&#248;',       # latin small letter o with stroke
+                  '/o': '&#248;',       # latin small letter o with stroke
+                  'u`': '&#249;',       # latin small letter u with grave
+                  '`u': '&#249;',       # latin small letter u with grave
+                  'u\'': '&#250;',      # latin small letter u with acute
+                  '\'u': '&#250;',      # latin small letter u with acute
+                  'u^': '&#251;',       # latin small letter u with circumflex
+                  '^u': '&#251;',       # latin small letter u with circumflex
+                  'u"': '&#252;',       # latin small letter u with diaeresis
+                  '"u': '&#252;',       # latin small letter u with diaeresis
+                  'y\'': '&#253;',      # latin small letter y with acute
+                  '\'y': '&#253;',      # latin small letter y with acute
+                  'y"': '&#255',        # latin small letter y with diaeresis
+                  '"y': '&#255',        # latin small letter y with diaeresis
+                  'OE': '&#338;',       # latin capital ligature oe
+                  'oe': '&#339;',       # latin small ligature oe
+                  '*': '&#8226;',       # bullet
+                  'Fr': '&#8355;',      # french franc sign
+                  'L=': '&#8356;',      # lira sign
+                  '=L': '&#8356;',      # lira sign
+                  'Rs': '&#8360;',      # rupee sign
+                  'C=': '&#8364;',      # euro sign
+                  '=C': '&#8364;',      # euro sign
+                  'tm': '&#8482;',      # trade mark sign
+                  '<-': '&#8592;',      # leftwards arrow
+                  '->': '&#8594;',      # rightwards arrow
+                  '<=': '&#8656;',      # leftwards double arrow
+                  '=>': '&#8658;',      # rightwards double arrow
+                  '=/': '&#8800;',      # not equal to
+                  '/=': '&#8800;',      # not equal to
+                  '<_': '&#8804;',      # less-than or equal to
+                  '_<': '&#8804;',      # less-than or equal to
+                  '>_': '&#8805;',      # greater-than or equal to
+                  '_>': '&#8805;',      # greater-than or equal to
+                  ':(': '&#9785;',      # white frowning face
+                  ':)': '&#9786;',      # white smiling face
+                  'spade': '&#9824;',   # black spade suit
+                  'club': '&#9827;',    # black club suit
+                  'heart': '&#9829;',   # black heart suit
+                  'diamond': '&#9830;', # black diamond suit
+                 }
+
+        try:
+            # Try the key.
+            entity = macros[entity]
+        except KeyError:
+            try:
+                # Try a unicode entity.
+                entity = unicodedata.lookup(entity)
+                entity = entity.encode('ascii', 'xmlcharrefreplace')
+            except:
+                # Return the unmodified entity.
+                entity = '{%s}' % entity
+
+        return entity
+
+
+    def glyphs(self, text):
+        """Glyph formatting.
+
+        This function replaces quotations marks, dashes and a few other
+        symbol for numerical entities. The em/en dashes use definitions
+        comes from http://alistapart.com/articles/emen/.
+
+        ---
+        h1. Glyphs
+
+        Textile replaces some of the characters in your text with their
+        equivalent numerical entities. These include:
+
+        * Replace single and double primes used as quotation marks with HTML(HyperText Markup Language) entities for opening and closing quotation marks in readable text, while leaving untouched the primes required within HTML(HyperText Markup Language) tags.
+        * Replace double hyphens (==--==) with an em-dash (&#8212;) entity.
+        * Replace triple hyphens (==---==) with two em-dash (&#8212;&#8212;) entities.
+        * Replace single hyphens surrounded by spaces with an en-dash (&#8211;) entity.
+        * Replace triplets of periods (==...==) with an ellipsis (&#8230;) entity.
+        * Convert many nonstandard characters to browser-safe entities corresponding to keyboard input.
+        * Convert ==(TM)==, ==(R)==, and  ==(C)== to &#8482;, &#174;, and &#169;.
+        * Convert the letter x to a dimension sign: 2==x==4 to 2x4 and 8 ==x== 10 to 8x10.
+        """
+        glyphs = [(r'''"(?<!\w)\b''', r'''&#8220;'''),                              # double quotes
+                  (r'''"''', r'''&#8221;'''),                                       # double quotes
+                  (r"""\b'""", r'''&#8217;'''),                                     # single quotes
+                  (r"""'(?<!\w)\b""", r'''&#8216;'''),                              # single quotes
+                  (r"""'""", r'''&#8217;'''),                                       # single single quote
+                  (r'''(\b|^)( )?\.{3}''', r'''\1&#8230;'''),                       # ellipsis
+                  (r'''\b---\b''', r'''&#8212;&#8212;'''),                          # double em dash
+                  (r'''\s?--\s?''', r'''&#8212;'''),                                # em dash
+                  (r'''(\d+)-(\d+)''', r'''\1&#8211;\2'''),                         # en dash (1954-1999)
+                  (r'''(\d+)-(\W)''', r'''\1&#8212;\2'''),                          # em dash (1954--)
+                  (r'''\s-\s''', r''' &#8211; '''),                                 # en dash
+                  (r'''(\d+) ?x ?(\d+)''', r'''\1&#215;\2'''),                      # dimension sign
+                  (r'''\b ?(\((tm|TM)\))''', r'''&#8482;'''),                       # trademark
+                  (r'''\b ?(\([rR]\))''', r'''&#174;'''),                           # registered
+                  (r'''\b ?(\([cC]\))''', r'''&#169;'''),                           # copyright
+                  (r'''([^\s])\[(\d+)\]''',                                         #
+                       r'''\1<sup class="footnote"><a href="#fn\2">\2</a></sup>'''),# footnote
+                  ]
+
+        # Apply macros.
+        text = re.sub(r'''{([^}]+)}''', self.macros, text)
+
+        # LaTeX style quotes.
+        text = text.replace('\x60\x60', '&#8220;')
+        text = text.replace('\xb4\xb4', '&#8221;')
+
+        # Linkify URL and emails.
+        url = r'''(?=[a-zA-Z0-9./#])                          # Must start correctly
+                  ((?:                                        # Match the leading part (proto://hostname, or just hostname)
+                      (?:ftp|https?|telnet|nntp)              #     protocol
+                      ://                                     #     ://
+                      (?:                                     #     Optional 'username:password@'
+                          \w+                                 #         username
+                          (?::\w+)?                           #         optional :password
+                          @                                   #         @
+                      )?                                      # 
+                      [-\w]+(?:\.\w[-\w]*)+                   #     hostname (sub.example.com)
+                  )                                           #
+                  (?::\d+)?                                   # Optional port number
+                  (?:                                         # Rest of the URL, optional
+                      /?                                      #     Start with '/'
+                      [^.!,?;:"'<>()\[\]{}\s\x7F-\xFF]*       #     Can't start with these
+                      (?:                                     #
+                          [.!,?;:]+                           #     One or more of these
+                          [^.!,?;:"'<>()\[\]{}\s\x7F-\xFF]+   #     Can't finish with these
+                          #'"                                 #     # or ' or "
+                      )*                                      #
+                  )?)                                         #
+               '''
+
+        email = r'''(?:mailto:)?            # Optional mailto:
+                    ([-\+\w]+               # username
+                    \@                      # at
+                    [-\w]+(?:\.\w[-\w]*)+)  # hostname
+                 '''
+
+        # If there is no html, do a simple search and replace.
+        if not re.search(r'''<.*>''', text):
+            for glyph_search, glyph_replace in glyphs:
+                text = preg_replace(glyph_search, glyph_replace, text)
+
+            # Linkify.
+            text = re.sub(re.compile(url, re.VERBOSE), r'''<a href="\1">\1</a>''', text)
+            text = re.sub(re.compile(email, re.VERBOSE), r'''<a href="mailto:\1">\1</a>''', text)
+
+        else:
+            lines = []
+            # Else split the text into an array at <>.
+            for line in re.split('(<.*?>)', text):
+                if not re.match('<.*?>', line):
+                    for glyph_search, glyph_replace in glyphs:
+                        line = preg_replace(glyph_search, glyph_replace, line)
+
+                    # Linkify.
+                    line = re.sub(re.compile(url, re.VERBOSE), r'''<a href="\1">\1</a>''', line)
+                    line = re.sub(re.compile(email, re.VERBOSE), r'''<a href="mailto:\1">\1</a>''', line)
+
+                lines.append(line)
+
+            text = ''.join(lines)
+
+        return text
+
+
+    def qtags(self, text):
+        """Quick tags formatting.
+
+        This function does the inline formatting of text, like
+        bold, italic, strong and also itex code.
+
+        ---
+        h1. Quick tags
+
+        Quick tags allow you to format your text, making it bold, 
+        emphasized or small, for example. The quick tags operators
+        include:
+
+        dl. ==*strong*==:Translates into @<strong>strong</strong>@.
+        ==_emphasis_==:Translates into @<em>emphasis</em>@. 
+        ==**bold**==:Translates into @<b>bold</b>@. 
+        ==__italics__==:Translates into @<i>italics</i>@. 
+        ==++bigger++==:Translates into @<big>bigger</big>@. 
+        ==--smaller--==:Translates into: @<small>smaller</small>@. 
+        ==-deleted text-==:Translates into @<del>deleted text</del>@. 
+        ==+inserted text+==:Translates into @<ins>inserted text</ins>@. 
+        ==^superscript^==:Translates into @<sup>superscript</sup>@. 
+        ==~subscript~==:Translates into @<sub>subscript</sub>@. 
+        ==%span%==:Translates into @<span>span</span>@. 
+        ==@code@==:Translates into @<code>code</code>@. 
+        
+        Note that within a "==@==...==@==" section, @<@ and @>@ are
+        translated into HTML entities automatically. 
+
+        Inline formatting operators accept the following modifiers:
+
+        dl. {style rule}:A CSS(Cascading Style Sheets) style rule. 
+        [ll]:A language identifier (for a "lang" attribute). 
+        (class) or (#id) or (class#id):For CSS(Cascading Style Sheets) class and id attributes. 
+        """
+        # itex2mml.
+        text = re.sub('\$(.*?)\$', lambda m: self.itex(m.group()), text)
+
+        # Add span tags to upper-case words which don't have a description.
+        #text = preg_replace(r'''(^|\s)([A-Z]{3,})\b(?!\()''', r'''\1<span class="caps">\2</span>''', text)
+        
+        # Quick tags.
+        qtags = [('**', 'b',      {'qf': '(?<!\*)\*\*(?!\*)', 'cls': '\*'}),
+                 ('__', 'i',      {'qf': '(?<!_)__(?!_)', 'cls': '_'}),
+                 ('??', 'cite',   {'qf': '\?\?(?!\?)', 'cls': '\?'}),
+                 ('-',  'del',    {'qf': '(?<!\-)\-(?!\-)', 'cls': '-'}),
+                 ('+',  'ins',    {'qf': '(?<!\+)\+(?!\+)', 'cls': '\+'}),
+                 ('*',  'strong', {'qf': '(?<!\*)\*(?!\*)', 'cls': '\*'}),
+                 ('_',  'em',     {'qf': '(?<!_)_(?!_)', 'cls': '_'}),
+                 ('++', 'big',    {'qf': '(?<!\+)\+\+(?!\+)', 'cls': '\+\+'}),
+                 ('--', 'small',  {'qf': '(?<!\-)\-\-(?!\-)', 'cls': '\-\-'}),
+                 ('~',  'sub',    {'qf': '(?<!\~)\~(?!(\\\/~))', 'cls': '\~'}),
+                 ('@',  'code',   {'qf': '(?<!@)@(?!@)', 'cls': '@'}),
+                 ('%',  'span',   {'qf': '(?<!%)%(?!%)', 'cls': '%'}),
+                ]
+
+        # Superscript.
+        text = re.sub(r'''(?<!\^)\^(?!\^)(.+?)(?<!\^)\^(?!\^)''', r'''<sup>\1</sup>''', text)
+
+        # This is from the perl version of Textile.
+        for qtag, htmltag, redict in qtags:
+            self.res.update(redict)
+            p = re.compile(r'''(?:                          #
+                                   ^                        # Start of string
+                                   |                        #
+                                   (?<=[\s>'"])             # Whitespace, end of tag, quotes
+                                   |                        #
+                                   (?P<pre>[{[])            # Surrounded by [ or {
+                                   |                        #
+                                   (?<=%(punct)s)           # Punctuation
+                               )                            #
+                               %(qf)s                       # opening tag
+                               %(qattr)s                    # attributes
+                               (?P<text>[^%(cls)s\s].*?)    # text
+                               (?<=\S)                      # non-whitespace
+                               %(qf)s                       # 
+                               (?:                          #
+                                   $                        # End of string
+                                   |                        #
+                                   (?P<post>[\]}])          # Surrounded by ] or }
+                                   |                        # 
+                                   (?=%(punct)s{1,2}|\s)    # punctuation
+                                )                           #
+                             ''' % self.res, re.VERBOSE)
+
+            def _replace(m):
+                c = m.groupdict('')
+
+                attributes = self.parse_params(c['parameters'])
+                open_tag  = self.build_open_tag(htmltag, attributes) 
+                close_tag = '</%s>' % htmltag
+
+                # Replace < and > inside <code></code>.
+                if htmltag == 'code':
+                    c['text'] = c['text'].replace('<', '&lt;')
+                    c['text'] = c['text'].replace('>', '&gt;')
+         
+                return open_tag + c['text'] + close_tag
+
+            text = p.sub(_replace, text)
+
+        return text
+
+
+    def images(self, text):
+        """Process images.
+
+        This function process images tags, with or without links. Images
+        can have vertical and/or horizontal alignment, and can be resized
+        unefficiently using width and height tags.
+
+        ---
+        h1. Images
+
+        An image is generated by enclosing the image source in @!@:
+
+        pre. !/path/to/image!
+
+        You may optionally specify an alternative text for the image, which
+        will also be used as its title:
+
+        pre. !image.jpg (Nice picture)!
+
+        Becomes:
+
+        pre. <p><img src="image.jpg" alt="Nice picture" title="Nice picture" /></p>
+
+        If you want to make the image point to a link, simply append a
+        comma and the URL(Universal Republic of Love) to the image:
+
+        pre. !image.jpg!:http://diveintopython.org
+
+        Images can also be resized. These are all equivalent:
+
+        pre. !image.jpg 10x20!
+        !image.jpg 10w 20h!
+        !image.jpg 20h 10w!
+
+        The image @image.jpg@ will be resized to width 10 and height 20.
+
+        Modifiers to the @<img>@ tag go after the opening @!@:
+
+        pre. !(class#id)^image.jpg!
+
+        Allowed modifiers include:
+        
+        dl. &lt;:Align the image to the left (causes the image to float if CSS options are enabled). 
+        &gt;:Align the image to the right (causes the image to float if CSS options are enabled). 
+        - (dash):Aligns the image to the middle. 
+        ^:Aligns the image to the top. 
+        ~ (tilde):Aligns the image to the bottom. 
+        {style rule}:Applies a CSS style rule to the image. 
+        (class) or (#id) or (class#id):Applies a CSS class and/or id to the image. 
+        ( (one or more):Pads 1em on the left for each '(' character. 
+        ) (one or more):Pads 1em on the right for each ')' character. 
+
+        Images receive the class "top" when using top alignment, "bottom" 
+        for bottom alignment and "middle" for middle alignment.
+        """
+        # Compile the beast.
+        p = re.compile(r'''\!               # Opening !
+                           %(iattr)s        # Image attributes
+                           (?P<src>%(url)s) # Image src
+                           \s?              # Optional whitesapce
+                           (                #
+                               \(           #
+                               (?P<alt>.*?) # Optional (alt) attribute
+                               \)           #
+                           )?               #
+                           \s?              # Optional whitespace
+                           %(resize)s       # Resize parameters
+                           \!               # Closing !
+                           (                # Optional link
+                               :            #    starts with ':'
+                               (?P<link>    #    
+                               %(url)s      #    link HREF
+                               )            #
+                           )?               #
+                        ''' % self.res, re.VERBOSE)
+
+        for m in p.finditer(text):
+            c = m.groupdict('')
+
+            # Build the parameters for the <img /> tag.
+            attributes = self.parse_params(c['parameters'], align_type='image')
+            attributes.update(c)
+            if attributes['alt']:
+                attributes['title'] = attributes['alt']
+
+            # Append height and width.
+            attributes['width'] = m.groups()[5] or m.groups()[7] or m.groups()[10]
+            attributes['height'] = m.groups()[6] or m.groups()[8] or m.groups()[9]
+
+            # Create the image tag.
+            tag = self.image(attributes)
+
+            text = text.replace(m.group(), tag)
+        
+        return text
+
+
+    def image(self, attributes):
+        """Process each image.
+
+        This method builds the <img> tag for each image in the text. It's
+        separated from the 'images' method so it can be easily overriden when
+        subclassing Textiler. Useful if you want to download and/or process
+        the images, for example.
+        """
+        link = attributes['link']
+        del attributes['link']
+        del attributes['parameters']
+
+        # Build the tag.
+        tag = self.build_open_tag('img', attributes, single=1)
+
+        if link:
+            href = preg_replace('&(?!(#|amp))', '&amp;', link)
+            tag = '<a href="%s">%s</a>' % (href, tag)
+
+        return tag
+
+
+    def links(self, text):
+        """Process links.
+
+        This function is responsible for processing links. It has
+        some nice shortcuts to Google, Amazon and IMDB queries.
+
+        ---
+        h1. Links
+
+        A links is done the following way:
+
+        pre. "This is the text link":http://example.com
+
+        The result from this markup is:
+
+        pre. <p><a href="http://example.com">This is the text link</a></p>
+
+        You can add an optional @title@ attribute:
+
+        pre. "This is the text link(This is the title)":http://example.com
+
+        The link can be customised as well:
+
+        pre. "(nospam)E-mail me please":mailto:someone@example.com
+
+        You can use either single or double quotes. They must be enclosed in
+        whitespace, punctuation or brackets:
+
+        pre. You["gotta":http://example.com]seethis!
+
+        If you are going to reference the same link a couple of times, you
+        can define a lookup list anywhere on your document:
+
+        pre. [python]http://www.python.org
+
+        Links to the Python website can then be defined the following way:
+
+        pre. "Check this":python
+
+        There are also shortcuts for Amazon, IMDB(Internet Movie DataBase) and
+        Google queries:
+
+        pre. "Has anyone seen this guy?":imdb:Stephen+Fry
+        "Really nice book":amazon:Goedel+Escher+Bach
+        "PyBlosxom":google
+        ["Using Textile and Blosxom with Python":google:python blosxom textile]
+
+        Becomes:
+
+        pre. <a href="http://www.imdb.com/Find?for=Stephen+Fry">Has anyone seen this guy?</a>
+        <a href="http://www.amazon.com/exec/obidos/external-search?index=blended&amp;keyword=Goedel+Escher+Bach">Really nice book</a>
+        <a href="http://www.google.com/search?q=PyBlosxom">PyBlosxom</a>
+        <a href="http://www.google.com/search?q=python+blosxom+textile">Using Textile and Blosxom with Python</a>
+        """
+        linkres = [r'''\[                           # [
+                       (?P<quote>"|')               # Opening quotes
+                       %(lattr)s                    # Link attributes
+                       (?P<text>[^"]+?)             # Link text
+                       \s?                          # Optional whitespace
+                       (?:\((?P<title>[^\)]+?)\))?  # Optional (title)
+                       (?P=quote)                   # Closing quotes
+                       :                            # :
+                       (?P<href>[^\]]+)             # HREF
+                       \]                           # ]
+                    ''' % self.res,
+                   r'''(?P<quote>"|')               # Opening quotes
+                       %(lattr)s                    # Link attributes
+                       (?P<text>[^"]+?)             # Link text
+                       \s?                          # Optional whitespace
+                       (?:\((?P<title>[^\)]+?)\))?  # Optional (title)
+                       (?P=quote)                   # Closing quotes
+                       :                            # :
+                       (?P<href>%(url)s)            # HREF
+                    ''' % self.res]
+
+        for linkre in linkres:
+            p = re.compile(linkre, re.VERBOSE)
+            for m in p.finditer(text):
+                c = m.groupdict('')
+
+                attributes = self.parse_params(c['parameters'])
+                attributes['title'] = c['title'].replace('"', '&quot;')
+
+                # Search lookup list.
+                link = self._links.get(c['href'], None) or c['href']
+
+                # Hyperlinks for Amazon, IMDB and Google searches.
+                parts = link.split(':', 1)
+                proto = parts[0]
+                if len(parts) == 2:
+                    query = parts[1]
+                else:
+                    query = c['text']
+
+                query = query.replace(' ', '+')
+
+                # Look for smart search.
+                if self.searches.has_key(proto):
+                    link = self.searches[proto] % query
+                
+                # Fix URL.
+                attributes['href'] = preg_replace('&(?!(#|amp))', '&amp;', link)
+
+                open_tag = self.build_open_tag('a', attributes)
+                close_tag = '</a>'
+
+                repl = open_tag + c['text'] + close_tag
+
+                text = text.replace(m.group(), repl)
+
+        return text
+
+
+    def format(self, text):
+        """Text formatting.
+
+        This function basically defines the order on which the 
+        formatting is applied.
+        """
+        text = self.qtags(text)
+        text = self.images(text)
+        text = self.links(text)
+        text = self.acronym(text)
+        text = self.glyphs(text)
+
+        return text
+
+
+    def inline(self, text):
+        """Inline formatting.
+
+        This function calls the formatting on the inline text,
+        taking care to avoid the escaped parts.
+
+        ---
+        h1. Inline 
+
+        Inline formatting is applied within a block of text.
+        """
+        if not re.search(r'''==(.*?)==''', text):
+            text = self.format(text)
+
+        else:
+            lines = []
+            # Else split the text into an array at <>.
+            for line in re.split('(==.*?==)', text):
+                if not re.match('==.*?==', line):
+                    line = self.format(line)
+                else:
+                    line = line[2:-2]
+
+                lines.append(line)
+            
+            text = ''.join(lines)
+
+        return text
+            
+
+def textile(text, **args):
+    """This is Textile.
+
+    Generates XHTML from a simple markup developed by Dean Allen.
+
+    This function should be called like this:
+    
+        textile(text, head_offset=0, validate=0, sanitize=0,
+                encoding='latin-1', output='ASCII')
+    """
+    return Textiler(text).process(**args)
+
+
+if __name__ == '__main__':
+    print textile('tell me about textile.', head_offset=1)
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/textile.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/textile.pyc
new file mode 100644 (file)
index 0000000..baba625
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/textile.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/textutil.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/textutil.py
new file mode 100755 (executable)
index 0000000..edb2a56
--- /dev/null
@@ -0,0 +1,143 @@
+#!/usr/bin/env python
+
+import sys, string, re, optparse
+import config, filetool, comment
+
+
+
+
+def convertMac2Unix(content):
+  return content.replace("\r", "\n")
+
+def convertMac2Dos(content):
+  return content.replace("\r", "\r\n")
+
+def convertDos2Unix(content):
+  return content.replace("\r\n", "\n")
+
+def convertDos2Mac(content):
+  return content.replace("\r\n", "\r")
+
+def convertUnix2Dos(content):
+  return content.replace("\n", "\r\n")
+
+def convertUnix2Mac(content):
+  return content.replace("\n", "\r")
+
+
+
+
+def any2Unix(content):
+  # DOS must be first, because it is a combination of Unix & Mac
+  return convertMac2Unix(convertDos2Unix(content))
+
+def any2Dos(content):
+  # to protect old DOS breaks first, we need to convert to
+  # a line ending with single character first e.g. Unix
+  return convertUnix2Dos(any2Unix(content))
+
+def any2Mac(content):
+  # to protect old DOS breaks first, we need to convert to
+  # a line ending with single character first e.g. Unix
+  return convertUnix2Mac(any2Unix(content))
+
+
+
+def getLineEndingName(content):
+  if "\r\n" in content:
+    return "dos"
+
+  if "\r" in content:
+    return "mac"
+
+  # defaults to unix
+  return "unix"
+
+def getLineEndingSequence(content):
+  if "\r\n" in content:
+    return "\r\n"
+
+  if "\r" in content:
+    return "\r"
+
+  # defaults to unix
+  return "\n"
+
+
+
+def tab2Space(content, spaces=2):
+  return content.replace("\t", " " * spaces)
+
+def spaces2Tab(content, spaces=2):
+  return content.replace(" " * spaces, "\t")
+
+
+
+def removeTrailingSpaces(content):
+  ending = getLineEndingSequence(content)
+  lines = content.split(ending)
+  length = len(lines)
+  pos = 0
+
+  while pos < length:
+    lines[pos] = lines[pos].rstrip()
+    pos += 1
+
+  return ending.join(lines)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+def main():
+  allowed = [ "any2Dos", "any2Mac", "any2Unix", "convertDos2Mac", "convertDos2Unix", "convertMac2Dos", "convertMac2Unix", "convertUnix2Dos", "convertUnix2Mac", "spaces2Tab", "tab2Space" ]
+  
+  parser = optparse.OptionParser()
+
+  parser.add_option("-q", "--quiet", action="store_false", dest="verbose", default=False, help="Quiet output mode.")
+  parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help="Verbose output mode.")
+  parser.add_option("-c", "--command", dest="command", default="normalize", help="Normalize a file")
+  parser.add_option("--encoding", dest="encoding", default="utf-8", metavar="ENCODING", help="Defines the encoding expected for input files.")
+
+  (options, args) = parser.parse_args()
+  
+  if not options.command in allowed:
+    print "Unallowed command: %s" % options.command
+    sys.exit(1)
+
+  if len(args) == 0:
+    print "Needs one or more arguments (files) to modify!"
+    sys.exit(1)
+    
+  for fileName in args:
+    if options.verbose:
+      print "  * Running %s on: %s" % (options.command, fileName)
+    
+    origFileContent = filetool.read(fileName, options.encoding)
+    patchedFileContent = eval(options.command + "(origFileContent)")
+    
+    if patchedFileContent != origFileContent:
+      filetool.save(fileName, patchedFileContent, options.encoding)
+
+
+
+
+
+if __name__ == '__main__':
+  try:
+    main()
+
+  except KeyboardInterrupt:
+    print
+    print "  * Keyboard Interrupt"
+    sys.exit(1)
+    
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/textutil.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/textutil.pyc
new file mode 100644 (file)
index 0000000..7df9a3c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/textutil.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tokenizer.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tokenizer.py
new file mode 100755 (executable)
index 0000000..2f8e404
--- /dev/null
@@ -0,0 +1,349 @@
+#!/usr/bin/env python
+
+import sys, string, re, optparse
+import config, filetool, comment
+
+R_WHITESPACE = re.compile(r"(\s+)")
+R_NONWHITESPACE = re.compile("\S+")
+R_NUMBER = re.compile("^[0-9]+")
+R_NEWLINE = re.compile(r"(\n)")
+
+# Ideas from: http://www.regular-expressions.info/examplesprogrammer.html
+# Multicomment RegExp inspired by: http://ostermiller.org/findcomment.html
+
+# builds regexp strings
+S_STRING_A = "'[^'\\\n]*(\\.|\n[^'\\\n]*)*'"
+S_STRING_B = '"[^"\\\n]*(\\.|\n[^"\\\n]*)*"'
+
+S_FLOAT = "([0-9]+\.[0-9]+)"
+
+S_OPERATORS_2 = r"(==)|(!=)|(\+\+)|(--)|(-=)|(\+=)|(\*=)|(/=)|(%=)|(&&)|(\|\|)|(\>=)|(\<=)|(>>)|(<<)|(\^\|)|(\|=)|(\^=)|(&=)|(::)|(\.\.)"
+S_OPERATORS_3 = r"(===)|(!==)|(\<\<=)|(\>\>=)|(\>\>\>)"
+S_OPERATORS_4 = r"(\>\>\>=)"
+S_OPERATORS = "(" + S_OPERATORS_4 + "|" + S_OPERATORS_3 + "|" + S_OPERATORS_2 + ")"
+
+S_REGEXP = "(\/[^\t\n\r\f\v\/]+?\/[mgi]*)"
+S_REGEXP_A = "\.(match|search|split)\s*\(\s*\(*\s*" + S_REGEXP + "\s*\)*\s*\)"
+S_REGEXP_B = "\.(replace)\s*\(\s*\(*\s*" + S_REGEXP + "\s*\)*\s*?,?"
+S_REGEXP_C = "\s*\(*\s*" + S_REGEXP + "\)*\.(test|exec)\s*\(\s*"
+S_REGEXP_D = "(:|=|\?)\s*\(*\s*" + S_REGEXP + "\s*\)*"
+S_REGEXP_ALL = S_REGEXP_A + "|" + S_REGEXP_B + "|" + S_REGEXP_C + "|" + S_REGEXP_D
+
+S_ALL = "(" + comment.S_BLOCK_COMMENT + "|" + comment.S_INLINE_COMMENT + "|" + S_STRING_A + "|" + S_STRING_B + "|" + S_REGEXP_ALL + "|" + S_FLOAT + "|" + S_OPERATORS + ")"
+
+# compile regexp strings
+R_STRING_A = re.compile("^" + S_STRING_A + "$")
+R_STRING_B = re.compile("^" + S_STRING_B + "$")
+R_FLOAT = re.compile("^" + S_FLOAT + "$")
+R_OPERATORS = re.compile(S_OPERATORS)
+R_REGEXP = re.compile(S_REGEXP)
+R_REGEXP_A = re.compile(S_REGEXP_A)
+R_REGEXP_B = re.compile(S_REGEXP_B)
+R_REGEXP_C = re.compile(S_REGEXP_C)
+R_REGEXP_D = re.compile(S_REGEXP_D)
+R_ALL = re.compile(S_ALL)
+
+
+
+
+parseLine = 1
+parseColumn = 1
+parseUniqueId = ""
+
+
+
+def protectEscape(s):
+  return s.replace("\\\\", "__$ESCAPE0$__").replace("\\\"", "__$ESCAPE1$__").replace("\\\'", "__$ESCAPE2__").replace("\/", "__$ESCAPE3__").replace("\!", "__$ESCAPE4__")
+
+
+
+def recoverEscape(s):
+  return s.replace("__$ESCAPE0$__", "\\\\").replace("__$ESCAPE1$__", "\\\"").replace("__$ESCAPE2__", "\\'").replace("__$ESCAPE3__", "\/").replace("__$ESCAPE4__", "\!")
+
+
+
+def parseElement(element):
+  global parseUniqueId
+  global parseLine
+  global parseColumn
+
+  if config.JSPROTECTED.has_key(element):
+    # print "PROTECTED: %s" % PROTECTED[content]
+    obj = { "type" : "protected", "detail" : config.JSPROTECTED[element], "source" : element, "line" : parseLine, "column" : parseColumn, "id" : parseUniqueId }
+
+  elif element in config.JSBUILTIN:
+    # print "BUILTIN: %s" % content
+    obj = { "type" : "builtin", "detail" : "", "source" : element, "line" : parseLine, "column" : parseColumn, "id" : parseUniqueId }
+
+  elif R_NUMBER.search(element):
+    # print "NUMBER: %s" % content
+    obj = { "type" : "number", "detail" : "int", "source" : element, "line" : parseLine, "column" : parseColumn, "id" : parseUniqueId }
+
+  elif element.startswith("_"):
+    # print "PRIVATE NAME: %s" % content
+    obj = { "type" : "name", "detail" : "private", "source" : element, "line" : parseLine, "column" : parseColumn, "id" : parseUniqueId }
+
+  elif len(element) > 0:
+    # print "PUBLIC NAME: %s" % content
+    obj = { "type" : "name", "detail" : "public", "source" : element, "line" : parseLine, "column" : parseColumn, "id" : parseUniqueId }
+
+  parseColumn += len(element)
+
+  return obj
+
+
+def parsePart(part):
+  global parseUniqueId
+  global parseLine
+  global parseColumn
+
+  tokens = []
+  element = ""
+
+  for line in R_NEWLINE.split(part):
+    if line == "\n":
+      tokens.append({ "type" : "eol", "source" : "", "detail" : "", "line" : parseLine, "column" : parseColumn, "id" : parseUniqueId })
+      parseColumn = 1
+      parseLine += 1
+
+    else:
+      for item in R_WHITESPACE.split(line):
+        if item == "":
+          continue
+
+        if not R_NONWHITESPACE.search(item):
+          parseColumn += len(item)
+          continue
+
+        # print "ITEM: '%s'" % item
+
+        for char in item:
+          # work on single character tokens, otherwise concat to a bigger element
+          if config.JSTOKENS.has_key(char):
+            # convert existing element
+            if element != "":
+              if R_NONWHITESPACE.search(element):
+                tokens.append(parseElement(element))
+
+              element = ""
+
+            # add character to token list
+            tokens.append({ "type" : "token", "detail" : config.JSTOKENS[char], "source" : char, "line" : parseLine, "column" : parseColumn, "id" : parseUniqueId })
+            parseColumn += 1
+
+          else:
+            element += char
+
+        # convert remaining stuff to tokens
+        if element != "":
+          if R_NONWHITESPACE.search(element):
+            tokens.append(parseElement(element))
+
+          element = ""
+
+  return tokens
+
+
+
+def parseFragmentLead(content, fragment, tokens):
+  pos = content.find(fragment)
+
+  if pos > 0:
+    tokens.extend(parsePart(recoverEscape(content[0:pos])))
+
+  return content[pos+len(fragment):]
+
+
+
+def hasLeadingContent(tokens):
+  pos = len(tokens) - 1
+  while pos > 0:
+    if tokens[pos]["type"] == "eol":
+      break
+
+    else:
+      return True
+
+  return False
+
+
+
+
+
+def parseStream(content, uniqueId=""):
+  # make global variables available
+  global parseLine
+  global parseColumn
+  global parseUniqueId
+
+  # reset global stuff
+  parseColumn = 1
+  parseLine = 1
+  parseUniqueId = uniqueId
+
+  # prepare storage
+  tokens = []
+  content = protectEscape(content)
+
+  # print "      * searching for patterns..."
+  all = R_ALL.findall(content)
+
+  # print "      * structuring..."
+  for item in all:
+    fragment = item[0]
+
+    # print "Found: '%s'" % fragment
+
+    if comment.R_BLOCK_COMMENT.match(fragment):
+      source = recoverEscape(fragment)
+      format = comment.getFormat(source)
+      multiline = comment.isMultiLine(source)
+
+      # print "Type:MultiComment"
+      content = parseFragmentLead(content, fragment, tokens)
+
+      atBegin = not hasLeadingContent(tokens)
+      if re.compile("^\s*\n").search(content):
+        atEnd = True
+      else:
+        atEnd = False
+
+      # print "Begin: %s, End: %s" % (atBegin, atEnd)
+
+      # Fixing source content
+      if atBegin:
+        source = comment.outdent(source, parseColumn - 1)
+
+      source = comment.correct(source)
+
+      connection = "before"
+
+      if atEnd and not atBegin:
+        connection = "after"
+      else:
+        connection = "before"
+
+      tokens.append({ "type" : "comment", "detail" : format, "multiline" : multiline, "connection" : connection, "source" : source, "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn, "begin" : atBegin, "end" : atEnd })
+      parseLine += len(fragment.split("\n")) - 1
+
+    elif comment.R_INLINE_COMMENT.match(fragment):
+      # print "Type:SingleComment"
+      source = recoverEscape(fragment)
+      content = parseFragmentLead(content, fragment, tokens)
+
+      atBegin = hasLeadingContent(tokens)
+      atEnd = True
+
+      if atBegin:
+        connection = "after"
+      else:
+        connection = "before"
+
+      source = comment.correct(source)
+
+      tokens.append({ "type" : "comment", "detail" : "inline", "multiline" : False, "connection" : connection, "source" : source, "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn, "begin" : atBegin, "end" : atEnd })
+
+    elif R_STRING_A.match(fragment):
+      # print "Type:StringA: %s" % fragment
+      content = parseFragmentLead(content, fragment, tokens)
+      tokens.append({ "type" : "string", "detail" : "singlequotes", "source" : recoverEscape(fragment)[1:-1].replace("\\\n",""), "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn })
+
+    elif R_STRING_B.match(fragment):
+      # print "Type:StringB: %s" % fragment
+      content = parseFragmentLead(content, fragment, tokens)
+      tokens.append({ "type" : "string", "detail" : "doublequotes", "source" : recoverEscape(fragment)[1:-1].replace("\\\n",""), "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn })
+
+    elif R_FLOAT.match(fragment):
+      # print "Type:Float: %s" % fragment
+      content = parseFragmentLead(content, fragment, tokens)
+      tokens.append({ "type" : "number", "detail" : "float", "source" : fragment, "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn })
+
+    elif R_OPERATORS.match(fragment):
+      # print "Type:Operator: %s" % fragment
+      content = parseFragmentLead(content, fragment, tokens)
+      tokens.append({ "type" : "token", "detail" : config.JSTOKENS[fragment], "source" : fragment, "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn })
+
+    else:
+      fragresult = R_REGEXP.search(fragment)
+
+      if fragresult:
+        # print "Type:RegExp: %s" % fragresult.group(0)
+
+        if R_REGEXP_A.match(fragment) or R_REGEXP_B.match(fragment) or R_REGEXP_C.match(fragment) or R_REGEXP_D.match(fragment):
+          content = parseFragmentLead(content, fragresult.group(0), tokens)
+          tokens.append({ "type" : "regexp", "detail" : "", "source" : recoverEscape(fragresult.group(0)), "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn })
+
+        else:
+          print "Bad regular expression: %s" % fragresult.group(0)
+
+      else:
+        print "Type:None!"
+
+  tokens.extend(parsePart(recoverEscape(content)))
+  tokens.append({ "type" : "eof", "source" : "", "detail" : "", "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn })
+
+  return tokens
+
+
+
+def parseFile(fileName, uniqueId="", encoding="utf-8"):
+  return parseStream(filetool.read(fileName, encoding), uniqueId)
+
+
+
+
+def convertTokensToString(tokens):
+  tokenizedString = ""
+
+  for token in tokens:
+    tokenizedString += "%s%s" % (token, "\n")
+
+  return tokenizedString
+
+
+
+
+
+def main():
+  parser = optparse.OptionParser()
+
+  parser.add_option("-w", "--write", action="store_true", dest="write", default=False, help="Writes file to incoming fileName + EXTENSION.")
+  parser.add_option("-e", "--extension", dest="extension", metavar="EXTENSION", help="The EXTENSION to use", default=".tokenized")
+  parser.add_option("--encoding", dest="encoding", default="utf-8", metavar="ENCODING", help="Defines the encoding expected for input files.")
+
+  (options, args) = parser.parse_args()
+
+  if len(args) == 0:
+    print "Needs one or more arguments (files) to tokenize!"
+    sys.exit(1)
+
+  for fileName in args:
+    if options.write:
+      print "Compiling %s => %s%s" % (fileName, fileName, options.extension)
+    else:
+      print "Compiling %s => stdout" % fileName
+
+    tokenString = convertTokensToString(parseFile(fileName, "", options.encoding))
+
+    if options.write:
+      filetool.save(fileName + options.extension, tokenString, options.encoding)
+      
+    else:
+      try:
+        print tokenString
+
+      except UnicodeEncodeError:
+        print "  * Could not encode result to ascii. Use '-w' instead."
+        sys.exit(1)
+
+
+
+
+if __name__ == '__main__':
+  try:
+    main()
+
+  except KeyboardInterrupt:
+    print
+    print "  * Keyboard Interrupt"
+    sys.exit(1)
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tokenizer.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tokenizer.pyc
new file mode 100644 (file)
index 0000000..b4b81bd
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tokenizer.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tree.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tree.py
new file mode 100755 (executable)
index 0000000..c6147a1
--- /dev/null
@@ -0,0 +1,563 @@
+#!/usr/bin/env python
+
+class NodeAccessException (Exception):
+  def __init__ (self, msg, node):
+    Exception.__init__(self, msg)
+    self.node = node
+
+
+class Node:
+  def __init__ (self, type):
+    self.type = type
+
+
+
+
+
+  def hasAttributes(self):
+    return hasattr(self, "attributes")
+
+  def set(self, key, value):
+    """Sets an attribute"""
+    if not isinstance(value, (basestring, int, long, float, complex, bool)):
+      raise NodeAccessException("'value' is no string or number: " + str(value), self)
+    if not self.hasAttributes():
+      self.attributes = {}
+    self.attributes[key] = value
+    return self
+
+  def get(self, key, mandatory = True):
+    value = None
+    if hasattr(self, "attributes") and key in self.attributes:
+      value = self.attributes[key]
+
+    if value != None:
+      return value
+    elif mandatory:
+      raise NodeAccessException("Node " + self.type + " has no attribute " + key, self)
+
+  def remove(self, key):
+    del self.attributes[key]
+    if len(self.attributes) == 0:
+      del self.attributes
+
+
+
+
+
+
+
+  def hasParent(self):
+    return hasattr(self, "parent") and self.parent != None
+
+  def hasChildren(self, ignoreComments = False):
+    if not ignoreComments:
+      return hasattr(self, "children") and len(self.children) > 0
+    else:
+      if not hasattr(self, "children"):
+        return False
+
+      for child in self.children:
+        if child.type != "comment" and child.type != "commentsBefore" and child.type != "commentsAfter":
+          return True
+
+  def addChild(self, childNode, index = None):
+    if childNode:
+      if not self.hasChildren():
+        self.children = []
+
+      if childNode.hasParent():
+        childNode.parent.removeChild(childNode)
+
+      if index != None:
+        self.children.insert(index, childNode)
+      else:
+        self.children.append(childNode)
+      childNode.parent = self
+    return self
+
+  def removeChild(self, childNode):
+    if self.hasChildren():
+      self.children.remove(childNode)
+      childNode.parent = None
+      if len(self.children) == 0:
+        del self.children
+
+  def replaceChild(self, oldChild, newChild):
+    if self.hasChildren():
+      if newChild.hasParent():
+        newChild.parent.removeChild(newChild)
+
+      self.children.insert(self.children.index(oldChild), newChild)
+      newChild.parent = self
+      self.children.remove(oldChild)
+
+
+
+
+
+
+  def getChild(self, type, mandatory = True):
+    if self.hasChildren():
+      for child in self.children:
+        if child.type == type:
+          return child
+    if mandatory:
+      raise NodeAccessException("Node " + self.type + " has no child with type " + type, self)
+
+  def hasChildRecursive(self, type):
+    if isinstance(type, basestring):
+      if self.type == type:
+        return True
+    elif isinstance(type, list):
+      if self.type in type:
+        return True
+
+    if self.hasChildren():
+      for child in self.children:
+        if child.hasChildRecursive(type):
+          return True
+
+    return False
+
+  def hasChild(self, type):
+    if self.hasChildren():
+      for child in self.children:
+        if isinstance(type, basestring):
+          if child.type == type:
+            return True
+        elif isinstance(type, list):
+          if child.type in type:
+            return True
+
+    return False
+
+  def getChildrenLength(self, ignoreComments=False):
+    if self.hasChildren():
+      if ignoreComments:
+        counter = 0
+        for child in self.children:
+          if not child.type in [ "comment", "commentsBefore", "commentsAfter" ]:
+            counter += 1
+        return counter
+
+      else:
+        return len(self.children)
+
+    return 0
+
+
+
+  def makeComplex(self):
+    makeComplex = self.get("makeComplex", False)
+
+    if makeComplex != None:
+      return makeComplex
+
+    else:
+      makeComplex = False
+
+
+
+    if self.type == "comment":
+      makeComplex = True
+
+    elif self.type == "block":
+      if self.hasChildren():
+        counter = 0
+        for child in self.children:
+          if child.type != "commentsAfter":
+            counter += 1
+            if counter > 1:
+              makeComplex = True
+
+    elif self.type == "loop":
+      if self.get("loopType") == "IF" and self.hasParent() and self.parent.type == "elseStatement":
+        pass
+      else:
+        makeComplex = True
+
+    elif self.type == "function":
+      makeComplex = self.getChild("body").hasChild("block") and self.getChild("body").getChild("block").getChildrenLength() > 0
+
+    elif self.type in [ "loop", "switch" ]:
+      makeComplex = True
+
+    elif self.hasChild("commentsBefore"):
+      makeComplex = True
+
+
+
+    # Final test: Ask the children (slower)
+    if not makeComplex and not self.type in [ "comment", "commentsBefore", "commentsAfter" ]:
+      makeComplex = self.isComplex()
+
+
+    self.set("makeComplex", makeComplex)
+
+    # print "makeComplex: %s = %s" % (self.type, makeComplex)
+
+    return makeComplex
+
+
+
+  def isComplex(self):
+    isComplex = self.get("isComplex", False)
+
+    if isComplex != None:
+      return isComplex
+
+    else:
+      isComplex = False
+
+
+
+    if not self.hasChildren():
+      isComplex = False
+
+    elif self.type == "block":
+      counter = 0
+      if self.hasChildren():
+        for child in self.children:
+          if child.type != "commentsAfter":
+            counter += 1
+
+            if child.hasChild("commentsBefore"):
+              counter += 1
+
+            if counter > 1:
+              break
+
+      if counter > 1:
+        isComplex = True
+
+      else:
+        if self.getChildrenLength() == 0:
+          isComplex = False
+
+        # in else, try to find the mode of the previous if first
+        elif self.hasParent() and self.parent.type == "elseStatement":
+          isComplex = self.parent.parent.getChild("statement").hasComplexBlock()
+
+        # in if, try to find the mode of the parent if (if existent)
+        elif self.hasParent() and self.parent.type == "statement" and self.parent.parent.type == "loop" and self.parent.parent.get("loopType") == "IF":
+          if self.parent.parent.hasParent() and self.parent.parent.parent.hasParent():
+            if self.parent.parent.parent.parent.type == "loop":
+              isComplex = self.parent.parent.parent.parent.getChild("statement").hasComplexBlock()
+
+        # in catch/finally, try to find the mode of the try statement
+        elif self.hasParent() and self.parent.hasParent() and self.parent.parent.type in [ "catch", "finally" ]:
+          isComplex = self.parent.parent.parent.getChild("statement").hasComplexBlock()
+
+    elif self.type == "elseStatement":
+      if self.hasComplexBlock():
+        isComplex = True
+      elif self.hasChild("loop") and self.getChild("loop").getChild("statement").hasComplexBlock():
+        isComplex = True
+
+    elif self.type == "array" :
+      if self.getChildrenLength(True) > 5:
+        isComplex = True
+
+    elif self.type == "map" :
+      ml = self.getChildrenLength(True)
+      if ml > 1:
+        isComplex = True
+
+    # Final test: Ask the children (slower)
+    if not (self.type == "elseStatement" and self.hasChild("loop")):
+      if not isComplex and self.hasComplexChildren():
+        isComplex = True
+
+    # print self.type + " :: %s" % isComplex
+    self.set("isComplex", isComplex)
+
+    # print "isComplex: %s = %s" % (self.type, isComplex)
+
+    return isComplex
+
+
+
+  def hasComplexChildren(self):
+    if self.hasChildren():
+      for child in self.children:
+        if child.makeComplex():
+          return True
+
+    return False
+
+
+  def hasComplexBlock(self):
+    if self.hasChild("block"):
+      return self.getChild("block").isComplex()
+
+    return False
+
+
+  def hasBlockChildren(self):
+    if self.hasChild("block"):
+      return self.getChild("block").hasChildren()
+
+    return False
+
+
+  def getChildPosition(self, searchedChild, ignoreComments = False):
+    if self.hasChildren() and searchedChild in self.children:
+      if ignoreComments:
+        counter = 0
+        for child in self.children:
+          if child == searchedChild:
+            return counter
+
+          if not child.type in [ "comment", "commentsBefore", "commentsAfter" ]:
+            counter += 1
+
+      else:
+        return self.children.index(searchedChild)
+
+    return -1
+
+
+
+  def getChildByPosition(self, pos, mandatory = True, ignoreComments = False):
+    if self.hasChildren():
+      i = 0
+      for child in self.children:
+        if ignoreComments and child.type in [ "comment", "commentsBefore", "commentsAfter" ]:
+          continue
+
+        if i == pos:
+          return child
+
+        i += 1
+
+    if mandatory:
+      raise NodeAccessException("Node " + self.type + " has no child as position %s" % pos, self)
+
+
+
+  def getChildByAttribute(self, key, value, mandatory = True):
+    if self.hasChildren():
+      for child in self.children:
+        if child.get(key) == value:
+          return child
+
+    if mandatory:
+      raise NodeAccessException("Node " + self.type + " has no child with attribute " + key + " = " + value, self)
+
+  def getChildByTypeAndAttribute(self, type, key, value, mandatory = True):
+    if self.hasChildren():
+      for child in self.children:
+        if child.type == type and child.get(key) == value:
+          return child
+
+    if mandatory:
+      raise NodeAccessException("Node " + self.type + " has no child with type " + type + " and attribute " + key + " = " + value, self)
+
+  def getFirstChild(self, mandatory = True, ignoreComments = False):
+    if self.hasChildren():
+      for child in self.children:
+        if ignoreComments and child.type in [ "comment", "commentsBefore", "commentsAfter" ]:
+          continue
+
+        return child
+
+    if mandatory:
+      raise NodeAccessException("Node " + self.type + " has no children", self)
+
+  def getLastChild(self, mandatory = True, ignoreComments = False):
+    if self.hasChildren():
+      if not ignoreComments:
+        return self.children[-1]
+      else:
+        pos = len(self.children) - 1
+        while pos >= 0:
+          child = self.children[pos]
+
+          if ignoreComments and child.type in [ "comment", "commentsBefore", "commentsAfter" ]:
+            pos -= 1
+            continue
+
+          return child
+
+    if mandatory:
+      raise NodeAccessException("Node " + self.type + " has no children", self)
+
+  def getPreviousSibling(self, mandatory = True, ignoreComments = False):
+    if self.hasParent():
+      prev = None
+      for child in self.parent.children:
+
+        if ignoreComments and child.type in [ "comment", "commentsBefore", "commentsAfter" ]:
+          continue
+
+        if child == self:
+          if prev != None:
+            return prev
+          else:
+            break
+
+        prev = child
+
+    if mandatory:
+      raise NodeAccessException("Node " + self.type + " has no previous sibling", self)
+
+  def getFollowingSibling(self, mandatory = True, ignoreComments = False):
+    if self.hasParent():
+      prev = None
+
+      for child in self.parent.children:
+        if ignoreComments and child.type in [ "comment", "commentsBefore", "commentsAfter" ]:
+          continue
+
+        if prev != None:
+          return child
+
+        if child == self:
+          prev = child
+
+    if mandatory:
+      raise NodeAccessException("Node " + self.type + " has no following sibling", self)
+
+  def isFirstChild(self, ignoreComments = False):
+    if not self.hasParent():
+      return False
+
+    return self.parent.getFirstChild(False, ignoreComments) == self
+
+  def isLastChild(self, ignoreComments = False):
+    if not self.hasParent():
+      return False
+
+    return self.parent.getLastChild(False, ignoreComments) == self
+
+  def addListChild(self, listName, childNode):
+    listNode = self.getChild(listName, False)
+    if not listNode:
+      listNode = Node(listName)
+      self.addChild(listNode)
+    listNode.addChild(childNode)
+
+  def getListChildByAttribute(self, listName, key, value, mandatory = True):
+    listNode = self.getChild(listName, False)
+    if listNode:
+      return listNode.getChildByAttribute(key, value, mandatory)
+
+    if mandatory:
+      raise NodeAccessException("Node " + self.type + " has no child " + listName, self)
+
+  def getFirstListChild(self, listName, mandatory = True):
+    listNode = self.getChild(listName, False)
+    if listNode:
+      return listNode.getFirstChild(mandatory)
+
+    if mandatory:
+      raise NodeAccessException("Node " + self.type + " has no child " + listName, self)
+
+  def getAllChildrenOfType(self, type):
+    return self._getAllChildrenOfType(type, [])
+
+  def _getAllChildrenOfType(self, type, found=[]):
+    if self.hasChildren():
+      for child in self.children:
+        if child.type == type:
+          found.append(child)
+
+        child._getAllChildrenOfType(type, found)
+
+    return found
+
+
+
+
+def nodeToXmlString(node, prefix = "", childPrefix = "  ", newLine="\n"):
+  hasText = False
+  asString = prefix + "<" + node.type
+  if node.hasAttributes():
+    for key in node.attributes:
+      if key == "text":
+        hasText = True
+      else:
+        asString += " " + key + "=\"" + escapeXmlChars(node.attributes[key], True) + "\""
+
+  if not node.hasChildren() and not hasText:
+    asString += "/>" + newLine
+  else:
+    asString += ">"
+
+    if hasText:
+      if node.hasChildren():
+        asString += newLine + prefix + childPrefix
+      else:
+        asString += newLine + prefix + childPrefix
+
+      asString += "<text>" + escapeXmlChars(node.attributes["text"], False) + "</text>" + newLine
+
+    if node.hasChildren():
+      asString += newLine
+      for child in node.children:
+        asString += nodeToXmlString(child, prefix + childPrefix, childPrefix, newLine)
+
+    asString += prefix + "</" + node.type + ">" + newLine
+
+  return asString
+
+
+
+def nodeToJsonString(node, prefix = "", childPrefix = "  ", newLine="\n"):
+  asString = prefix + '{type:"' + escapeJsonChars(node.type) + '"'
+
+  if node.hasAttributes():
+    asString += ',attributes:{'
+    firstAttribute = True
+    for key in node.attributes:
+      if not firstAttribute:
+        asString += ','
+      asString += '"' + key + '":"' + escapeJsonChars(node.attributes[key]) + '"'
+      firstAttribute = False
+    asString += '}'
+
+  if node.hasChildren():
+    asString += ',children:[' + newLine
+
+    firstChild = True
+    prefix = prefix + childPrefix
+    for child in node.children:
+      asString += nodeToJsonString(child, prefix, childPrefix, newLine) + ',' + newLine
+      firstChild = False
+
+    # NOTE We remove the ',\n' of the last child
+    if newLine == "":
+      asString = asString[:-1] + prefix + ']'
+    else:
+      asString = asString[:-2] + newLine + prefix + ']'
+
+  asString += '}'
+
+  return asString
+
+
+
+def escapeXmlChars(text, inAttribute):
+  if isinstance(text, basestring):
+    text = text.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")
+    if inAttribute:
+      text = text.replace("\"", "&quot;")
+  elif isinstance(text, bool):
+    text = str(text).lower()
+  else:
+    text = str(text)
+
+  return text
+
+
+
+def escapeJsonChars(text):
+  if isinstance(text, basestring):
+    text = text.replace('"', '\\"').replace('\n', '\\n').replace('\r', '\\r')
+  elif isinstance(text, bool):
+    text = str(text).lower()
+  else:
+    text = str(text)
+
+  return text
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tree.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tree.pyc
new file mode 100644 (file)
index 0000000..888c97c
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/tree.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/treegenerator.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/treegenerator.py
new file mode 100755 (executable)
index 0000000..d473520
--- /dev/null
@@ -0,0 +1,1021 @@
+#!/usr/bin/env python
+
+import sys, optparse
+import tokenizer, tree, filetool, variableoptimizer
+
+
+SINGLE_LEFT_OPERATORS = [ "NOT", "BITNOT", "ADD", "SUB", "INC", "DEC" ]
+
+SINGLE_RIGHT_OPERATORS = [ "INC", "DEC" ]
+
+MULTI_TOKEN_OPERATORS = [ "HOOK", "ADD", "SUB", "MUL", "DIV", "MOD", \
+  "LT", "LE", "GT", "GE", "EQ", "NE", "SHEQ", "SHNE", \
+  "AND", "OR", "BITOR", "BITXOR", "BITAND", "POWEROF", \
+  "LSH", "RSH", "URSH" ]
+
+MULTI_PROTECTED_OPERATORS = [ "INSTANCEOF", "IN" ]
+
+ASSIGN_OPERATORS = [ "ASSIGN", "ASSIGN_ADD", "ASSIGN_SUB", "ASSIGN_MUL", \
+  "ASSIGN_DIV", "ASSIGN_MOD", "ASSIGN_BITOR", "ASSIGN_BITXOR", "ASSIGN_BITAND", \
+  "ASSIGN_LSH", "ASSIGN_RSH", "ASSIGN_URSH" ]
+
+LOOP_KEYWORDS = [ "WHILE", "IF", "FOR", "WITH" ]
+
+
+class TokenStream:
+  def __init__ (self, tokens):
+    self.tokens = tokens
+    self.commentsBefore = None
+    self.parsepos = -1
+    self.eolBefore = False
+
+  def curr (self):
+    """Returns the current token."""
+    return self.tokens[self.parsepos]
+
+  def currType (self):
+    return self.curr()["type"]
+
+  def currDetail (self):
+    return self.curr()["detail"]
+
+  def currSource (self):
+    return self.curr()["source"]
+
+  def currLine (self):
+    return self.curr()["line"]
+
+  def currColumn (self):
+    return self.curr()["column"]
+
+  def currMultiline (self):
+    return self.curr()["multiline"]
+
+  def currConnection (self):
+    return self.curr()["connection"]
+
+  def currIsType (self, tokenType, tokenDetail = None):
+    if self.currType() != tokenType:
+      return False
+    else:
+      if tokenDetail == None:
+        return True
+      elif type(tokenDetail) == list:
+        return self.currDetail() in tokenDetail
+      else:
+        return self.currDetail() == tokenDetail
+
+  def expectCurrType (self, tokenType, tokenDetail = None):
+    if not self.currIsType(tokenType, tokenDetail):
+      expectedDesc = tokenType
+      if type(tokenDetail) == str:
+        expectedDesc += "/" + tokenDetail
+      raiseSyntaxException(self.curr(), expectedDesc)
+
+  def finished (self):
+    # NOTE: the last token is end of file
+    return self.parsepos >= len(self.tokens) - 1
+
+  def next (self, item=None, after=False):
+    length = len(self.tokens)
+    self.eolBefore = False
+    self.breakBefore = False
+
+    token = None
+    while self.parsepos < length - 1:
+      self.parsepos += 1
+
+      token = self.tokens[self.parsepos]
+
+      if token["type"] == "eol":
+        if self.eolBefore:
+          self.breakBefore = True
+
+        self.eolBefore = True
+        # ignore end of line
+        pass
+
+      elif token["type"] == "comment":
+        # After current item
+        if token["connection"] == "after":
+          if not token.has_key("inserted") or not token["inserted"]:
+            if item:
+              commentNode = tree.Node("comment")
+              commentNode.set("line", token["line"])
+              commentNode.set("column", token["column"])
+              commentNode.set("text", token["source"])
+              commentNode.set("detail", token["detail"])
+              commentNode.set("multiline", token["multiline"])
+              commentNode.set("connection", token["connection"])
+              commentNode.set("begin", token["begin"])
+              commentNode.set("end", token["end"])
+
+              if after:
+                item.addListChild("commentsAfter", commentNode)
+              else:
+                item.addChild(commentNode)
+
+              self.eolBefore = False
+              self.breakBefore = False
+
+            else:
+              print "Found unresolved after comment in line %s, column %s" % (token["line"], token["column"])
+              print token["source"]
+              pass
+
+        # Documentation and Block comments of next item
+        else:
+          if not self.commentsBefore:
+            self.commentsBefore = []
+
+          commentNode = tree.Node("comment")
+          commentNode.set("line", token["line"])
+          commentNode.set("column", token["column"])
+          commentNode.set("text", token["source"])
+          commentNode.set("detail", token["detail"])
+          commentNode.set("multiline", token["multiline"])
+          commentNode.set("connection", token["connection"])
+          commentNode.set("begin", token["begin"])
+          commentNode.set("end", token["end"])
+
+          self.commentsBefore.append(commentNode)
+
+          self.eolBefore = False
+          self.breakBefore = False
+
+      else:
+        break
+
+    #print "next token: " + str(token)
+
+    if token == None:
+      # return end of file token
+      return self.tokens[length - 1]
+    else:
+      return token
+
+  # alternative to use, when we want to check if the next token
+  # is a comment, but are not able to use next() because if there is
+  # no comment we want to leave in our position
+  def comment (self, item, after=False):
+    length = len(self.tokens)
+
+    token = None
+    pos = self.parsepos
+
+    while pos < length - 1:
+      pos += 1
+      token = self.tokens[pos]
+
+      if token["type"] == "comment" and token["connection"] == "after" and (not token.has_key("inserted") or not token["inserted"]):
+        commentNode = tree.Node("comment")
+        commentNode.set("line", token["line"])
+        commentNode.set("column", token["column"])
+        commentNode.set("text", token["source"])
+        commentNode.set("detail", token["detail"])
+        commentNode.set("multiline", token["multiline"])
+        commentNode.set("connection", token["connection"])
+        commentNode.set("begin", token["begin"])
+        commentNode.set("end", token["end"])
+
+        token["inserted"] = True
+
+        if after:
+          item.addListChild("commentsAfter", commentNode)
+        else:
+          item.addChild(commentNode)
+
+      else:
+        break
+
+  def hadEolBefore(self):
+    return self.eolBefore
+
+  def hadBreakBefore(self):
+    return self.breakBefore
+
+  def clearCommentsBefore(self):
+    commentsBefore = self.commentsBefore
+    self.commentsBefore = None
+    return commentsBefore
+
+
+
+class SyntaxException (Exception):
+  pass
+
+
+
+def createItemNode(type, stream):
+  # print "CREATE %s" % type
+
+  node = tree.Node(type)
+  node.set("line", stream.currLine())
+  node.set("column", stream.currColumn())
+
+  commentsBefore = stream.clearCommentsBefore()
+  if commentsBefore:
+    for comment in commentsBefore:
+      node.addListChild("commentsBefore", comment)
+
+  return node
+
+
+
+def raiseSyntaxException (token, expectedDesc = None):
+  if expectedDesc:
+    msg = "Expected " + expectedDesc + " but found "
+  else:
+    msg = "Unexpected "
+
+  msg += token["type"]
+
+  if token["detail"]:
+    msg += "/" + token["detail"]
+
+  msg += ": '" + token["source"] + "'. file:" + \
+    token["id"] + ", line:" + str(token["line"]) + \
+    ", column:" + str(token["column"])
+
+  raise SyntaxException(msg)
+
+
+
+def createSyntaxTree (tokenArr):
+  """Creates a syntax tree from a token stream.
+
+  tokens: the token stream."""
+
+  stream = TokenStream(tokenArr)
+  stream.next()
+
+  rootBlock = tree.Node("file")
+  rootBlock.set("file", stream.curr()["id"])
+
+  while not stream.finished():
+    rootBlock.addChild(readStatement(stream))
+
+  return rootBlock
+
+
+
+def readExpression (stream):
+  return readStatement(stream, True)
+
+
+
+def readStatement (stream, expressionMode = False, overrunSemicolon = True, inStatementList = False):
+  item = None
+
+  eolBefore = stream.hadEolBefore()
+  breakBefore = stream.hadBreakBefore()
+
+  # print "PROGRESS: %s - %s (%s) [expr=%s]" % (stream.currType(), stream.currDetail(), stream.currLine(), expressionMode)
+
+  if currIsIdentifier(stream, True):
+    # statement starts with an identifier
+    variable = readVariable(stream, True)
+    variable = readObjectOperation(stream, variable)
+
+    if stream.currIsType("token", ASSIGN_OPERATORS):
+      # This is an assignment
+      item = createItemNode("assignment", stream)
+      item.set("operator", stream.currDetail())
+      stream.next(item)
+
+      item.addListChild("left", variable)
+      item.addListChild("right", readExpression(stream))
+    elif stream.currIsType("token", "COLON") and not expressionMode:
+      # This is a label
+      item = variable
+      item.type = "label"
+      stream.next(variable)
+    else:
+      # Something else comes after the variable -> It's a sole variable
+      item = variable
+
+    # Any comments found for the variable belong to the extracted item
+    commentsChild = variable.getChild("commentsBefore", False)
+    if item and commentsChild != None:
+      variable.removeChild(commentsChild)
+      item.addChild(commentsChild, 0)
+  elif stream.currIsType("protected", "FUNCTION"):
+    item = createItemNode("function", stream)
+    stream.next(item)
+
+    # Read optional function name
+    if stream.currIsType("name"):
+      item.set("name", stream.currSource())
+      stream.next(item)
+
+    readParamList(item, stream)
+    item.addListChild("body", readBlock(stream))
+
+    # Check for direct execution: function() {}()
+    if stream.currIsType("token", "LP"):
+      # The function is executed directly
+      functionItem = item
+      item = createItemNode("call", stream)
+      item.addListChild("operand", functionItem)
+      readParamList(item, stream)
+      item = readObjectOperation(stream, item)
+  elif stream.currIsType("protected", "VOID"):
+    stream.next(item)
+    item = createItemNode("void", stream)
+    stream.next(item)
+    item.addChild(readStatement(stream, expressionMode))
+    stream.expectCurrType("token", "RP")
+    stream.next(item, True)
+    item = readObjectOperation(stream, item)
+  elif stream.currIsType("token", "LP"):
+    igroup = createItemNode("group", stream)
+    stream.next(igroup)
+    igroup.addChild(readStatement(stream, expressionMode))
+    stream.expectCurrType("token", "RP")
+    stream.next(igroup, True)
+    oper = readObjectOperation(stream, igroup)
+
+    # supports e.g. (this.editor.object || this.editor.iframe).style.marginTop = null;
+    if stream.currIsType("token", ASSIGN_OPERATORS):
+      # This is an assignment
+      item = createItemNode("assignment", stream)
+      item.set("operator", stream.currDetail())
+      stream.next(item)
+
+      item.addListChild("left", oper)
+      item.addListChild("right", readExpression(stream))
+    else:
+      # Something else comes after the variable -> It's a sole variable
+      item = oper
+
+  elif stream.currIsType("string"):
+    item = createItemNode("constant", stream)
+    item.set("constantType", "string")
+    item.set("value", stream.currSource())
+    item.set("detail", stream.currDetail())
+    stream.next(item, True)
+    # This is a member accessor (E.g. "bla.blubb")
+    item = readObjectOperation(stream, item)
+  elif stream.currIsType("number"):
+    item = createItemNode("constant", stream)
+    item.set("constantType", "number")
+    item.set("value", stream.currSource())
+    item.set("detail", stream.currDetail())
+    stream.next(item, True)
+    # This is a member accessor (E.g. "bla.blubb")
+    item = readObjectOperation(stream, item)
+  elif stream.currIsType("regexp"):
+    item = createItemNode("constant", stream)
+    item.set("constantType", "regexp")
+    item.set("value", stream.currSource())
+    stream.next(item, True)
+    # This is a member accessor (E.g. "bla.blubb")
+    item = readObjectOperation(stream, item)
+  elif expressionMode and (stream.currIsType("protected", "TRUE") or stream.currIsType("protected", "FALSE")):
+    item = createItemNode("constant", stream)
+    item.set("constantType", "boolean")
+    item.set("value", stream.currSource())
+    stream.next(item, True)
+  elif expressionMode and stream.currIsType("protected", "NULL"):
+    item = createItemNode("constant", stream)
+    item.set("constantType", "null")
+    item.set("value", stream.currSource())
+    stream.next(item, True)
+  elif expressionMode and stream.currIsType("token", "LC"):
+    item = readMap(stream)
+  elif expressionMode and stream.currIsType("token", "LB"):
+    item = readArray(stream)
+  elif stream.currIsType("token", SINGLE_LEFT_OPERATORS):
+    item = createItemNode("operation", stream)
+    item.set("operator", stream.currDetail())
+    item.set("left", True)
+    stream.next(item)
+    item.addListChild("first", readExpression(stream))
+  elif stream.currIsType("protected", "TYPEOF"):
+    item = createItemNode("operation", stream)
+    item.set("operator", "TYPEOF")
+    item.set("left", True)
+    stream.next(item)
+    item.addListChild("first", readExpression(stream))
+  elif stream.currIsType("protected", "NEW"):
+    item = readInstantiation(stream)
+    item = readObjectOperation(stream, item)
+  elif not expressionMode and stream.currIsType("protected", "VAR"):
+    item = createItemNode("definitionList", stream)
+    stream.next(item)
+    finished = False
+    while not finished:
+      if not currIsIdentifier(stream, False):
+        raiseSyntaxException(stream.curr(), "identifier")
+
+      childitem = createItemNode("definition", stream)
+      childitem.set("identifier", stream.currSource())
+      stream.next(childitem)
+      if stream.currIsType("token", "ASSIGN"):
+        assign = createItemNode("assignment", stream)
+        childitem.addChild(assign)
+        stream.next(assign)
+        assign.addChild(readExpression(stream))
+
+      item.addChild(childitem)
+
+      # Check whether anothe definition follows, e.g. "var a, b=1, c=4"
+      if stream.currIsType("token", "COMMA"):
+        stream.next(item)
+      else:
+        finished = True
+
+    stream.comment(item, True)
+
+  elif not expressionMode and stream.currIsType("protected", LOOP_KEYWORDS):
+    item = readLoop(stream)
+  elif not expressionMode and stream.currIsType("protected", "DO"):
+    item = readDoWhile(stream)
+  elif not expressionMode and stream.currIsType("protected", "SWITCH"):
+    item = readSwitch(stream)
+  elif not expressionMode and stream.currIsType("protected", "TRY"):
+    item = readTryCatch(stream)
+  elif not expressionMode and stream.currIsType("token", "LC"):
+    item = readBlock(stream)
+  elif not expressionMode and stream.currIsType("protected", "RETURN"):
+    item = createItemNode("return", stream)
+    stream.next(item)
+    # NOTE: The expression after the return keyword is optional
+    if not stream.currIsType("token", "SEMICOLON") and not stream.currIsType("token", "RC"):
+      item.addListChild("expression", readExpression(stream))
+      stream.comment(item, True)
+  elif not expressionMode and stream.currIsType("protected", "THROW"):
+    item = createItemNode("throw", stream)
+    stream.next(item)
+    item.addListChild("expression", readExpression(stream))
+    stream.comment(item, True)
+  elif not expressionMode and stream.currIsType("protected", "DELETE"):
+    item = createItemNode("delete", stream)
+    stream.next(item)
+    item.addListChild("expression", readExpression(stream))
+    stream.comment(item, True)
+  elif not expressionMode and stream.currIsType("protected", "BREAK"):
+    item = createItemNode("break", stream)
+    stream.next(item)
+    # NOTE: The label after the break keyword is optional
+    if not stream.hadEolBefore() and stream.currIsType("name"):
+      item.set("label", stream.currSource())
+      # As the label is an attribute, we need to put following comments into after
+      # to differenciate between comments before and after the label
+      stream.next(item, True)
+  elif not expressionMode and stream.currIsType("protected", "CONTINUE"):
+    item = createItemNode("continue", stream)
+    stream.next(item)
+    # NOTE: The label after the continue keyword is optional
+    if not stream.hadEolBefore() and stream.currIsType("name"):
+      item.set("label", stream.currSource())
+      stream.next(item, True)
+
+  if not item:
+    if stream.currIsType("token", "SEMICOLON") and not expressionMode:
+      # This is an empty statement
+      item = createItemNode("emptyStatement", stream)
+      stream.next(item)
+    else:
+      if expressionMode:
+        expectedDesc = "expression"
+      else:
+        expectedDesc = "statement"
+      raiseSyntaxException(stream.curr(), expectedDesc)
+
+  # check whether this is an operation
+  if stream.currIsType("token", MULTI_TOKEN_OPERATORS) or stream.currIsType("protected", MULTI_PROTECTED_OPERATORS) or (stream.currIsType("token", SINGLE_RIGHT_OPERATORS) and not stream.hadEolBefore()):
+    # its an operation -> We've already parsed the first operand (in item)
+    parsedItem = item
+
+    oper = stream.currDetail()
+
+    item = createItemNode("operation", stream)
+    item.addListChild("first", parsedItem)
+    item.set("operator", oper)
+    stream.next(item)
+
+    if oper in MULTI_TOKEN_OPERATORS or oper in MULTI_PROTECTED_OPERATORS:
+      # It's a multi operator -> There must be a second argument
+      item.addListChild("second", readExpression(stream))
+      if oper == "HOOK":
+        # It's a "? :" operation -> There must be a third argument
+        stream.expectCurrType("token", "COLON")
+        stream.next(item)
+        item.addListChild("third", readExpression(stream))
+
+    # Deep scan on single right operators e.g. if(i-- > 4)
+    if oper in SINGLE_RIGHT_OPERATORS and stream.currIsType("token", MULTI_TOKEN_OPERATORS) and expressionMode:
+      paroper = stream.currDetail()
+
+      paritem = createItemNode("operation", stream)
+      paritem.addListChild("first", item)
+      paritem.set("operator", paroper)
+      stream.next(item)
+
+      if paroper in MULTI_TOKEN_OPERATORS or paroper in MULTI_PROTECTED_OPERATORS:
+        # It's a multi operator -> There must be a second argument
+        paritem.addListChild("second", readExpression(stream))
+        if paroper == "HOOK":
+          # It's a "? :" operation -> There must be a third argument
+          stream.expectCurrType("token", "COLON")
+          stream.next(item)
+          paritem.addListChild("third", readExpression(stream))
+
+      # return parent item
+      item = paritem
+
+
+
+  # check whether this is a combined statement, e.g. "bla(), i++"
+  if not expressionMode and not inStatementList and stream.currIsType("token", "COMMA"):
+    statementList = createItemNode("statementList", stream)
+    statementList.addChild(item)
+    while stream.currIsType("token", "COMMA"):
+      stream.next(statementList)
+      statementList.addChild(readStatement(stream, False, False, True))
+    item = statementList
+
+  # go over the optional semicolon
+  if not expressionMode and overrunSemicolon and stream.currIsType("token", "SEMICOLON"):
+    stream.next(item, True)
+
+
+  item.set("eolBefore", eolBefore)
+  item.set("breakBefore", breakBefore)
+
+  return item
+
+
+
+def currIsIdentifier (stream, allowThis):
+  det = stream.currDetail()
+  return stream.currIsType("name") or stream.currIsType("builtin") \
+    or (stream.currIsType("protected") and \
+       (det == "INFINITY" or det == "PROTOTYPE" or det == "CALL" or \
+        det == "APPLY" or (allowThis and det == "THIS")))
+
+
+
+def readVariable (stream, allowArrays):
+  # Note: keywords may be used as identifiers, too
+  item = createItemNode("variable", stream)
+
+  done = False
+  firstIdentifier = True
+  while not done:
+    if not currIsIdentifier(stream, firstIdentifier):
+      raiseSyntaxException(stream.curr(), "identifier")
+
+    identifier = createItemNode("identifier", stream)
+    identifier.set("name", stream.currSource())
+    stream.next(identifier)
+
+    if allowArrays:
+      while stream.currIsType("token", "LB"):
+        accessor = createItemNode("accessor", stream)
+        stream.next(accessor)
+        accessor.addListChild("identifier", identifier)
+        accessor.addListChild("key", readExpression(stream))
+
+        stream.expectCurrType("token", "RB")
+        stream.next(accessor, True)
+
+        identifier = accessor
+
+    item.addChild(identifier)
+
+    firstIdentifier = False
+
+    if stream.currIsType("token", "DOT"):
+      stream.next(item)
+    else:
+      done = True
+
+  return item
+
+
+
+def readObjectOperation(stream, operand, onlyAllowMemberAccess = False):
+  if stream.currIsType("token", "DOT"):
+    # This is a member accessor (E.g. "bla.blubb")
+    item = createItemNode("accessor", stream)
+    stream.next(item)
+    item.addListChild("left", operand)
+
+    # special mode for constants which should be assigned to an accessor first
+    if operand.type == "constant":
+      item.addListChild("right", readVariable(stream, False))
+      item = readObjectOperation(stream, item)
+    else:
+      item.addListChild("right", readObjectOperation(stream, readVariable(stream, False)))
+
+  elif stream.currIsType("token", "LP"):
+    # This is a function call (E.g. "bla(...)")
+    item = createItemNode("call", stream)
+    item.addListChild("operand", operand)
+    readParamList(item, stream)
+    item = readObjectOperation(stream, item)
+  elif stream.currIsType("token", "LB"):
+    # This is an array access (E.g. "bla[...]")
+    item = createItemNode("accessor", stream)
+    stream.next(item)
+    item.addListChild("identifier", operand)
+    item.addListChild("key", readExpression(stream))
+
+    stream.expectCurrType("token", "RB")
+    stream.next(item, True)
+    item = readObjectOperation(stream, item)
+  else:
+    item = operand
+
+  # Any comments found for the operand belong to the item
+  if operand != item:
+    commentsChild = operand.getChild("commentsBefore", False)
+    if commentsChild != None:
+      operand.removeChild(commentsChild)
+      item.addChild(commentsChild, 0)
+
+  return item
+
+
+
+def readParamList (node, stream):
+  stream.expectCurrType("token", "LP")
+
+  params = createItemNode("params", stream)
+  node.addChild(params)
+
+  stream.next(params)
+
+  firstParam = True
+  lastExpr = None
+  while not stream.currIsType("token", "RP"):
+    if firstParam:
+      firstParam = False
+    else:
+      stream.expectCurrType("token", "COMMA")
+      stream.next(lastExpr, True)
+
+    lastExpr = readExpression(stream)
+    params.addChild(lastExpr)
+
+  # Has an end defined by the loop above
+  # This means that all comments following are after item
+  stream.next(params, True)
+
+
+def readBlock(stream):
+  stream.expectCurrType("token", "LC")
+  item = createItemNode("block", stream)
+
+  # Iterate through children
+  stream.next(item)
+  while not stream.currIsType("token", "RC"):
+    item.addChild(readStatement(stream))
+
+  # Has an end defined by the loop above
+  # This means that all comments following are after item
+  stream.next(item, True)
+
+  return item
+
+
+def readMap(stream):
+  stream.expectCurrType("token", "LC")
+
+  item = createItemNode("map", stream)
+  stream.next(item)
+
+  # NOTE: We use our own flag for checking whether the array already has entries
+  #       and not item.hasChildren(), because item.hasChildren() is also true
+  #       when there are comments before the array
+  hasEntries = False
+
+  while not stream.currIsType("token", "RC"):
+    if hasEntries:
+      stream.expectCurrType("token", "COMMA")
+      stream.next(item)
+
+    if not currIsIdentifier(stream, True) and not stream.currIsType("string") and not stream.currIsType("number"):
+      raiseSyntaxException(stream.curr(), "map key (identifier, string or number)")
+
+    keyvalue = createItemNode("keyvalue", stream)
+    keyvalue.set("key", stream.currSource())
+
+    if stream.currIsType("string"):
+      keyvalue.set("quote", stream.currDetail())
+
+    stream.next(keyvalue)
+    stream.expectCurrType("token", "COLON")
+    stream.next(keyvalue, True)
+    keyvalue.addListChild("value", readExpression(stream))
+
+    item.addChild(keyvalue)
+
+    hasEntries = True
+
+  # Has an end defined by the loop above
+  # This means that all comments following are after item
+  stream.next(item, True)
+
+  return item
+
+
+
+def readArray(stream):
+  stream.expectCurrType("token", "LB")
+
+  item = createItemNode("array", stream)
+  stream.next(item)
+
+  # NOTE: We use our own flag for checking whether the array already has entries
+  #       and not item.hasChildren(), because item.hasChildren() is also true
+  #       when there are comments before the array
+  hasEntries = False
+  while not stream.currIsType("token", "RB"):
+    if hasEntries:
+      stream.expectCurrType("token", "COMMA")
+      stream.next(item)
+
+    item.addChild(readExpression(stream))
+    hasEntries = True
+
+  # Has an end defined by the loop above
+  # This means that all comments following are after item
+  stream.next(item, True)
+
+  # Support constructs like [ "foo", "bar" ].join("")
+  item = readObjectOperation(stream, item)
+
+  return item
+
+
+
+def readInstantiation(stream):
+  stream.expectCurrType("protected", "NEW")
+
+  item = createItemNode("instantiation", stream)
+  stream.next(item)
+
+  # Could be a simple variable or a just-in-time function declaration (closure)
+  # Read this as expression
+  stmnt = readStatement(stream, True, False)
+  item.addListChild("expression", stmnt)
+
+  return item
+
+
+
+def readLoop(stream):
+  stream.expectCurrType("protected", LOOP_KEYWORDS)
+
+  loopType = stream.currDetail()
+
+  item = createItemNode("loop", stream)
+  item.set("loopType", loopType)
+
+  stream.next(item)
+  stream.expectCurrType("token", "LP")
+
+  if loopType == "FOR":
+    stream.next(item)
+
+    if not stream.currIsType("token", "SEMICOLON"):
+      # Read the optional first statement
+      first = createItemNode("first", stream)
+      item.addChild(first)
+      first.addChild(readStatement(stream, False, False))
+      stream.comment(first, True)
+
+    if stream.currIsType("token", "SEMICOLON"):
+      # It's a for (;;) loop
+      item.set("forVariant", "iter")
+
+      stream.next(item)
+      if not stream.currIsType("token", "SEMICOLON"):
+        # Read the optional second expression
+        second = createItemNode("second", stream)
+        item.addChild(second)
+        second.addChild(readExpression(stream))
+        stream.comment(second, True)
+
+      stream.expectCurrType("token", "SEMICOLON")
+      stream.next(item)
+
+      if not stream.currIsType("token", "RP"):
+        # Read the optional third statement
+        third = createItemNode("third", stream)
+        item.addChild(third)
+        third.addChild(readStatement(stream, False, False))
+        stream.comment(third, True)
+
+    elif stream.currIsType("token", "RP"):
+      # It's a for ( in ) loop
+      item.set("forVariant", "in")
+      pass
+
+    else:
+      raiseSyntaxException(stream.curr(), "semicolon or in")
+
+    stream.expectCurrType("token", "RP")
+
+  else:
+    expr = createItemNode("expression", stream)
+    stream.next(expr)
+    expr.addChild(readExpression(stream))
+    item.addChild(expr)
+    stream.comment(expr, True)
+    stream.expectCurrType("token", "RP")
+
+  # comments should be already completed from the above code
+  stmnt = createItemNode("statement", stream)
+  item.addChild(stmnt)
+  stream.next()
+  stmnt.addChild(readStatement(stream))
+
+  if loopType == "IF" and stream.currIsType("protected", "ELSE"):
+    elseStmnt = createItemNode("elseStatement", stream)
+    item.addChild(elseStmnt)
+    stream.next(elseStmnt)
+    elseStmnt.addChild(readStatement(stream))
+
+  return item
+
+
+
+def readDoWhile(stream):
+  stream.expectCurrType("protected", "DO")
+
+  item = createItemNode("loop", stream)
+  item.set("loopType", "DO")
+  stream.next(item)
+
+  stmnt = createItemNode("statement", stream)
+  item.addChild(stmnt)
+  stmnt.addChild(readStatement(stream))
+
+  stream.expectCurrType("protected", "WHILE")
+  stream.next(item)
+
+  stream.expectCurrType("token", "LP")
+
+  expr = createItemNode("expression", stream)
+  item.addChild(expr)
+  stream.next(expr)
+
+  expr.addChild(readExpression(stream))
+
+  stream.expectCurrType("token", "RP")
+  stream.next(item, True)
+
+  return item
+
+
+def readSwitch(stream):
+  stream.expectCurrType("protected", "SWITCH")
+
+  item = createItemNode("switch", stream)
+  item.set("switchType", "case")
+
+  stream.next(item)
+  stream.expectCurrType("token", "LP")
+
+  expr = createItemNode("expression", stream)
+  stream.next(expr)
+  item.addChild(expr)
+  expr.addChild(readExpression(stream))
+
+  stream.expectCurrType("token", "RP")
+  stream.next(expr, True)
+
+  stream.expectCurrType("token", "LC")
+  stmnt = createItemNode("statement", stream)
+  item.addChild(stmnt)
+  stream.next(stmnt)
+
+  while not stream.currIsType("token", "RC"):
+    if stream.currIsType("protected", "CASE"):
+      caseItem = createItemNode("case", stream)
+      stream.next(caseItem)
+      caseItem.addListChild("expression", readExpression(stream))
+      stmnt.addChild(caseItem)
+
+      stream.expectCurrType("token", "COLON")
+      stream.next(caseItem, True)
+
+    elif stream.currIsType("protected", "DEFAULT"):
+      defaultItem = createItemNode("default", stream)
+      stmnt.addChild(defaultItem)
+      stream.next(defaultItem)
+
+      stream.expectCurrType("token", "COLON")
+      stream.next(defaultItem, True)
+
+    else:
+      raiseSyntaxException(stream.curr(), "case or default")
+
+    while not stream.currIsType("token", "RC") and not stream.currIsType("protected", "CASE") and not stream.currIsType("protected", "DEFAULT"):
+      stmnt.addChild(readStatement(stream))
+
+  stream.next(stmnt, True)
+
+  return item
+
+
+def readTryCatch(stream):
+  stream.expectCurrType("protected", "TRY")
+
+  item = createItemNode("switch", stream)
+  item.set("switchType", "catch")
+  stream.next(item)
+
+  item.addListChild("statement", readStatement(stream))
+
+  while stream.currIsType("protected", "CATCH"):
+    catchItem = createItemNode("catch", stream)
+    stream.next(catchItem)
+
+    stream.expectCurrType("token", "LP")
+
+    exprItem = createItemNode("expression", stream)
+    catchItem.addChild(exprItem)
+    stream.next(exprItem)
+    exprItem.addChild(readExpression(stream))
+
+    stream.expectCurrType("token", "RP")
+    stream.next(exprItem, True)
+
+    stmnt = createItemNode("statement", stream)
+    catchItem.addChild(stmnt)
+    stmnt.addChild(readStatement(stream))
+
+    item.addChild(catchItem)
+
+  if stream.currIsType("protected", "FINALLY"):
+    finallyItem = createItemNode("finally", stream)
+    stream.next(finallyItem)
+
+    stmnt = createItemNode("statement", stream)
+    finallyItem.addChild(stmnt)
+    stmnt.addChild(readStatement(stream))
+
+    item.addChild(finallyItem)
+
+  return item
+
+
+
+
+
+
+
+
+
+def main():
+  parser = optparse.OptionParser()
+
+  parser.add_option("-w", "--write", action="store_true", dest="write", default=False, help="Writes file to incoming fileName + EXTENSION.")
+  parser.add_option("-e", "--extension", dest="extension", metavar="EXTENSION", help="The EXTENSION to use", default=".compiled")
+  parser.add_option("--optimize-variables", action="store_true", dest="optimizeVariables", default=False, help="Optimize variables. Reducing size.")
+  parser.add_option("--encoding", dest="encoding", default="utf-8", metavar="ENCODING", help="Defines the encoding expected for input files.")
+
+  (options, args) = parser.parse_args()
+
+  if len(args) == 0:
+    print "Needs one or more arguments (files) to compile!"
+    sys.exit(1)
+
+  for fileName in args:
+    if options.write:
+      print "Generating tree of %s => %s%s" % (fileName, fileName, options.extension)
+    else:
+      print "Generating tree of %s => stdout" % fileName
+
+    restree = createSyntaxTree(tokenizer.parseFile(fileName, "", options.encoding))
+
+    if options.optimizeVariables:
+      variableoptimizer.search(restree, [], 0, "$")
+
+    compiledString = tree.nodeToXmlString(restree)
+    if options.write:
+      filetool.save(fileName + options.extension, compiledString)
+
+    else:
+      try:
+        print compiledString
+
+      except UnicodeEncodeError:
+        print "  * Could not encode result to ascii. Use '-w' instead."
+        sys.exit(1)
+
+
+
+if __name__ == '__main__':
+  try:
+    main()
+
+  except KeyboardInterrupt:
+    print
+    print "  * Keyboard Interrupt"
+    sys.exit(1)
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/treegenerator.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/treegenerator.pyc
new file mode 100644 (file)
index 0000000..6e142ea
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/treegenerator.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/variableoptimizer.py b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/variableoptimizer.py
new file mode 100755 (executable)
index 0000000..6fa148d
--- /dev/null
@@ -0,0 +1,119 @@
+#!/usr/bin/env python
+
+import tree, mapper
+
+def search(node, found, level=0, prefix="$", register=False, debug=False):
+  if node.type == "function":
+    if register:
+      name = node.get("name", False)
+      if name != None and not name in found:
+        # print "Name: %s" % funcName
+        found.append(name)
+
+    foundLen = len(found)
+    register = True
+
+    if debug:
+      print "\n%s<scope line='%s'>" % (("  " * level), node.get("line"))
+
+  # e.g. func(name1, name2);
+  elif register and node.type == "variable" and node.hasChildren() and len(node.children) == 1:
+    if node.parent.type == "params" and node.parent.parent.type != "call":
+      first = node.getFirstChild()
+
+      if first.type == "identifier":
+        name = first.get("name")
+
+        if not name in found:
+          found.append(name)
+
+  # e.g. var name1, name2 = "foo";
+  elif register and node.type == "definition":
+    name = node.get("identifier", False)
+
+    if name != None:
+      if not name in found:
+        found.append(name)
+
+  # Iterate over children
+  if node.hasChildren():
+    if node.type == "function":
+      for child in node.children:
+        search(child, found, level+1, prefix, register, debug)
+
+    else:
+      for child in node.children:
+        search(child, found, level, prefix, register, debug)
+
+  # Function closed
+  if node.type == "function":
+
+    # Debug
+    if debug:
+      for item in found:
+        print "  %s<item>%s</item>" % (("  " * level), item)
+      print "%s</scope>" % ("  " * level)
+
+    # Iterate over content
+    # Replace variables in current scope
+    update(node, found, prefix, debug)
+    del found[foundLen:]
+
+
+
+def update(node, found, prefix="$", debug=False):
+  # Handle all identifiers
+  if node.type == "identifier":
+
+    isFirstChild = False
+    isVariableMember = False
+
+    if node.parent.type == "variable":
+      isVariableMember = True
+      varParent = node.parent.parent
+
+      if not (varParent.type == "right" and varParent.parent.type == "accessor"):
+        isFirstChild = node.parent.getFirstChild(True, True) == node
+
+    elif node.parent.type == "identifier" and node.parent.parent.type == "accessor":
+      isVariableMember = True
+      accessor = node.parent.parent
+      isFirstChild = accessor.parent.getFirstChild(True, True) == accessor
+
+    # inside a variable parent only respect the first member
+    if not isVariableMember or isFirstChild:
+      idenName = node.get("name", False)
+
+      if idenName != None and idenName in found:
+        replName = "%s%s" % (prefix, mapper.convert(found.index(idenName)))
+        node.set("name", replName)
+
+        if debug:
+          print "  - Replaced '%s' with '%s'" % (idenName, replName)
+
+  # Handle variable definition
+  elif node.type == "definition":
+    idenName = node.get("identifier", False)
+
+    if idenName != None and idenName in found:
+      replName = "%s%s" % (prefix, mapper.convert(found.index(idenName)))
+      node.set("identifier", replName)
+
+      if debug:
+        print "  - Replaced '%s' with '%s'" % (idenName, replName)
+
+  # Handle function definition
+  elif node.type == "function":
+    idenName = node.get("name", False)
+
+    if idenName != None and idenName in found:
+      replName = "%s%s" % (prefix, mapper.convert(found.index(idenName)))
+      node.set("name", replName)
+
+      if debug:
+        print "  - Replaced '%s' with '%s'" % (idenName, replName)
+
+  # Iterate over children
+  if node.hasChildren():
+    for child in node.children:
+      update(child, found, prefix, debug)
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/variableoptimizer.pyc b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/variableoptimizer.pyc
new file mode 100644 (file)
index 0000000..5e31ca7
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/modules/variableoptimizer.pyc differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/presets/core.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/presets/core.dat
new file mode 100755 (executable)
index 0000000..df7843b
--- /dev/null
@@ -0,0 +1,12 @@
+###########################################################################\r
+#\r
+# Generates a compiled qooxdoo core JavaScript file\r
+#\r
+###########################################################################\r
+\r
+script-input = framework/source/class\r
+cache-directory = .cache\r
+include = core\r
+generate-compiled-script\r
+compiled-script-file = core.js\r
+optimize-strings\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/presets/packages.dat b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/tool/presets/packages.dat
new file mode 100755 (executable)
index 0000000..3b60a78
--- /dev/null
@@ -0,0 +1,25 @@
+###########################################################################\r
+#\r
+# Generates 3 JavaScript files with different include configuration\r
+#\r
+###########################################################################\r
+\r
+script-input = framework/source/class\r
+cache-directory = .cache\r
+generate-compiled-script\r
+optimize-strings\r
+\r
+package = core\r
+include = core\r
+compiled-script-file = pkg-core.js\r
+\r
+package = ui_core\r
+include = ui_core\r
+exclude = core\r
+compiled-script-file = pkg-ui_core.js\r
+\r
+package = ui_basic\r
+include = ui_basic\r
+exclude = core\r
+exclude = ui_core\r
+compiled-script-file = pkg-ui_basic.js\r
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/skeleton/sample1.tar.gz b/webapps/qooxdoo-0.6.3-sdk/frontend/skeleton/sample1.tar.gz
new file mode 100644 (file)
index 0000000..8a94296
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/skeleton/sample1.tar.gz differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/skeleton/sample2.tar.gz b/webapps/qooxdoo-0.6.3-sdk/frontend/skeleton/sample2.tar.gz
new file mode 100644 (file)
index 0000000..b7a371e
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/skeleton/sample2.tar.gz differ
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/skeleton/sample3.tar.gz b/webapps/qooxdoo-0.6.3-sdk/frontend/skeleton/sample3.tar.gz
new file mode 100644 (file)
index 0000000..4b05231
Binary files /dev/null and b/webapps/qooxdoo-0.6.3-sdk/frontend/skeleton/sample3.tar.gz differ
diff --git a/webapps/scripting/client/call.js b/webapps/scripting/client/call.js
new file mode 100644 (file)
index 0000000..2886471
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+       client side js functions for remote calls into the server
+
+       Copyright Andrew Tridgell 2005
+       released under the GNU GPL Version 2 or later
+*/
+
+var __call = new Object();
+
+/*
+  we can't use the qooxdoo portability layer for this, as it assumes
+  you are using an XML transport, so instead replicate the portability
+  code for remote calls here. Don't look too closely or you will go
+  blind.
+*/
+__call._activex = window.ActiveXObject && !(new QxClient).isOpera() ? true : false;
+__call._activexobj = null;
+__call._ok = QxXmlHttpLoader._http || QxXmlHttpLoader._activex;
+
+if (__call._activex) {
+       var servers = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
+       for (var i=0; i<servers.length; i++) {
+               try {
+                       var o = new ActiveXObject(servers[i] + ".XMLHTTP");
+                       __call._activexobj = servers[i];
+                       o = null;
+               } catch(ex) {};
+       };
+};
+
+/*
+  return a http object ready for a remote call
+*/
+function __http_object() {
+       return __call._activex ? 
+               new ActiveXObject(__call._activexobj + ".XMLHTTP") : 
+               new XMLHttpRequest();
+}
+
+/*
+       usage:
+
+         vserver_call(url, func, callback, args);
+
+       'func' is a function name to call on the server
+       any additional arguments are passed to func() on the server
+
+       The callback() function is called with the returned
+       object. 'callback' may be null.
+*/
+function vserver_call_url(url, func, callback, args) {
+       var args2 = new Object();
+       args2.length = args.length;
+       var i;
+       for (i=0;i<args.length;i++) {
+               args2[i] = args[i];
+       }
+       var req = __http_object();
+       req.open("POST", url, true);
+       req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
+       req.send("ajaj_func=" + func + "&ajaj_args=" + encodeObject(args2));
+       req.onreadystatechange = function() { 
+               if (4 == req.readyState && callback != null) {
+                       var o = decodeObject(req.responseText);
+                       callback(o.res);
+               }
+       }
+}
+
+
+/*
+       usage:
+
+         server_call_url(url, func, callback, ...);
+
+       'func' is a function name to call on the server
+       any additional arguments are passed to func() on the server
+
+       The callback() function is called with the returned
+       object. 'callback' may be null.
+*/
+function server_call_url(url, func, callback) {
+       var args = new Object();
+       var i;
+       for (i=3;i<arguments.length;i++) {
+               args[i-3] = arguments[i];
+       }
+       args.length = i-3;
+       vserver_call_url(url, func, callback, args);
+}
+
+
+/*
+       call printf on the server
+*/
+function srv_printf() {
+       vserver_call_url('/scripting/general_calls.esp', 'srv_printf', null, arguments);
+}
+
+/*
+       usage:
+
+         server_call(func, callback, ...);
+
+       'func' is a function name to call on the server
+       any additional arguments are passed to func() on the server
+
+       The callback() function is called with the returned
+       object. 'callback' may be null.
+*/
+function server_call(func, callback) {
+       var args = new Array(arguments.length-2);
+       var i;
+       for (i=0;i<args.length;i++) {
+               args[i] = arguments[i+1];
+       }
+       vserver_call_url("@request.REQUEST_URI", func, callback, args);
+}
diff --git a/webapps/scripting/client/desktop.js b/webapps/scripting/client/desktop.js
new file mode 100644 (file)
index 0000000..9e1a342
--- /dev/null
@@ -0,0 +1,121 @@
+/*
+   Windows, tabs, and general widgetry for SWAT.
+
+   Copyright (C) Deryck Hodge 2005
+   released under the GNU GPL Version 2 or later
+*/
+
+/* Qooxdoo's browser sniffer doesn't distinguish IE version.
+We'll cover IE 6 for now, but these checks need to be
+revisited for fuller browser coverage. */
+var browser = QxClient().engine;
+
+// DocX/Y returns the width/height of the page in browser
+function docX()
+{
+       var x;
+       if (browser != "mshtml") {
+               x = window.innerWidth;
+       } else {
+               x = document.documentElement.clientWidth;
+       }
+       return x;
+}
+
+function docY()
+{
+       var y;
+       if (browser != "mshtml") {
+               y = window.innerHeight;
+       } else {
+               y = document.documentElement.clientHeight;
+       }
+       return y;
+}
+
+//  If given a number, sizeX/Y returns in pixels a percentage of the browser
+//  window. If given a Window object, sizeX/Y returns the size of that object. 
+function sizeX(s)
+{
+       var sX;
+
+       if (typeof(s) == 'number') {
+               sX = Math.floor(docX() * s);
+       } else {
+               sX = s.getMinWidth();
+       }
+
+       return sX;
+}
+
+function sizeY(s)
+{
+       var sY;
+       if (typeof(s) == 'number') {
+               sY = Math.floor(docY() * s);
+       } else {
+               sY = s.getMinHeight();
+       }
+
+       return sY;
+}
+
+function getPosX(win)
+{
+       var y = Math.floor( (docY() - sizeY(win)) * Math.random() );
+       return y;
+}
+
+function getPosY(win)
+{
+       var x = Math.floor( (docX() - sizeX(win)) * Math.random() );
+       return x;
+}
+
+function openIn(e)
+{
+       var blank = new Window("New Menu");
+       e.add(blank);
+       blank.setVisible(true);
+}
+       
+function Window(h, src, s)
+{
+       this.self = new QxWindow(h);
+
+       // Settings for all windows
+       if (s) {
+               this.self.setMinWidth(sizeX(s));
+               this.self.setMinHeight(sizeY(s));
+       }
+       this.self.setTop(getPosX(this.self));
+       this.self.setLeft(getPosY(this.self));
+
+       this.self.addEventListener("contextmenu", contextMenu);
+
+       return this.self;
+}
+
+function SmallWindow(h, src)
+{
+       this.self = new Window(h, src, .20);
+       return this.self;
+}
+
+function StandardWindow(h, src)
+{
+       this.self = new Window(h, src, .45);
+       return this.self;
+}
+
+function LargeWindow(h, src)
+{
+       this.self = new Window(h, src, .70);
+       return this.self;
+}
+
+Window.small = SmallWindow;
+Window.standard = StandardWindow;
+Window.large = LargeWindow;
+
+
diff --git a/webapps/scripting/client/encoder.js b/webapps/scripting/client/encoder.js
new file mode 100644 (file)
index 0000000..4aa4cc0
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+       client side js functions for encoding/decoding objects into linear strings
+
+       Copyright Andrew Tridgell 2005
+       released under the GNU GPL Version 2 or later
+*/
+/*
+       usage:
+
+         enc = encodeObject(obj);
+         obj = decodeObject(enc);
+
+       The encoded format of the object is a string that is safe to
+       use in URLs
+
+       Note that only data elements are encoded, not functions
+*/
+
+function count_members(o) {
+       var i, count = 0;
+       for (i in o) { 
+               count++;  
+       }
+       return count;
+}
+
+function encodeObject(o) {
+       var i, r = count_members(o) + ":";
+       for (i in o) {
+               var t = typeof(o[i]);
+               if (t == 'object') {
+                       r = r + "" + i + ":" + t + ":" + encodeObject(o[i]);
+               } else if (t == 'string') {
+                       var s = encodeURIComponent(o[i]).replace(/%/g,'#');
+                       r = r + "" + i + ":" + t + ":" + s + ":";
+               } else if (t == 'boolean' || t == 'number') {
+                       r = r + "" + i + ":" + t + ":" + o[i] + ":";
+               } else if (t == 'undefined' || t == 'null') {
+                       r = r + "" + i + ":" + t + ":";
+               } else if (t != 'function') {
+                       alert("Unable to encode type " + t);
+               }
+       }
+       return r;
+}
+
+function decodeObjectArray(a) {
+       var o = new Object();
+       var i, count = a[a.i]; a.i++;
+       for (i=0;i<count;i++) {
+               var name  = a[a.i]; a.i++;
+               var type  = a[a.i]; a.i++;
+               var value;
+               if (type == 'object') {
+                       o[name] = decodeObjectArray(a);
+               } else if (type == "string") {
+                       value = decodeURIComponent(a[a.i].replace(/#/g,'%')); a.i++;
+                       o[name] = value;
+               } else if (type == "boolean") {
+                       value = a[a.i]; a.i++;
+                       if (value == 'true') {
+                               o[name] = true;
+                       } else {
+                               o[name] = false;
+                       }
+               } else if (type == "undefined") {
+                       o[name] = undefined;
+               } else if (type == "null") {
+                       o[name] = null;
+               } else if (type == "number") {
+                       value = a[a.i]; a.i++;
+                       o[name] = value * 1;
+               } else {
+                       alert("Unable to delinearise type " + type);
+               }
+       }
+       return o;
+}
+
+function decodeObject(str) {
+       var a = str.split(':');
+       a.i = 0;
+       return decodeObjectArray(a);
+}
diff --git a/webapps/scripting/client/js_scripts.js b/webapps/scripting/client/js_scripts.js
new file mode 100644 (file)
index 0000000..1c6e580
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+   Beginnnigs of a script manager for SWAT.
+
+   Copyright (C) Deryck Hodge 2005
+   released under the GNU GPL Version 2 or later
+*/
+
+var head = document.getElementsByTagName('head')[0];
+var scripts = document.getElementsByTagName('script');
+
+function __has_js_script(file)
+{
+       var i;
+       for (i=0; i<scripts.length; i++) {
+               if (scripts[i].src.indexOf(file) > -1) {
+                       return true;
+               } else {
+                       return false;
+               }
+       }
+}
+
+function __get_js_script(file)
+{
+       var i;
+       for (i=0; i<scripts.length; i++) {
+               if (scripts[i].src.indexOf(file) > -1) {
+                       return scripts[i];
+               }
+       }
+}
+
+function __add_js_script(path)
+{
+       // Create a unique ID for this script
+       var srcID = new Date().getTime();
+
+       var script = document.createElement('script');
+       script.type = 'text/javascript';
+       script.id = srcID;
+
+       head.appendChild(script);
+
+       // IE works only with the path set after appending to the document
+       document.getElementById(srcID).src = path;
+}
+
+function __remove_js_script(path)
+{
+       var script = __get_js_script(path);
+       script.parentNode.removeChild(script);
+}
+
+document.js = new Object();
+document.js.scripts = scripts;
+document.js.hasScript = __has_js_script;
+document.js.getScript = __get_js_script;
+document.js.add = __add_js_script;
+document.js.remove = __remove_js_script;
+
diff --git a/webapps/scripting/client/regedit.js b/webapps/scripting/client/regedit.js
new file mode 100644 (file)
index 0000000..9175017
--- /dev/null
@@ -0,0 +1,160 @@
+/*
+       client side js functions for registry editing
+
+       Copyright Andrew Tridgell 2005
+       released under the GNU GPL Version 2 or later
+*/
+
+
+/*
+  callback from the key enumeration call
+*/
+function __folder_keys(fParent, list) 
+{
+       var i;
+       if (fParent.working == 1) {
+               fParent.working = 0;
+               fParent.removeAll();
+       }
+       for (i=0;i<list.length;i++) {
+               var fChild;
+               fChild = new QxTreeFolder(list[i]);
+               fParent.add(fChild);
+               fChild.binding = fParent.binding;
+               if (fParent.reg_path == '\\') {
+                       fChild.reg_path = list[i];
+               } else {
+                       fChild.reg_path = fParent.reg_path + '\\' + list[i];
+               }
+               fChild.working = 1;
+               fChild.add(new QxTreeFolder('Working ...'));
+               fChild.addEventListener("click", function() { 
+                       var el = this; __folder_click(el); 
+               });
+       }
+       fParent.setOpen(1);
+}
+
+/*
+  callback from the key enumeration call
+*/
+function __folder_values(fParent, list) 
+{
+       var i;
+       if (list.length == 0) {
+               return;
+       }
+       if (fParent.working == 1) {
+               fParent.working = 0;
+               fParent.removeAll();
+       }
+       for (i=0;i<list.length;i++) {
+               var fChild;
+               fChild = new QxTreeFile(list[i].name);
+               fChild.parent = fParent;
+               fChild.details = list[i];
+               fParent.add(fChild);
+       }
+       fParent.setOpen(1);
+}
+
+/*
+  called when someone clicks on a folder
+*/
+function __folder_click(node) 
+{
+       if (!node.populated) {
+               node.populated = true;
+               server_call_url("/scripting/server/regedit.esp", 'enum_keys', 
+                               function(list) { __folder_keys(node, list); }, 
+                               node.binding, node.reg_path);
+               server_call_url("/scripting/server/regedit.esp", 'enum_values', 
+                               function(list) { __folder_values(node, list); }, 
+                               node.binding, node.reg_path);
+       }
+}
+
+/* return a registry tree for the given server */
+function __registry_tree(binding) 
+{
+       var tree = new QxTree("registry: " + binding);
+       tree.binding = binding;
+       tree.reg_path = "\\";
+       tree.populated = false;
+       with(tree) {
+               setBackgroundColor(255);
+               setBorder(QxBorder.presets.inset);
+               setOverflow("scroll");
+               setStyleProperty("padding", "2px");
+               setWidth("50%");
+               setHeight("90%");
+               setTop("10%");
+       }
+       tree.addEventListener("click", function() { 
+               var el = this; __folder_click(el); 
+       });
+       return tree;
+}
+
+/*
+  the table of values
+*/
+function __values_table()
+{
+       var headings = new Array("Name", "Type", "Size", "Value");
+       var table = document.createElement('table');
+       table.border = "1";
+       var body = document.createElement('tbody');
+       table.appendChild(body);
+       var th = document.createElement('th');
+       for (var i=0;i<headings.length;i++) {
+               var td = document.createElement('td');
+               td.appendChild(document.createTextNode(headings[i]));
+               th.appendChild(td);
+       }
+       body.appendChild(th);
+       return table;
+}
+
+/*
+  create a registry editing widget and return it as a object
+*/
+function regedit_widget(binding) 
+{
+       var fieldSet = new QxFieldSet();
+
+       fieldSet.binding = binding;
+
+       with(fieldSet) {
+               setWidth("100%");
+               setHeight("100%");
+       };
+
+       var gl = new QxGridLayout("auto,auto,auto,auto,auto", "50%,50%");
+       gl.setEdge(0);
+       gl.setCellPaddingTop(3);
+       gl.setCellPaddingBottom(3);
+
+       var t = __registry_tree(fieldSet.binding);
+
+       function change_binding(e) {
+               fieldSet.binding = e.getNewValue();
+               srv_printf("changed binding to %s\\n", fieldSet.binding);
+               gl.remove(t);
+               t = __registry_tree(fieldSet.binding);
+               gl.add(t, { row : 2, col : 1 });
+       }
+
+       var b = new QxTextField(fieldSet.binding);
+       b.addEventListener("changeText", change_binding);
+
+       var values = new __values_table();
+
+       gl.add(b,      { row : 1, col : 1 });
+       gl.add(t,      { row : 2, col : 1 });
+//     gl.add(values, { row : 2, col : 2 });
+       
+       fieldSet.add(gl);
+
+       return fieldSet;
+};
diff --git a/webapps/scripting/client/status.js b/webapps/scripting/client/status.js
new file mode 100644 (file)
index 0000000..31ee31c
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+       server status library for SWAT
+
+       released under the GNU GPL Version 2 or later
+*/
+
+
+// Format for a server status table
+var s = [
+       { id : "server",
+         label : "Server",
+         content: "text",
+          defaultValue : "-",
+          width : 100
+       },
+
+       { id : "status",
+         label : "Status",
+         content: "text",
+         defaultValue : "-",
+         width: 100
+       }
+];
+
+function __load_status_table(info, container)
+{
+       var table = new QxListView(s);
+       var i;
+       for (i in info) {
+               table.addData( {server : i, status : info[i]} );
+       }
+       container.add(table);
+       container.setVisible(true);
+}
+
+function getServerStatus(container) 
+{
+       server_call_url("/scripting/server/status.esp", 'serverInfo',
+                               function(info) { __load_status_table(info, container); });
+}
diff --git a/webapps/scripting/common.js b/webapps/scripting/common.js
new file mode 100644 (file)
index 0000000..fe25287
--- /dev/null
@@ -0,0 +1,153 @@
+/*
+       js functions and code common to all pages
+*/
+
+/* define some global variables for this request */
+global.page = new Object();
+
+/* fill in some defaults */
+global.page.title = "Samba Web Administration Tool";
+
+libinclude("base.js");
+
+/* to cope with browsers that don't support cookies we append the sessionid
+   to the URI */
+global.SESSIONURI = "";
+if (request['COOKIE_SUPPORT'] != "True") {
+       global.SESSIONURI="?SwatSessionId=" + request['SESSION_ID'];
+}
+
+/*
+  possibly adjust a local URI to have the session id appended
+  used for browsers that don't support cookies
+*/
+function session_uri(uri) {
+       return uri + global.SESSIONURI;
+}
+
+/*
+  like printf, but to the web page
+*/
+function writef()
+{
+       write(vsprintf(arguments));
+}
+
+/*
+  like writef with a <br>
+*/
+function writefln()
+{
+       write(vsprintf(arguments));
+       write("<br/>\n");
+}
+
+
+/* if the browser was too dumb to set the HOST header, then
+   set it now */
+if (headers['HOST'] == undefined) {
+       headers['HOST'] = server['SERVER_HOST'] + ":" + server['SERVER_PORT'];
+}
+
+/*
+  show the page header. page types include "plain" and "column" 
+*/
+function page_header(pagetype, title, menu) {
+       global.page.pagetype = pagetype;
+       global.page.title = title;
+       global.page.menu = menu;
+       include("/scripting/header_" + pagetype + ".esp");
+}
+
+/*
+  show the page footer, getting the page type from page.pagetype
+  set in page_header()
+*/
+function page_footer() {
+       include("/scripting/footer_" + global.page.pagetype + ".esp");
+}
+
+
+/*
+  check if a uri is one of the 'always allowed' pages, even when not logged in
+  This allows the login page to use the same style sheets and images
+*/
+function always_allowed(uri) {
+       var str = string_init();
+
+        /* allow jsonrpc-based applications to do their own authentication */
+        var s = str.split('/', uri);
+        if (s[0] == "" && s[1] == 'apps') {
+                return true;
+        }
+
+       var s = str.split('.', uri);
+       if (s.length < 2) {
+               return false;
+       }
+
+       var ext = s[s.length-1];
+       var allowed = new Array("ico", "gif", "png","css", "js");
+       for (i in allowed) {
+               if (allowed[i] == ext) {
+                       return true;
+               }
+       }
+       return false;
+}
+
+/*
+  display a table element
+*/
+function table_element(i, o) {
+       write("<tr><td>" + i + "</td><td>");
+       if (typeof(o[i]) == "object") {
+               var j, first;
+               first = true;
+               for (j in o[i]) {
+                       if (first == false) {
+                               write("<br />");
+                       }
+                       write(o[i][j]);
+                       first = false;
+               }
+       } else {
+               write(o[i]);
+       }
+       write("</td></tr>\n");
+}
+
+/*
+  display a ejs object as a table. The header is optional
+*/
+function simple_table(v) {
+       if (v.length == 0) {
+               return;
+       }
+       write("<table class=\"data\">\n");
+       var r;
+       for (r in v) {
+               table_element(r, v);
+       }
+       write("</table>\n");
+}
+
+/*
+  display an array of objects, with the header for each element from the given 
+  attribute
+*/
+function multi_table(array, header) {
+       var i, n;
+       write("<table class=\"data\">\n");
+       for (i=0;i<array.length;i++) {
+               var r, v = array[i];
+               write('<tr><th colspan="2">' + v[header] + "</th></tr>\n");
+               for (r in v) {
+                       if (r != header) {
+                           table_element(r, v);
+                       }
+               }
+       }
+       write("</table>\n");
+}
+
diff --git a/webapps/scripting/footer_columns.esp b/webapps/scripting/footer_columns.esp
new file mode 100644 (file)
index 0000000..7b5baaf
--- /dev/null
@@ -0,0 +1,7 @@
+<% 
+   /* footer for columns page type */
+%>
+</div>
+</div>
+</body>
+</html>
diff --git a/webapps/scripting/footer_desktop.esp b/webapps/scripting/footer_desktop.esp
new file mode 100644 (file)
index 0000000..5e563da
--- /dev/null
@@ -0,0 +1,6 @@
+<% 
+   /* footer for desktop page type */
+%>
+
+</body>
+</html>
diff --git a/webapps/scripting/footer_plain.esp b/webapps/scripting/footer_plain.esp
new file mode 100644 (file)
index 0000000..31ef8dd
--- /dev/null
@@ -0,0 +1,7 @@
+<% 
+   /* footer for plain page type */
+%>
+</div>
+</div>
+</body>
+</html>
diff --git a/webapps/scripting/forms.js b/webapps/scripting/forms.js
new file mode 100644 (file)
index 0000000..2de9e34
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+       js functions for forms
+*/
+
+
+/*
+  display a simple form from a ejs Form object
+  caller should fill in
+    f.name          = form name
+    f.action        = action to be taken on submit (optional, defaults to current page)
+    f.class         = css class (optional, defaults to 'form')
+    f.submit        = an array of submit labels
+    f.add(name, label, [type], [value])  =
+       Add another element
+    f.element[i].label = element label
+    f.element[i].name  = element name (defaults to label)
+    f.element[i].type  = element type (defaults to text)
+    f.element[i].value = current value (optional, defaults to "")
+ */
+function form_display() {
+       var f = this;
+       var i, size = 20;
+       write('<form name="' + f.name +
+             '" method="post" action="' + f.action + 
+             '" class="' + f.class + '">\n');
+       if (f.element.length > 0) {
+               write("<table>\n");
+       }
+       for (i in f.element) {
+               var e = f.element[i];
+               if (e.name == undefined) {
+                       e.name = e.label;
+               }
+               if (e.value == undefined) {
+                       e.value = "";
+               }
+               if (strlen(e.value) > size) {
+                       size = strlen(e.value) + 4;
+               }
+       }
+       for (i in f.element) {
+               var e = f.element[i];
+               write("<tr>");
+               write("<td>" + e.label + "</td>");
+               if (e.type == "select") {
+                       write('<td><select name="' + e.name + '">\n');
+                       for (s in e.list) {
+                               if (e.value == e.list[s]) {
+                                       write('<option selected=selected>' + e.list[s] + '</option>\n');
+                               } else {
+                                       write('<option>' + e.list[s] + '</option>\n');
+                               }
+                       }
+                       write('</select></td>\n');
+               } else {
+                       var sizestr = "";
+                       if (e.type == "text" || e.type == "password") {
+                               sizestr = sprintf('size="%d"', size);
+                       }
+                       writef('<td><input name="%s" type="%s" value="%s" %s /></td>\n',
+                              e.name, e.type, e.value, sizestr);
+               }
+               write("</tr>");
+       }
+       if (f.element.length > 0) {
+               write("</table>\n");
+       }
+       for (i in f.submit) {
+               write('<input name="submit" type="submit" value="' + f.submit[i] + '" />\n');
+       }
+       write("</form>\n");
+}
+
+function __addMethod(name, label)
+{
+       var f = this;
+       var i = f.element.length;
+       f.element[i] = new Object();
+       f.element[i].name = name;
+       f.element[i].label = label;
+       f.element[i].type = "text";
+       f.element[i].value = "";
+       if (arguments.length > 2) {
+               f.element[i].type = arguments[2];
+       }
+       if (arguments.length > 3) {
+               f.element[i].value = arguments[3];
+       }
+}
+
+/*
+  create a Form object with the defaults filled in, ready for display()
+ */
+function FormObj(name, num_elements, num_submits)
+{
+       var f = new Object();
+       f.name = name;
+       f.element = new Array(num_elements);
+       f.submit =  new Array(num_submits);
+       f.action = session_uri(request.REQUEST_URI);
+       f.class = "defaultform";
+       f.add = __addMethod;
+       for (i in f.element) {
+               f.element[i] = new Object();
+               f.element[i].type = "text";
+               f.element[i].value = "";
+       }
+       f.display = form_display;
+
+       return f;
+}
+
diff --git a/webapps/scripting/general_calls.esp b/webapps/scripting/general_calls.esp
new file mode 100644 (file)
index 0000000..f17c432
--- /dev/null
@@ -0,0 +1,25 @@
+<%
+/*
+       used for general purpose calls
+*/
+libinclude("server_call.js");
+
+/* register a call for clients to make */
+var call = servCallObj();
+
+/*
+  a remote printf, for displaying stuff on smbd stdout
+*/
+function srv_printf()
+{
+       var s = string_init();
+       print(s.vsprintf(arguments));
+       return undefined;
+}
+
+/* add some basic calls */
+call.add('srv_printf', srv_printf);
+
+/* run the function that was asked for */
+call.run();
+%>
diff --git a/webapps/scripting/header_columns.esp b/webapps/scripting/header_columns.esp
new file mode 100644 (file)
index 0000000..2fd57c4
--- /dev/null
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+
+<script type="text/javascript" src="/style/qooxdoo/widgets/qooxdoo.js"></script>
+
+  <title>@@global.page.title</title>
+
+<link rel="stylesheet" href="/style/common.css" type="text/css" media="all" />
+<link rel="stylesheet" href="/style/columns.css" type="text/css" media="all" />
+<link rel="stylesheet" href="/style/swat.css" type="text/css" media="all" />
+<link rel="stylesheet" href="/style/qooxdoo/layouts/application.css" type="text/css" media="all" />
+<link rel="shortcut icon" href="/images/favicon.ico" />
+
+<!--[if gte IE 5.5]>
+       <style type="text/css">
+       /*<![CDATA[*/
+       .logo_hack {
+filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/logo.png',sizingMethod='scale');
+       }
+       /*]]>*/ 
+       </style>
+<![endif]-->
+
+<!--[if lte IE 5]>
+       <style type="text/css">
+       /*<![CDATA[*/
+       .logo_hack {
+       background-image:url(/images/logo.gif);
+       background-position:center;
+       background-repeat:no-repeat;
+       top:23.5px;
+       left:-10px;
+       }
+       /*]]>*/
+        </style>
+<![endif]-->
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="Content-Language" content="en-us" />
+
+</head>
+
+
+<body>
+
+<div id="banner">
+  <div class="stripe"></div>
+  <div class="logout">
+  <b>logged in as @@session.authinfo.username</b>
+  <form method="post" action="/logout.esp@@global.SESSIONURI">
+  <input type="submit" value="Logout" />
+  </form>
+  </div>
+</div>
+
+<div id="logo">
+  <div class="logo_hack"><a href="/@@global.SESSIONURI"><img src="/images/linkpad.gif" alt="SWAT" /></a></div>
+</div>
+
+<div class="slogan">
+  <h4>Samba Web Administration Tool</h4>
+</div>
+
+<div id="nav">
+     <% 
+       include("/menu.js");
+        if (form['menu']) {
+               global.page.menu = form['menu'];
+       }
+        swat_menus[global.page.menu].display();
+        if (global.page.menu != "main") {
+               write('<a href="/">Main Menu</a>');
+       }
+     %>
+</div>
+
+<div id="links">
+     <% swat_menus.docs.display(); %>
+</div>
+
+<div id="content">
+  <div id="middle" class="center">
diff --git a/webapps/scripting/header_desktop.esp b/webapps/scripting/header_desktop.esp
new file mode 100644 (file)
index 0000000..9d02ab3
--- /dev/null
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="Content-Language" content="en-us" />
+
+  <title>@@global.page.title</title>
+
+<link rel="stylesheet" href="/style/qooxdoo/layouts/application.css" type="text/css" media="all" />
+<link rel="shortcut icon" href="/images/favicon.ico" />
+
+<script type="text/javascript" src="/style/qooxdoo/widgets/qooxdoo.js"></script>
+
+<style type="text/css" media="screen">
+body {
+  background-color:#3A6EA5;
+}
+</style>
+
+</head>
+
+<body>
+
diff --git a/webapps/scripting/header_plain.esp b/webapps/scripting/header_plain.esp
new file mode 100644 (file)
index 0000000..8dd3789
--- /dev/null
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+
+  <title>@@global.page.title</title>
+
+<link rel="stylesheet" href="/style/common.css" type="text/css" media="all" />
+<link rel="stylesheet" href="/style/columns.css" type="text/css" media="all" />
+<link rel="stylesheet" href="/style/swat.css" type="text/css" media="all" />
+<link rel="shortcut icon" href="/images/favicon.ico" />
+
+<!--[if gte IE 5.5]>
+       <style type="text/css">
+       /*<![CDATA[*/
+       .logo_hack {
+filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/logo.png',sizingMethod='scale');
+       }
+       /*]]>*/ 
+       </style>
+<![endif]-->
+
+<!--[if lte IE 5]>
+       <style type="text/css">
+       /*<![CDATA[*/
+       .logo_hack {
+       background-image:url(/images/logo.gif);
+       background-position:center;
+       background-repeat:no-repeat;
+       top:23.5px;
+       left:-10px;
+       }
+       /*]]>*/
+        </style>
+<![endif]-->
+
+</head>
+
+
+<body>
+
+<div id="banner">
+  <div class="stripe"></div>
+</div>
+
+<div id="logo">
+  <div class="logo_hack"><a href="/"><img src="/images/linkpad.gif" alt="SWAT" /></a></div>
+</div>
+
+<div class="slogan">
+  <h4>Samba Web Administration Tool</h4>
+</div>
+
+<div id="content">
+  <div class="center">
diff --git a/webapps/scripting/menus.js b/webapps/scripting/menus.js
new file mode 100644 (file)
index 0000000..ddd97c4
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+       menu object for SWAT
+*/
+
+/*
+  display a menu object. Currently only the "simple", "vertical" menu style
+  is supported
+*/
+function menu_display() {
+       var i, m = this;
+       assert(m.style == "simple" && m.orientation == "vertical");
+       write('<div class="' + m.class + '">\n');
+       write("<i>" + m.name + "</i><br /><ul>\n");
+       for (i = 0; i < m.element.length; i++) {
+               var e = m.element[i];
+               write("<li><a href=\"" + e.link + "\">" + e.label + "</a></li>\n");
+       }
+       write("</ul></div>\n");
+}
+
+
+/*
+  create a menu object with the defaults filled in, ready for display_menu()
+ */
+function MenuObj(name, num_elements)
+{
+       var i, o = new Object();
+       o.name = name;
+       o.class = "menu";
+       o.style = "simple";
+       o.orientation = "vertical"
+       o.element = new Array(num_elements);
+       for (i in o.element) {
+               o.element[i] = new Object();
+       }
+       o.display = menu_display;
+       return o;
+}
+
+/*
+  return a menu object created using a title, followed by
+  a set of label/link pairs
+*/
+function simple_menu() {
+       var i, m = MenuObj(arguments[0], (arguments.length-1)/2);
+       for (i=0;i<m.element.length;i++) {
+               var ndx = i*2;
+               m.element[i].label = arguments[ndx+1];
+               m.element[i].link = arguments[ndx+2];
+       }
+       return m;
+}
+
diff --git a/webapps/scripting/preauth.esp b/webapps/scripting/preauth.esp
new file mode 100644 (file)
index 0000000..489f6b5
--- /dev/null
@@ -0,0 +1,17 @@
+<%
+include("/scripting/common.js");
+
+/* this script is called on every web request. If it produces any
+   output at all then that output is returned and the requested page
+   is not given or processed.
+*/ 
+if (server['SERVER_PROTOCOL'] == "http" &&
+    server['TLS_SUPPORT'] == "True") {
+       write("redirect to https");
+        redirect("https://" + headers['HOST'] + request['REQUEST_URI']);
+} else if (always_allowed(request['REQUEST_URI']) != true && 
+          session['AUTHENTICATED'] == undefined) {
+       /* present the login page */
+       include("/login.esp");
+}
+%>
diff --git a/webapps/scripting/server/regedit.esp b/webapps/scripting/server/regedit.esp
new file mode 100644 (file)
index 0000000..58ba695
--- /dev/null
@@ -0,0 +1,51 @@
+<%
+/* 
+   server side AJAJ functions for registry editing. These go along
+   with scripting/client/regedit.js 
+*/
+libinclude("base.js");
+libinclude("winreg.js");
+libinclude("server_call.js");
+
+/* 
+   server side call to return a listing of keys in a winreg path
+*/
+function enum_keys(binding, path) {
+       printf("enum_keys(%s, %s)\n", binding, path);
+       var reg = winregObj();
+
+       reg.credentials = session.authinfo.credentials;
+
+       var status = reg.connect(binding);
+       if (status.is_ok != true) {
+               printVars(status);
+               return undefined;
+       }
+       return reg.enum_path(path);
+}
+
+/* 
+   server side call to return a listing of values in a winreg path
+*/
+function enum_values(binding, path) {
+       printf("enum_values(%s, %s)\n", binding, path);
+       var reg = winregObj();
+
+       reg.credentials = session.authinfo.credentials;
+
+       var status = reg.connect(binding);
+       if (status.is_ok != true) {
+               printVars(status);
+               return undefined;
+       }
+       return reg.enum_values(path);
+}
+
+/* register a call for clients to make */
+var call = servCallObj();
+call.add('enum_keys', enum_keys);
+call.add('enum_values', enum_values);
+
+/* run the function that was asked for */
+call.run();
+%>
diff --git a/webapps/scripting/server/status.esp b/webapps/scripting/server/status.esp
new file mode 100644 (file)
index 0000000..8ca2067
--- /dev/null
@@ -0,0 +1,27 @@
+<%
+
+libinclude("management.js");
+libinclude("server_call.js");
+
+function serverInfo()
+{
+       var info = new Object();
+       info["NBT Server"]      = server_status("nbt");
+       info["WINS Server"]     = server_status("wins");
+       info["CLDAP Server"]    = server_status("cldap");
+       info["Kerberos Server"] = server_status("kdc");
+       info["SMB Server"]      = stream_server_status("smb");
+       info["LDAP Server"]     = stream_server_status("ldap");
+       info["RPC Server"]      = stream_server_status("rpc");
+
+       return info;
+}
+
+/* register a call for clients to make */
+var call = servCallObj();
+call.add('serverInfo', serverInfo);
+
+/* run the function that was asked for */
+call.run();
+
+%>
diff --git a/webapps/scripting/test.ejs b/webapps/scripting/test.ejs
new file mode 100644 (file)
index 0000000..8e7047f
--- /dev/null
@@ -0,0 +1,10 @@
+
+/*
+       some test ejs code 
+*/
+function showArray(name, array) {
+    write("<h3>Array: " + name + "</h3>\n");
+    for (v in array) {
+          write(name + "[" + v + "]=" + array[v] + "<br/>\n");
+    }
+}
diff --git a/webapps/scripting/test.esp b/webapps/scripting/test.esp
new file mode 100644 (file)
index 0000000..614a424
--- /dev/null
@@ -0,0 +1,6 @@
+<h3>A esp include file</h3>
+<%
+       function testfn(test) {
+                return "the argument was " + test;
+       }
+%>
diff --git a/webapps/style/columns.css b/webapps/style/columns.css
new file mode 100644 (file)
index 0000000..e78da9b
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+       columns.css
+       Copyright (C) 2004-2005 Deryck Hodge <deryck@samba.org>
+
+       Creates a puesdo-three-column view.
+
+       You may freely use and modify the styles here, but if you 
+       intend to recreate the samba.org look exactly, please ask
+       permission first.
+*/
+
+
+/* Middle content column
+***********************************************************/
+#content {
+       position:absolute;
+       top:100px;
+       margin:0 20% 0 175px;
+       padding-top:30px;
+       padding-left:35px;
+       padding-bottom:50px;
+       padding-right:15px;
+       background-color:#FFF;
+       border-left:1px solid #FFFF64;
+       border-right:1px solid #FFFF64;
+}
+* html #content {
+       width:51%;
+       margin-right:0;
+}
+#content ul {
+       list-style-type:none;
+}
+
+
+/* Misc
+************************************************************/
+.headline {
+        margin-left:20px;
+        font-style:italic;
+}
+.plugs {
+       font-style:italic;
+       text-align:center;
+       border-top:2px groove #3878CD;
+       border-bottom:2px groove #3878CD;
+       padding:10px;
+       margin-top:100px;
+}
+.plugs p {
+       padding:30px;
+}
+.plugs img {
+       float:left;
+}
+.request {
+       margin-top:50px;
+       font-style:italic;
+       font-size:small;
+}
+#noswp img {
+    border:1px solid #3868CD;
+    width:370px;
+    height:90px;
+}
+#noswp a:hover {
+    background-color:transparent;
+}
+#noswp {
+    width:auto;
+    text-align:center;
+    margin:10px 0 25px 0;
+}
diff --git a/webapps/style/common.css b/webapps/style/common.css
new file mode 100644 (file)
index 0000000..545ffe9
--- /dev/null
@@ -0,0 +1,266 @@
+/* 
+       common.css
+       Copyright (C) 2004-2005 Deryck Hodge <deryck@samba.org>
+
+       Basic styles common to all of samba.org, including VirtualHosts
+       bugzilla.samba.org, build.samba.org, and news.samba.org.
+
+       You may freely use and modify the styles here, but if you 
+       intend to recreate the samba.org look exactly, please ask
+       permission first.
+*/
+
+
+/* Base elements
+***********************************************************/
+body {
+       background:url(/images/stripes.png) repeat-x 0 0;
+       margin:0;
+       padding:0;
+       background-color:#E5E9F5;
+       font-family:Lucidasans, Helvetica, Verdana, sans-serif;
+       font-size:medium;
+       color:#000;
+}
+body#news  {
+       background:none;
+       background-color:#FFF;
+}
+blockquote {                           
+       margin:35px;                    
+       padding:15px;                   
+       border-left:2px groove #CCC;
+       border-top:2px groove #CCC;
+}
+img {
+       border:0;
+}
+
+
+
+/* Headings
+***********************************************************/
+h1 {
+       font-size:x-large;
+}
+h2 {
+       text-align:left;
+       color:#FFFF64;
+       font-size:large;
+       background-color:#3878CD;
+       margin-top:60px;
+       margin-bottom:15px;
+       padding:2px;
+       padding-left:5px;
+}
+h3 {
+       font-size:medium;
+}
+h5 {
+       font-size:small;
+       text-align:right;
+       display:inline;
+}
+* html h5 {
+       padding-right:4px;
+}
+h6 {
+       font-size:small;
+       text-align:right;
+       text-align:right;
+}
+h6 a {
+       margin-right:3px;
+}
+
+
+/* Lists
+***********************************************************/
+ol li {
+       margin-bottom:12px;
+}
+
+
+/* Tables
+***********************************************************/
+table.real thead { 
+        background-color: #E5E9F5;
+}
+table.real th,
+table.real td {
+        border: 1px solid #3878CD;
+        padding: 2px;
+}
+table.real { 
+        border: 2px solid #3878CD;
+        background-color: #F5F8FF;
+}
+a:link:hover {
+       color:#CC0033;
+       background-color:#FFFF64;
+}
+
+
+/* Header (yellow and blue stripes)
+***********************************************************/
+#banner {
+       position:absolute;
+       top:0;
+       left:0;
+       height:95px;
+       width:100%;
+       padding-top:4px;
+       z-index:1;
+}
+.srch {
+       text-align:right;
+  margin:0 5px 0 0;
+}
+.srch form {
+       display:inline;
+}
+
+
+/* Slogan ("Opening windows to a wider world")
+***********************************************************/
+.slogan {
+       position:absolute;
+       left:187px;
+       z-index:1;
+}
+html>body .slogan {    /**** Opera needs its own rule *********/
+       top:100px;
+}
+:root .slogan {                /**** Undo the Opera rule for all other browsers ****/
+       top:80px;
+}
+* html .slogan {       /** Then, give IE 5/6 its own rule ****** */
+       top:100px;
+}
+
+
+/* Logo (with hacks for PNG transparency across browsers)
+***********************************************************/
+#logo>.logo_hack {
+       background-image:url(/images/logo.png);
+       background-position:center;
+       background-repeat:no-repeat;
+}
+.logo_hack {
+       position:absolute;
+       top:25px;
+       left:0;
+       width:250px;
+       height:119px;
+       padding:0;
+       margin:0;
+       z-index:1;
+}
+.logo_hack a:hover {
+       background:transparent;
+}
+
+
+/* Nav menu
+***********************************************************/
+#nav {
+       position:absolute;
+       top:152px;
+       left:20px;
+       width:180px;
+       background-color:#F5F8FF;
+       border:2px groove #3878CD;
+       padding:0;
+       padding-bottom:5px;
+       margin:0;
+       z-index:1;
+}
+#nav ul {
+       list-style-type:none;
+       text-align:center;
+       padding:0;
+       margin:0;
+}
+#nav a,
+#nav a:link,
+#nav a:visited {
+       display:block;
+       height:20px;
+       font-size:small;
+       color:#2B5C9F;
+}
+#nav a:hover {
+       color:#FFF;
+       background-color:#3878CD;
+}
+#nav a:active {
+       color:#FFFF64;
+       background-color:#3878CD;
+       font-size:14px;
+}
+#nav img {
+       padding:0;
+       margin:0;
+       width:180px;
+       height:30px;
+}
+
+
+/* links menu
+***********************************************************/
+#links {
+       position:absolute;
+       top:152px;
+       left:81%;
+       width:180px;
+       padding:0;
+       width:18%;
+       background-color:#F5F8FF;
+       border:2px groove #3878CD;
+       padding:0;
+       padding-bottom:5px;
+       margin:0;
+       z-index:1;
+}
+#links ul {
+       list-style-type:none;
+       text-align:center;
+       padding:0;
+       margin:0;
+}
+#links a,
+#links a:link,
+#links a:visited {
+       display:block;
+       height:20px;
+       font-size:small;
+       color:#2B5C9F;
+}
+#links a:hover {
+       color:#FFF;
+       background-color:#3878CD;
+}
+#links a:active {
+       color:#FFFF64;
+       background-color:#3878CD;
+       font-size:14px;
+}
+#links img {
+       padding:0;
+       margin:0;
+       width:180px;
+       height:30px;
+}
+
+
+/* Text and alignment formats
+***********************************************************/
+.punch {
+       font-weight:bold;
+}
+.tilt {
+       font-style:italic;
+}
+.colophon {
+       margin-left:20px;
+}
diff --git a/webapps/style/swat.css b/webapps/style/swat.css
new file mode 100644 (file)
index 0000000..c41e4ea
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+       swat.css
+       
+       Styles added to the samba.org stylesheets 
+       specifically for SWAT.
+*/
+
+
+/* Forms
+***********************************************************/
+.logout {
+       text-align:right;
+}
+.logout form {
+       display:inline;
+}
+
+
+/* Tables
+***********************************************************/
+table.data {
+          border: 2px;
+}
+table.data th {
+       margin-top:20px;
+       text-align:left;
+        background-color: #F5C915;
+}
+table.data tr {
+        background-color: #E5C995;
+       text-align:left;
+}
+
+/* Temp fix for content sections that don't span the window.
+   This is not cross-browser and won't be the final way I handle
+   this, but I can't stand looking at small boxes while I work. :-) */
+#content {
+       min-width:55%;
+       min-height:800px;
+} 
diff --git a/webapps/style/wide.css b/webapps/style/wide.css
new file mode 100644 (file)
index 0000000..0107b33
--- /dev/null
@@ -0,0 +1,113 @@
+/*
+       wide.css
+       Copyright (C) 2004-2005 Deryck Hodge <deryck@samba.org>
+
+       An alternate two-column "wide" style for those pages
+       with lots and lots of text (download, devel, etc.)
+
+       You may freely use and modify the styles here, but if you 
+       intend to recreate the samba.org look exactly, please ask
+       permission first.
+*/
+
+
+/* Primary content section 
+***********************************************************/
+#content {
+       position:absolute;
+       top:100px;
+       clear:left;
+       margin:0 1% 0 175px;
+       padding-top:30px;
+       padding-left:35px;
+       padding-bottom:50px;
+       padding-right:15px;
+       background-color:#FFF;
+       border-left:1px solid #FFFF64;
+       border-right:1px solid #FFFF64;
+}
+* html #content {
+       width:70%;
+}
+#content h4 {
+       font-weight:bold;
+       margin:50px 10px 15px 0;
+}
+pre {
+    margin:15px 0 30px 5px;
+}    
+
+
+/* Team section
+***********************************************************/
+.teampic {
+       text-align:center;
+}
+.teampic img {
+       width:431px;
+       height:300px;
+}
+
+
+/* Release history/Release notes
+***********************************************************/
+.notes {
+       position:absolute;
+       top:265px;
+       left:0;
+}
+.notes h6 {
+    text-align:left;
+    margin:10px 5px;
+}
+.notes ul {
+       list-style-type:none;
+       text-align:left;
+       padding-left:12px;
+       margin:0 0 0 10px;
+       font-size:10px;
+}
+.intro {
+       margin-top:30px;
+}
+.headline {
+       margin-left:20px;
+       font-style:italic;
+}
+.latest ul {
+       list-style-type:none;
+       margin-left:40px;
+}
+
+
+/* Support providers pages
+***********************************************************/
+#countries {
+       float:left;
+       margin:240px 0 0 5px;
+       padding:0;
+       background-color:#E5E9F5;
+}
+#countries ul {
+       list-style-type:none;
+}
+#countries a {
+       font-size:small;
+}
+#countries h4 {
+       margin-top:10px;
+       margin-left:1px;
+       font-size:small;
+}
+.disclaimer {
+       margin:30px;
+       font-style:italic;
+}
+.info {
+       margin:75px 15px 15px 15px;
+       padding:10px;
+       font-size:small;
+       border-top:1px dotted #3878CD;
+       border-bottom:1px dotted #3878CD;
+}
+
diff --git a/webapps/swat/Makefile b/webapps/swat/Makefile
new file mode 100644 (file)
index 0000000..bf8af85
--- /dev/null
@@ -0,0 +1,247 @@
+###################################################################################
+# PUBLIC VARIABLES
+###################################################################################
+
+QOOXDOO = ../qooxdoo-0.6.3-sdk
+SCRIPTNAME = swat.js
+APPCLASS = swat.main.Main
+INCLUDEALL = false
+OPTIMIZESTRINGS = false
+OPTIMIZEVARIABLES = false
+SOURCELOADER=
+NICE=10
+LOCALINSTALLDIR = /usr/local/samba/share/swat/apps/swat
+
+
+###################################################################################
+# PRIVATE VARIABLES
+###################################################################################
+
+FRONTEND = $(QOOXDOO)/frontend
+FRAMEWORK = $(FRONTEND)/framework
+API = $(FRONTEND)/api
+CACHE = $(FRAMEWORK)/.cache
+GENERATOR = $(FRAMEWORK)/tool/generator.py
+
+
+ifeq ($(INCLUDEALL),false)
+  INCLUDE = --include $(APPCLASS)
+else
+  INCLUDE =
+endif
+
+ifeq ($(OPTIMIZESTRINGS),true)
+  OPTIMIZESTR = --optimize-strings
+else
+  OPTIMIZESTR =
+endif
+
+ifeq ($(OPTIMIZEVARIABLES),true)
+  OPTIMIZEVAR = --optimize-variables
+else
+  OPTIMIZEVAR =
+endif
+
+ifneq ($(SOURCELOADER),)
+  SOURCELDR = --source-loader-type $(SOURCELOADER)
+else
+  SOURCELDR =
+endif
+
+
+###################################################################################
+# DEFAULT TARGET
+###################################################################################
+
+all: build
+
+
+
+###################################################################################
+# COMMON TARGETS
+###################################################################################
+
+source: info-source \
+       generate-script-source \
+       generate-api-data
+
+build: info-build \
+       generate-script-build \
+       generate-api-data \
+       copy-build-files \
+       fix-build-rights
+
+api: generate-api-build generate-api-data
+       @echo
+       @echo "  CREATE COPY OF HTML FILE"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Copying file..."
+       @cp -f $(API)/source/index.html api/index.html
+
+pretty: generate-pretty
+fix: generate-fix
+
+
+
+###################################################################################
+# CLEANUP TARGETS
+###################################################################################
+
+clean:
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @rm -f source/script/$(SCRIPTNAME) build/script/$(SCRIPTNAME)
+
+realclean: clean
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES (REAL)"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @nice -n $(NICE) rm -rf build
+
+distclean: realclean
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES (DIST)"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @nice -n $(NICE) find . -name "*~" -o -name "*.bak" -o -name "*.old" | xargs rm -rf
+       @nice -n $(NICE) rm -rf $(CACHE)
+
+
+
+###################################################################################
+# GENERATOR TARGETS
+###################################################################################
+
+generate-script-source:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --source-script-path ../$(FRAMEWORK)/source/class \
+         --script-input $(API)/source/class \
+         --source-script-path ../$(API)/source/class \
+         --script-input source/class \
+         --source-script-path class \
+         --generate-source-script $(SOURCELDR) \
+         $(INCLUDE) \
+         --source-script-file source/script/$(SCRIPTNAME) \
+         --define-runtime-setting qx.manager.object.AliasManager.resourceUri:../$(FRAMEWORK)/source/resource \
+         --cache-directory $(CACHE) \
+         --add-new-lines
+
+#
+# djl: --script-input begins a set for which --resource-input and
+#      --resource-output apply.  Since there is a --resource-input and a
+#      --resource-output defined for one set, it must be defined for each set
+#
+generate-script-build:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --resource-input $(FRAMEWORK)/source/resource \
+         --resource-output build/resource \
+         --script-input $(API)/source/class \
+         --resource-input $(API)/source/resource \
+         --resource-output build/resource \
+         --script-input source/class \
+         --resource-input source/resource \
+         --resource-output build/resource \
+         --generate-compiled-script \
+         $(INCLUDE) $(OPTIMIZESTR) $(OPTIMIZEVAR) \
+         --compiled-script-file build/script/$(SCRIPTNAME) \
+         --copy-resources \
+         --define-runtime-setting qx.manager.object.AliasManager.resourceUri:./resource \
+         --cache-directory $(CACHE) \
+         --add-new-lines
+
+generate-api-build:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --resource-input $(FRAMEWORK)/source/resource \
+         --resource-output api/resource/qooxdoo \
+         --script-input $(API)/source/class \
+         --resource-input $(API)/source/resource \
+         --resource-output api/resource \
+         --include api \
+         $(OPTIMIZESTR) $(OPTIMIZEVAR) \
+         --generate-compiled-script \
+         --compiled-script-file api/script/api.js \
+         --define-runtime-setting qx.manager.object.AliasManager.resourceUri:resource/qooxdoo \
+         --define-runtime-setting api.Viewer.title:Swat \
+         --copy-resources \
+         --cache-directory $(CACHE)
+
+generate-api-data:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --script-input $(API)/source/class \
+         --script-input source/class \
+         --generate-api-documentation \
+         --api-documentation-json-file build/script/data.js \
+         --cache-directory $(CACHE)
+
+generate-pretty:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --script-input $(FRAMEWORK)/source/class \
+         --include-without-dependencies api.* \
+         --pretty-print \
+         --cache-directory $(CACHE)
+
+generate-fix:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --script-input $(FRAMEWORK)/source/class \
+         --include-without-dependencies api.* \
+         --fix-source \
+         --cache-directory $(CACHE)
+
+
+
+###################################################################################
+# ADDITIONAL TARGETS
+###################################################################################
+
+copy-build-files:
+       @echo
+       @echo "  CREATE COPY OF HTML FILE"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Copying file..."
+       @cp -f source/index.html build/index.html
+
+fix-build-rights:
+       @echo
+       @echo "  FIX RIGHTS ON BUILD FILES"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Fixing file rights..."
+       @nice -n $(NICE) find build -type d | xargs chmod a+rx
+       @nice -n $(NICE) find build -type f | xargs chmod a+r
+
+
+
+
+
+###################################################################################
+# INFO TARGETS
+###################################################################################
+
+info-build:
+       @echo "****************************************************************************"
+       @echo "  GENERATING SWAT WEB APPLICATION BUILD"
+       @echo "****************************************************************************"
+
+info-source:
+       @echo "****************************************************************************"
+       @echo "  GENERATING SWAT WEB APPLICATION SOURCE"
+       @echo "****************************************************************************"
+
+###################################################################################
+# INSTALL TARGETS (for developer use only)
+###################################################################################
+
+install:       
+       @echo "****************************************************************************"
+       @echo "  INSTALLING SWAT"
+       @echo "****************************************************************************"
+       @echo "  * Installing swat files..."
+       @rsync -av --exclude=crystalsvg --delete build/ $(LOCALINSTALLDIR)
diff --git a/webapps/swat/source/.ignore b/webapps/swat/source/.ignore
new file mode 100644 (file)
index 0000000..84f7e31
--- /dev/null
@@ -0,0 +1 @@
+script
diff --git a/webapps/swat/source/class/swat/main/Gui.js b/webapps/swat/source/class/swat/main/Gui.js
new file mode 100644 (file)
index 0000000..8d18f5f
--- /dev/null
@@ -0,0 +1,205 @@
+/*
+ * Copyright:
+ *   (C) 2006 by Derrell Lipman
+ *       All rights reserved
+ *
+ * License:
+ *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
+ */
+
+/**
+ * The graphical user interface for the main menu
+ */
+qx.OO.defineClass("swat.main.Gui");
+
+qx.Class.currentCanvas = null;
+
+qx.Class.buildGui = function(moduleList)
+{
+  var o;
+
+  // Header colors
+  var topColor = new qx.renderer.color.Color("#ffff64");
+  var bottomColor = new qx.renderer.color.Color("#3878cd");
+
+  // Create the yellow bar at the top
+  o = new qx.ui.basic.Terminator();
+  o.set({
+            top: 0,
+            left: 0,
+            right: 0,
+            height: 40
+        });
+  o.setBackgroundColor(topColor);
+  o.addToDocument();
+
+  // Create the tag line
+  var title = new qx.ui.basic.Label("Samba Web Administration Tool");
+  title.set({
+            top: 12,
+            left: 20
+        });
+  title.setBackgroundColor(topColor);
+  title.setFont("bold");
+  title.addToDocument();
+
+  // Create a small black separator between the yellow and blue bars
+  o = new qx.ui.basic.Terminator();
+  o.set({
+            top: 40,
+            left: 0,
+            right: 0,
+            height: 1
+        });
+  o.setBackgroundColor("black");
+  o.addToDocument();
+
+  // Create the yellow bar at the top
+  o = new qx.ui.basic.Terminator();
+  o.set({
+            top: 41,
+            left: 0,
+            right: 0,
+            height: 60
+        });
+  o.setBackgroundColor(bottomColor);
+  o.addToDocument();
+
+  // Create the "Samba" image
+  o = new qx.ui.basic.Image("../../../images/logo.png");
+  o.set({
+            top: 16,
+            right: 20
+        });
+  o.setZIndex(100000000);
+  o.addToDocument();
+
+  // Create a menu bar
+  var menubar = new qx.ui.toolbar.ToolBar();
+  menubar.set({
+                  top: 100,
+                  height: 20,
+                  left: 0,
+                  right: 0
+              });
+  menubar.addToDocument();
+      
+  // Create a menu item for selecting the requested module 
+  var menubutton = new qx.ui.toolbar.MenuButton("Modules");
+  menubar.add(menubutton);
+
+  // Create a Command to be executed upon any menu selection
+  var command = new qx.client.Command();
+  //  command.addEventListener("execute", fsm.eventListener, fsm);
+      
+  // Create a radio manager for selecting one of the modules
+  var moduleManager = new qx.manager.selection.RadioManager("main.gui.Module");
+
+  // Create a menu containing the subitems
+  var menu = new qx.ui.menu.Menu();
+
+  // We'll also track the current module's canvas in the modules object
+  swat.main.Gui.currentCanvas = null;
+
+  // For each menu item...
+  for (moduleName in moduleList)
+  {
+    // create a radio button menu item
+    o = new qx.ui.menu.RadioButton(moduleName, null, command);
+
+    // Associate this button menu item with the module list
+    o.moduleName = moduleName;
+
+    // Associate the menu item with the radio manager
+    moduleManager.add(o);
+
+    // Create this module's canvas
+    var canvas = new qx.ui.layout.CanvasLayout();
+    canvas.set({
+                   top: 120,
+                   bottom: 0,
+                   left: 0,
+                   right: 0
+               });
+    canvas.setBackgroundColor("white");
+    canvas.setDisplay(false); // initially not displayed
+
+    var fsm = moduleList[moduleName].fsm;
+    fsm.addObject("swat.module.canvas", canvas);
+    canvas.addEventListener("appear", fsm.eventListener, fsm);
+    canvas.addEventListener("disappear", fsm.eventListener, fsm);
+
+    // Save the canvas
+    moduleList[moduleName].canvas = canvas;
+
+    // Add the canvas to the document
+    canvas.addToDocument();
+
+    // When a Module menu item is selected:
+    o.addEventListener("changeChecked", function(e)
+                       {
+                         var canvas = moduleList[this.moduleName].canvas;
+
+                         // If there's a current canvas, ...
+                         if (swat.main.Gui.currentCanvas)
+                         {
+                           // ... then remove display of it.
+                           swat.main.Gui.currentCanvas.setDisplay(false);
+                           
+                           // Dispatch an event on the canvas to notify old
+                           // module it's coming into disuse.
+                           canvas.createDispatchEvent("disappear");
+                         }
+
+                         // If we are being selected...
+                         if (e.getData())
+                         {
+                           // then display our canvas
+                           var canvas = moduleList[this.moduleName].canvas;
+                           canvas.setDisplay(true);
+
+                           // Track the current canvas (now ours)
+                           swat.main.Gui.currentCanvas = canvas;
+
+                           // Dispatch an event on the canvas to notify new
+                           // module it's coming into use.
+                           canvas.createDispatchEvent("appear");
+
+                           // Set the application title
+                           title.setHtml("<span>" +
+                                         "Samba Web Administration Tool" +
+                                         " &raquo; " +
+                                         this.moduleName +
+                                         "</span>");
+                           
+                           // Set the browser title as well
+                           document.title =
+                             "Swat: " + this.moduleName;
+
+                         }
+                       });
+
+    // Add the menu item to the menu
+    menu.add(o);
+  }
+
+  // We've built a complete menu.  Add it to the document.
+  menu.addToDocument();
+
+  // Specify that the menu is to be displayed upon menu button selection
+  menubutton.setMenu(menu);
+
+  // Create a menu item for selecting debug options
+  var menubutton = new qx.ui.toolbar.MenuButton("Debug");
+  menubar.add(menubutton);
+
+  // Create a menu containing the subitems
+  var menu = new qx.ui.menu.Menu;
+  var menu_01 = new qx.ui.menu.Button("Show Debug Window", null, command);
+  menu.add(menu_01);
+  menu.addToDocument();
+
+  // Specify that the menu is to be displayed upon menu button selection
+  menubutton.setMenu(menu);
+
+};
diff --git a/webapps/swat/source/class/swat/main/Main.js b/webapps/swat/source/class/swat/main/Main.js
new file mode 100644 (file)
index 0000000..dc3bbc0
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * Copyright:
+ *   (C) 2006 by Derrell Lipman
+ *       All rights reserved
+ *
+ * License:
+ *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
+ */
+
+/*
+#require(swat.module.Module)
+#require(swat.module.AbstractModule)
+*/
+
+/**
+ * Swat main menu
+ */
+qx.OO.defineClass("swat.main.Main", qx.component.AbstractApplication,
+function()
+{
+  qx.component.AbstractApplication.call(this);
+});
+
+/*
+ * Register our supported modules
+ */
+
+//#require(swat.module.statistics.Statistics)
+new swat.module.Module("Statistics",
+                       swat.module.statistics.Statistics);
+
+//#require(swat.module.ldbbrowse.LdbBrowse)
+new swat.module.Module("LDB Browser",
+                       swat.module.ldbbrowse.LdbBrowse);
+
+//#require(swat.module.documentation.Documentation)
+//#require(api.Viewer)
+new swat.module.Module("API Documentation",
+                       swat.module.documentation.Documentation);
+
+
+/*
+---------------------------------------------------------------------------
+  METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.initialize = function()
+{
+  // Set the resource URI
+  qx.Settings.setCustom("resourceUri", "./resource");
+
+  // Turn on JSON debugging for the time being
+  qx.Settings.setCustomOfClass("qx.io.Json", "enableDebug", true);
+
+  // For each module...
+  var moduleList = swat.module.Module.getList();
+  for (moduleName in moduleList)
+  {
+    // ... call the module's buildInitialFsm() function
+    var module = moduleList[moduleName]["class"].getInstance();
+    module.buildInitialFsm(moduleList[moduleName]);
+  }
+};
+
+
+qx.Proto.main = function()
+{
+  var moduleList = swat.module.Module.getList();
+
+  // Initialize the gui for the main menu
+  swat.main.Gui.buildGui(moduleList);
+
+  // Similarly, now that we have a canvas for each module, ...
+  for (moduleName in moduleList)
+  {
+    // ... call the module's buildInitialGui() function
+    var module = moduleList[moduleName]["class"].getInstance();
+    module.buildInitialGui(moduleList[moduleName]);
+  }
+};
+
+
+qx.Proto.finalize = function()
+{
+  // Call each module's finalization function
+  var moduleList = swat.module.Module.getList();
+  for (moduleName in moduleList)
+  {
+    var module = moduleList[moduleName]["class"].getInstance();
+    module.finalize(moduleList[moduleName]);
+  }
+};
+
diff --git a/webapps/swat/source/class/swat/module/AbstractModule.js b/webapps/swat/source/class/swat/module/AbstractModule.js
new file mode 100644 (file)
index 0000000..19bcc88
--- /dev/null
@@ -0,0 +1,172 @@
+/*
+ * Copyright:
+ *   (C) 2006 by Derrell Lipman
+ *       All rights reserved
+ *
+ * License:
+ *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
+ */
+
+/**
+ * Abstract Module class.  All modules should extend this class.
+ */
+qx.OO.defineClass("swat.module.AbstractModule", qx.core.Object,
+function()
+{
+  qx.core.Object.call(this);
+  this.debug("AbstractModule constructor");
+});
+
+
+/**
+ * Build the initial finite state machine.
+ *
+ * In order to prevent long load times, as minimal as possible of an initial
+ * FSM should be created.  The FSM will receive an "appear" event when the
+ * module is first selected (and each subsequent time), and the FSM can use
+ * that event to build the complete FSM.
+ *
+ * @param module {swat.module.Module}
+ *    The module descriptor for the module.
+ */
+qx.Proto.buildInitialFsm = function(module)
+{
+  // Create a new finite state machine
+  var fsm = new qx.util.fsm.FiniteStateMachine(module.name);
+
+  // For this simple example application, show all debug messages.
+  qx.Settings.setCustomOfClass(
+    "qx.util.fsm.FiniteStateMachine",
+    "debugFlags",
+    (qx.util.fsm.FiniteStateMachine.DebugFlags.EVENTS |
+     qx.util.fsm.FiniteStateMachine.DebugFlags.TRANSITIONS |
+     qx.util.fsm.FiniteStateMachine.DebugFlags.FUNCTION_DETAIL |
+     qx.util.fsm.FiniteStateMachine.DebugFlags.OBJECT_NOT_FOUND));
+
+  /*
+   * State: Idle
+   *
+   * Transition on:
+   *  "appear" on swat.module.canvas
+   */
+  var state = new qx.util.fsm.State(
+    "State_Idle",
+    {
+      "events" :
+        {
+          // When we get an appear event the first time, run the transition
+          // that will load the module's finite state machine and graphical
+          // user interface.
+          "appear"  :
+          {
+            "swat.module.canvas" :
+              "Transition_Idle_to_Idle_Load_Gui"
+          }
+        }
+    });
+  fsm.addState(state);
+
+  /*
+   * Transition: Idle to (replaced) Idle
+   *
+   * Cause: "appear" on canvas for the first time
+   *
+   * Action:
+   *  Load module's finite state machine and graphical user interface
+   */
+  var thisModule = this;
+  var trans = new qx.util.fsm.Transition(
+    "Transition_Idle_to_Idle_Load_Gui",
+    {
+      "nextState" :
+        qx.util.fsm.FiniteStateMachine.StateChange.CURRENT_STATE,
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          // Make the "Loading" message go away.  (We need to learn how to
+          // remove it entirely.  Just doing canvas.removeAll() leaves
+          // something in the widget queue and we get spurious error
+          // messages.)
+          var children = module.canvas.getVisibleChildren();
+          for (var child in children)
+          {
+            children[child].hide();
+          }
+
+          // Call the module's initialAppear function to build FSM and GUI.
+          // That function should *replace* this state, State_Idle, to which
+          // we'll transition.
+          thisModule.initialAppear(module);
+        }
+    });
+  state.addTransition(trans);
+
+  // Save the finite state machine for this module
+  module.fsm = fsm;
+
+  // Save the module descriptor in the finite state machine
+  fsm.addObject("swat.module.module", module);
+
+  // Create an RPC object for use by this module
+  module.rpc = new qx.io.remote.Rpc();
+  module.rpc.setUrl("/services/");
+  module.rpc.setTimeout(10000);
+  module.rpc.setCrossDomain(false);
+  module.rpc.addEventListener("completed", fsm.eventListener, fsm);
+  module.rpc.addEventListener("failed", fsm.eventListener, fsm);
+  module.rpc.addEventListener("timeout", fsm.eventListener, fsm);
+  module.rpc.addEventListener("aborted", fsm.eventListener, fsm);
+  fsm.addObject("swat.module.rpc", module.rpc);
+
+  // Start the finite state machine
+  fsm.start();
+};
+
+/**
+ * Build the initial graphical user interface.
+ *
+ * In order to prevent long load times, as minimal as possible of an initial
+ * GUI should be created.  Generally, this is just a "Loading..." message.
+ *
+ * @param module {Object}
+ *   An object containing at least the following properties:
+ *     fsm -
+ *       The finite state machine for this module.  It should be filled in
+ *       by this function.
+ *     canvas -
+ *       The canvas on which to create the gui for this module
+ *     name -
+ *       The name of this module
+ *     class -
+ *       The class for this module
+ *
+ */
+qx.Proto.buildInitialGui = function(module)
+{
+  // For now, just create the "Loading" text
+  var o = new qx.ui.basic.Label("Loading module '" + module.name + "'...");
+  o.set({
+            top: 12,
+            left: 20
+        });
+  o.setFont("bold");
+  module.canvas.add(o);
+};
+
+qx.Proto.finalize = function(module)
+{
+  this.debug("AbstractModule.finalize()");
+};
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/AbstractModuleFsm.js b/webapps/swat/source/class/swat/module/AbstractModuleFsm.js
new file mode 100644 (file)
index 0000000..57b8baa
--- /dev/null
@@ -0,0 +1,211 @@
+/*
+ * Copyright:
+ *   (C) 2006 by Derrell Lipman
+ *       All rights reserved
+ *
+ * License:
+ *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
+ */
+
+/**
+ * Common facilities for modules' finite state machines.  Each module's FSM
+ * should extend this class.
+ */
+qx.OO.defineClass("swat.module.AbstractModuleFsm", qx.core.Object, function()
+{
+  qx.core.Object.call(this);
+});
+
+
+qx.Proto.buildFsm = function(module)
+{
+  throw new Error("Module must overload buildFsm() " +
+                  "to build its custom finite state machine.");
+};
+
+qx.Proto.addAwaitRpcResultState = function(module)
+{
+  var fsm = module.fsm;
+
+  /*
+   * State: AwaitRpcResult
+   *
+   * Actions upon entry:
+   *  - enable any objects in group "swat.module.fsmUtils.enable_during_rpc"
+   *  - disable any objects in group "swat.module.fsmUtils.disable_during_rpc"
+   *
+   * Actions upon exit:
+   *   - disable any objects in group "swat.module.fsmUtils.enable_during_rpc"
+   *   - enable any objects in group "swat.module.fsmUtils.disable_during_rpc"
+   *
+   * Transition on:
+   *  "completed" (on RPC)
+   *  "failed" (on RPC)
+   *  "execute" on swat.module.fsmUtils.abort_rpc
+   */
+  var state = new qx.util.fsm.State(
+    "State_AwaitRpcResult",
+    {
+      "autoActionsBeforeOnentry" :
+      {
+        // The name of a function.
+        "setEnabled" :
+        [
+          {
+            // We want to enable objects in the group
+            // swat.module.fsmUtils.enable_during_rpc
+            "parameters" : [ true ],
+
+            // Call this.getObject(<object>).setEnabled(true) on
+            // state entry, for each <object> in the group called
+            // "swat.module.fsmUtils.enable_during_rpc".
+            "groups"      : [ "swat.module.fsmUtils.enable_during_rpc" ]
+          },
+
+          {
+            // We want to disable objects in the group
+            // swat.module.fsmUtils.disable_during_rpc
+            "parameters" : [ false ],
+
+            // Call this.getObject(<object>).setEnabled(false) on
+            // state entry, for each <object> in the group called
+            // "swat.module.fsmUtils.disable_during_rpc".
+            "groups"      : [ "swat.module.fsmUtils.disable_during_rpc" ]
+          }
+        ]
+      },
+
+      "autoActionsBeforeOnexit" :
+      {
+        // The name of a function.
+        "setEnabled" :
+        [
+          {
+            // We want to re-disable objects we had enabled, in the group
+            // swat.module.fsmUtils.enable_during_rpc
+            "parameters" : [ false ],
+
+            // Call this.getObject(<object>).setEnabled(false) on
+            // state entry, for each <object> in the group called
+            // "swat.module.fsmUtils.enable_during_rpc".
+            "groups"      : [ "swat.module.fsmUtils.enable_during_rpc" ]
+          },
+
+          {
+            // We want to re-enable objects we had disabled, in the group
+            // swat.module.fsmUtils.disable_during_rpc
+            "parameters" : [ true ],
+
+            // Call this.getObject(<object>).setEnabled(true) on
+            // state entry, for each <object> in the group called
+            // "swat.module.fsmUtils.disable_during_rpc".
+            "groups"      : [ "swat.module.fsmUtils.disable_during_rpc" ]
+          }
+        ]
+      },
+
+      "onentry" :
+        function(fsm, state)
+        {
+          // If we're coming from some other start...
+          if (fsm.getPreviousState() != "State_AwaitRpcResult")
+          {
+            // ... then push the previous state onto the state stack
+            fsm.pushState(false);
+          }
+        },
+
+      "events" :
+      {
+        "execute"  :
+        {
+          "swat.module.fsmUtils.abort_rpc" :
+            "Transition_AwaitRpcResult_to_AwaitRpcResult_via_button_abort"
+        },
+
+        "completed" :
+          "Transition_AwaitRpcResult_to_PopStack_via_complete",
+
+        "failed" :
+          "Transition_AwaitRpcResult_to_PopStack_via_failed"
+      }
+    });
+  fsm.addState(state);
+
+  /*
+   * Transition: AwaitRpcResult to AwaitRpcResult
+   *
+   * Cause: "execute" on swat.module.fsmUtils.abort_rpc
+   */
+  var trans = new qx.util.fsm.Transition(
+    "Transition_AwaitRpcResult_to_AwaitRpcResult_via_button_abort",
+    {
+      "nextState" :
+        "State_AwaitRpcResult",
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          // Get the request object
+          var request = fsm.getObject("swat.module.fsmUtils.request");
+
+          // Issue an abort for the pending request
+          request.abort();
+        }
+    });
+  state.addTransition(trans);
+
+  /*
+   * Transition: AwaitRpcResult to PopStack
+   *
+   * Cause: "complete" (on RPC)
+   */
+  var trans = new qx.util.fsm.Transition(
+    "Transition_AwaitRpcResult_to_PopStack_via_complete",
+    {
+      "nextState" :
+        qx.util.fsm.FiniteStateMachine.StateChange.POP_STATE_STACK,
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          // Get the request object
+          var request = fsm.getObject("swat.module.fsmUtils.request");
+          
+          // Generate the result for a completed request
+          request.setUserData("result",
+                              {
+                                  type : "complete",
+                                  data : event.getData()
+                              });
+        }
+    });
+  state.addTransition(trans);
+
+  /*
+   * Transition: AwaitRpcResult to PopStack
+   *
+   * Cause: "failed" (on RPC)
+   */
+  var trans = new qx.util.fsm.Transition(
+    "Transition_AwaitRpcResult_to_PopStack_via_failed",
+    {
+      "nextState" :
+        qx.util.fsm.FiniteStateMachine.StateChange.POP_STATE_STACK,
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          // Get the request object
+          var request = fsm.getObject("swat.module.fsmUtils.request");
+          
+          // Generate the result for a completed request
+          request.setUserData("result",
+                              {
+                                  type : "failed",
+                                  data : event.getData()
+                              });
+        }
+    });
+  state.addTransition(trans);
+};
diff --git a/webapps/swat/source/class/swat/module/Module.js b/webapps/swat/source/class/swat/module/Module.js
new file mode 100644 (file)
index 0000000..e7180d2
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright:
+ *   (C) 2006 by Derrell Lipman
+ *       All rights reserved
+ *
+ * License:
+ *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
+ */
+
+/**
+ * This class defines a module descriptor (the registration of a module) and
+ * maintains the list of modules that have been registered.
+ *
+ * A Module object contains the following public properties which may be
+ * accessed directly by name:
+ *
+ *   fsm -
+ *     The finite state machine for this module.
+ *
+ *   canvas -
+ *     The canvas on which to create the gui for this module
+ *
+ *   name -
+ *     The name of this module
+ *
+ *   class -
+ *     The class for this module
+ *
+ * @param moduleName {string}
+ *   The name of the module being registered.  This is the name that will
+ *   appear in the Modules menu.
+ *
+ * @param class {class}
+ *   The class which contains the module implementation.  That class must
+ *   extend swat.module.AbstractModule and implement a singleton interface
+ *   that provides a public method called initialAppear() which takes this
+ *   Module object as a parameter, and creates the finite state machine for
+ *   the module (if applicable) and builds the graphical user interface for
+ *   the module.
+ */
+qx.OO.defineClass("swat.module.Module", qx.core.Object,
+function(moduleName, class)
+{
+  qx.core.Object.call(this);
+
+  // Initialize commonly-used properties of a module
+  this.canvas = null;
+  this.fsm = null;
+  this.gui = null;
+
+  // Save the module name
+  this.name = moduleName;
+
+  // Save this class name
+  this.class = class;
+
+  // Add this new module to the module list.
+  swat.module.Module._list[moduleName] = this;
+});
+
+
+/**
+ * Return the list of modules
+ */
+qx.Class.getList = function()
+{
+  return swat.module.Module._list;
+};
+
+
+/**
+ * The list of modules which have been registered.
+ */
+qx.Class._list = { };
diff --git a/webapps/swat/source/class/swat/module/documentation/Documentation.js b/webapps/swat/source/class/swat/module/documentation/Documentation.js
new file mode 100644 (file)
index 0000000..03191ca
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Copyright:
+ *   (C) 2006 by Derrell Lipman
+ *       All rights reserved
+ *
+ * License:
+ *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
+ */
+
+/**
+ * Swat statistics class
+ */
+qx.OO.defineClass("swat.module.documentation.Documentation",
+                  swat.module.AbstractModule,
+function()
+{
+  swat.module.AbstractModule.call(this);
+});
+
+
+/**
+ * Load the documentation data
+ *
+ * This function is called the first time a module is actually selected to
+ * appear.  Creation of the module's GUI has been deferred until it was
+ * actually needed (now), so we need to create it.
+ *
+ * @param module {swat.module.Module}
+ *   The module descriptor for the module.
+ */
+qx.Proto.initialAppear = function(module)
+{
+  qx.manager.object.AliasManager.getInstance().add("api", "./resource/image");
+
+  // Include CSS file.
+  // (This is the hard way; I can't get qx.dom.StyleSheet.includeFile to load)
+  var el = document.createElement("link");
+  el.type = "text/css";
+  el.rel = "stylesheet";
+  el.href = "./resource/css/apiviewer.css";
+  var head = document.getElementsByTagName("head")[0];
+  head.appendChild(el);
+
+  // avoid redundant naming by api viewer
+  qx.Settings.setCustomOfClass("apiviewer.Viewer", "title", ""); 
+
+  var viewer = new api.Viewer();
+  module.canvas.add(viewer);
+  viewer.load("script/data.js");
+
+  // Replace the existing (temporary) finite state machine with a null one
+  swat.module.documentation.Fsm.getInstance().buildFsm(module);
+};
+
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/documentation/Fsm.js b/webapps/swat/source/class/swat/module/documentation/Fsm.js
new file mode 100644 (file)
index 0000000..9df878b
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Copyright:
+ *   (C) 2006 by Derrell Lipman
+ *       All rights reserved
+ *
+ * License:
+ *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
+ */
+
+/**
+ * Swat statistics class finite state machine
+ */
+qx.OO.defineClass("swat.module.documentation.Fsm",
+                  swat.module.AbstractModuleFsm,
+function()
+{
+  swat.module.AbstractModuleFsm.call(this);
+});
+
+
+qx.Proto.buildFsm = function(module)
+{
+  var fsm = module.fsm;
+
+  /*
+   * State: Idle
+   *
+   *   This is a null state to replace the one that loads the API viewer.  The
+   *   API viewer does not use the finite state machine.
+   */
+  var state = new qx.util.fsm.State(
+    "State_Idle",
+    {
+      "events" :
+        {
+          // We need at least one event listed due to FSM requirements
+          "appear" :
+          {
+            "swat.module.canvas" :
+              "Transition_Idle_to_Idle_via_appear"
+          }
+        }
+    });
+
+  // Replace the initial Idle state with this one
+  fsm.replaceState(state, true);
+
+  /*
+   * Transition: Idle to Idle
+   *
+   * Cause: "appear" on canvas
+   *
+   * Action:
+   *  None.
+   */
+  var trans = new qx.util.fsm.Transition(
+    "Transition_Idle_to_Idle_via_appear",
+    {
+      "nextState" :
+        "State_Idle"
+    });
+  state.addTransition(trans);
+
+};
+
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/ldbbrowse/Fsm.js b/webapps/swat/source/class/swat/module/ldbbrowse/Fsm.js
new file mode 100644 (file)
index 0000000..9362ef7
--- /dev/null
@@ -0,0 +1,383 @@
+/*
+ * Copyright:
+ *   (C) 2006 by Derrell Lipman
+ *       All rights reserved
+ *
+ * License:
+ *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
+ */
+
+/**
+ * Swat LDB Browser class finite state machine
+ */
+qx.OO.defineClass("swat.module.ldbbrowse.Fsm", swat.module.AbstractModuleFsm,
+function()
+{
+  swat.module.AbstractModuleFsm.call(this);
+});
+
+
+qx.Proto.buildFsm = function(module)
+{
+  var fsm = module.fsm;
+
+  /*
+   * State: Idle
+   *
+   * Actions upon entry
+   *   - if returning from RPC, display the result
+   *
+   * Transition on:
+   *   "execute" on find button
+   *   "treeopenwhileempty" on tree
+   *   "changeselection" on tree
+   */
+  var state = new qx.util.fsm.State(
+    "State_Idle",
+    {
+      "onentry" :
+        function(fsm, state)
+        {
+          // Did we just return from an RPC request?
+          if (fsm.getPreviousState() == "State_AwaitRpcResult")
+          {
+            // Yup.  Display the result.  We need to get the request object
+            var request = fsm.getObject("swat.module.fsmUtils.request");
+
+            // We don't need the request object to be saved any more
+            fsm.removeObject("swat.module.fsmUtils.request");
+
+            // Display the result
+            var gui = swat.module.ldbbrowse.Gui.getInstance();
+            gui.displayData(module, request);
+
+            // Dispose of the request
+            request.dispose();
+            request = null;
+          }
+        },
+
+      "events" :
+        {
+          // If the find button is activated, issue a find request
+          "execute" :
+          {
+            "find" :
+              "Transition_Idle_to_AwaitRpcResult_via_find"
+          },
+
+          // If a previously unexpanded tree node is expanded, issue a request
+          // to retrieve its contents.
+          "treeOpenWhileEmpty":
+          {
+            "tree" :
+              "Transition_Idle_to_AwaitRpcResult_via_tree_open"
+          },
+
+          // If the selection changes, issue a request to retrieve contents to
+          // populate the attribute/value table.
+          "changeSelection":
+          {
+            "tree:manager" :
+              "Transition_Idle_to_AwaitRpcResult_via_tree_selection_changed",
+
+            "dbName":
+              "Transition_Idle_to_AwaitRpcResult_via_db_changed"
+          }
+        }
+    });
+
+  // Replace the initial Idle state with this one
+  fsm.replaceState(state, true);
+  
+  /*
+   * Transition: Idle to AwaitRpcResult
+   *
+   * Cause: "execute" on find button
+   *
+   * Action:
+   *  Issue a search request
+   */
+  var trans = new qx.util.fsm.Transition(
+    "Transition_Idle_to_AwaitRpcResult_via_find",
+    {
+      "nextState" :
+        "State_AwaitRpcResult",
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          // Obtain the RPC object
+          var rpc = fsm.getObject("swat.module.rpc");
+
+          // Get our module descriptor
+          var module = fsm.getObject("swat.module.module");
+
+          // Retrieve the database handle
+          var dbHandle = module.dbHandle;
+
+          // Retrieve the search expression
+          var searchExpr = fsm.getObject("searchExpr").getValue();
+
+          // Retrieve the base DN
+          var baseDN = fsm.getObject("baseDN").getValue();
+
+          // Retrieve the selected scope
+          var scope = fsm.getObject("scope").getSelected().getValue();
+
+          // We want all attributes
+          var attributes = [ "*" ];
+
+          rpc.setServiceName("samba.ldb");
+          var request = rpc.callAsyncListeners(true, // coalesce failure events
+                                               "search",
+                                               dbHandle,
+                                               searchExpr,
+                                               baseDN,
+                                               scope,
+                                               attributes);
+
+          // When we get the result, we'll need to know what type of request
+          // we made.
+          request.setUserData("requestType", "find");
+
+          // Save the request object
+          fsm.addObject("swat.module.fsmUtils.request", request);
+        }
+    });
+  state.addTransition(trans);
+
+  /*
+   * Transition: Idle to AwaitRpcResult
+   *
+   * Cause: "treeOpenWhileEmpty" on tree
+   *
+   * Action:
+   *  Issue a search request
+   */
+  var trans = new qx.util.fsm.Transition(
+    "Transition_Idle_to_AwaitRpcResult_via_tree_open",
+    {
+      "nextState" :
+        "State_AwaitRpcResult",
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          var parent = event.getData();
+          var hierarchy = parent.getHierarchy(new Array());
+
+          parent.debug("Requesting children...");
+
+          // Strip off the root node
+          hierarchy.shift();
+
+          // Get the tree object
+          var tree = fsm.getObject("tree");
+
+          // Determine the children.  Differs depending on root or otherwise
+          var attributes;
+          var scope;
+          var baseDN;
+            
+          // If parent is the root...
+          if (parent == tree)
+          {
+            // ... then we want the defaultNamingContext, ...
+            attributes = [ "defaultNamingContext" ];
+
+            // ... and we want only base scope
+            scope = "base";
+
+            // ... and an empty base DN
+            baseDN = "";
+          }
+          else
+          {
+            // otherwise, retrieve the DN,
+            attributes = [ "dn" ];
+
+            // ... and we want one level of scope
+            scope = "one";
+
+            // ... and base DN is the parent
+            baseDN = hierarchy.reverse().join(",");
+          }
+
+          // Build the search expression
+          var searchExpr = "(objectclass=*)";
+
+          // Obtain the RPC object
+          var rpc = fsm.getObject("swat.module.rpc");
+
+          // Get our module descriptor
+          var module = fsm.getObject("swat.module.module");
+
+          // Retrieve the database handle
+          var dbHandle = module.dbHandle;
+
+          rpc.setServiceName("samba.ldb");
+          var request = rpc.callAsyncListeners(true, // coalesce failure events
+                                               "search",
+                                               dbHandle,
+                                               searchExpr,
+                                               baseDN,
+                                               scope,
+                                               attributes);
+
+          // When we get the result, we'll need to know what type of request
+          // we made.
+          request.setUserData("requestType", "tree_open");
+
+          // We'll also need some of our parameters
+          request.setUserData("parent", parent);
+          request.setUserData("attributes", attributes);
+
+          // Save the request object
+          fsm.addObject("swat.module.fsmUtils.request", request);
+        }
+    });
+  state.addTransition(trans);
+
+  /*
+   * Transition: Idle to AwaitRpcResult
+   *
+   * Cause: "changeSelection" on tree
+   *
+   * Action:
+   *  Issue a search request
+   */
+  var trans = new qx.util.fsm.Transition(
+    "Transition_Idle_to_AwaitRpcResult_via_tree_selection_changed",
+    {
+      "nextState" :
+        "State_AwaitRpcResult",
+
+      "predicate" :
+        function(fsm, event)
+        {
+          var element = event.getData()[0];
+          var hierarchy = element.getHierarchy(new Array());
+
+          // Strip off the root node
+          hierarchy.shift();
+
+          // Get the tree object
+          var tree = fsm.getObject("tree");
+
+          // If element is the root...
+          if (element == tree)
+          {
+            // ... then just clear out the attribute/value table.
+            var tableModel = fsm.getObject("tableModel:browse");
+            tableModel.setData([]);
+            return null;        // don't search additional transitionis
+          }
+
+          return true;
+        },
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          var element = event.getData()[0];
+          var hierarchy = element.getHierarchy(new Array());
+
+          // Strip off the root node
+          hierarchy.shift();
+
+          // Get the tree object
+          var tree = fsm.getObject("tree");
+
+          // Determine the children.  Differs depending on root or otherwise
+          var attributes;
+          var scope;
+          var baseDN;
+            
+          // We want all attributes
+          attributes = [ "*" ];
+
+          // We want the attributes only for the current element
+          scope = "base";
+
+          // Base DN is the current element
+          baseDN = hierarchy.reverse().join(",");
+
+          // Build the search expression
+          var searchExpr = "(objectclass=*)";
+
+          // Obtain the RPC object
+          var rpc = fsm.getObject("swat.module.rpc");
+
+          // Get our module descriptor
+          var module = fsm.getObject("swat.module.module");
+
+          // Retrieve the database handle
+          var dbHandle = module.dbHandle;
+
+          rpc.setServiceName("samba.ldb");
+          var request = rpc.callAsyncListeners(true, // coalesce failure events
+                                               "search",
+                                               dbHandle,
+                                               searchExpr,
+                                               baseDN,
+                                               scope,
+                                               attributes);
+
+          // When we get the result, we'll need to know what type of request
+          // we made.
+          request.setUserData("requestType", "tree_selection_changed");
+
+          // Save the request object
+          fsm.addObject("swat.module.fsmUtils.request", request);
+        }
+    });
+  state.addTransition(trans);
+
+  /*
+   * Transition: Idle to AwaitRpcResult
+   *
+   * Cause: "changeSelection" on dbName
+   *
+   * Action:
+   *  Issue a connect request
+   */
+  var trans = new qx.util.fsm.Transition(
+    "Transition_Idle_to_AwaitRpcResult_via_db_changed",
+    {
+      "nextState" :
+        "State_AwaitRpcResult",
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          // Obtain the RPC object
+          var rpc = fsm.getObject("swat.module.rpc");
+
+          // Obtain the name of the database to be connected to
+          var dbName = fsm.getObject("dbName").getValue();
+
+          rpc.setServiceName("samba.ldb");
+          var request = rpc.callAsyncListeners(true, // coalesce failure events
+                                               "connect",
+                                               dbName);
+
+          // When we get the result, we'll need to know what type of request
+          // we made.
+          request.setUserData("requestType", "database_name_changed");
+
+          // Save the request object
+          fsm.addObject("swat.module.fsmUtils.request", request);
+        }
+    });
+  state.addTransition(trans);
+
+  // Add the AwaitRpcResult state and all of its transitions
+  this.addAwaitRpcResultState(module);
+};
+
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/ldbbrowse/Gui.js b/webapps/swat/source/class/swat/module/ldbbrowse/Gui.js
new file mode 100644 (file)
index 0000000..9e86be2
--- /dev/null
@@ -0,0 +1,632 @@
+/*
+ * Copyright:
+ *   (C) 2006 by Derrell Lipman
+ *       All rights reserved
+ *
+ * License:
+ *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
+ */
+
+/**
+ * Swat LDB Browser class graphical user interface
+ */
+qx.OO.defineClass("swat.module.ldbbrowse.Gui", qx.core.Object,
+function()
+{
+  qx.core.Object.call(this);
+});
+
+
+/**
+ * Build the raw graphical user interface.
+ */
+qx.Proto.buildGui = function(module)
+{
+  var o;
+  var fsm = module.fsm;
+
+  // We need a horizontal box layout for the database name
+  var hlayout = new qx.ui.layout.HorizontalBoxLayout();
+  hlayout.set({
+                  top: 20,
+                  left: 20,
+                  right: 20,
+                  height: 30
+              });
+
+  // Create a label for the database name
+  o = new qx.ui.basic.Atom("Database:");
+  o.setWidth(100);
+  o.setHorizontalChildrenAlign("right");
+
+  // Add the label to the horizontal layout
+  hlayout.add(o);
+
+  // Create a combo box for for the database name
+  o = new qx.ui.form.ComboBox();
+  o.getField().setWidth("100%");
+  o.setEditable(false);
+
+  // Add our global database name (the only option, for now)
+  var item = new qx.ui.form.ListItem(module.dbFile);
+  o.add(item);
+  
+  // We want to be notified if the selection changes
+  o.addEventListener("changeSelection", fsm.eventListener, fsm);
+
+  // Save the database name object so we can react to changes
+  fsm.addObject("dbName", o);
+    
+  // Add the combo box to the horizontal layout
+  hlayout.add(o);
+
+  // Add the database name selection to the canvas
+  module.canvas.add(hlayout);
+
+  // Create and position the tabview
+  var tabView_ = new qx.ui.pageview.tabview.TabView;
+  tabView_.set({
+                   top: 60,
+                   left: 20,
+                   right: 20,
+                   bottom: 20
+               });
+
+  // Create each of the tabs
+  var tabView_Search =
+  new qx.ui.pageview.tabview.Button("Search");
+  var tabView_Browse =
+  new qx.ui.pageview.tabview.Button("Browse");
+
+  // Specify the initially-selected tab
+  tabView_Search.setChecked(true);
+
+  // Add each of the tabs to the tabview
+  tabView_.getBar().add(tabView_Search, tabView_Browse);
+
+  // Create the pages to display when each tab is selected
+  var tabViewPage_Search =
+  new qx.ui.pageview.tabview.Page(tabView_Search);
+  var tabViewPage_Browse =
+  new qx.ui.pageview.tabview.Page(tabView_Browse);
+
+  // Build the search page
+  this._buildPageSearch(module, tabViewPage_Search);
+
+  // Build the browse page
+  this._buildPageBrowse(module, tabViewPage_Browse);
+
+  // Add the pages to the tabview
+  tabView_.getPane().add(tabViewPage_Search, tabViewPage_Browse);
+
+  // Add the tabview to our canvas
+  module.canvas.add(tabView_);
+};
+
+
+/**
+ * Populate the graphical user interface with the specified data
+ *
+ * @param module {swat.module.Module}
+ *   The module descriptor for the module.
+ *
+ * @result {Object}
+ *   The result returned by SAMBA to our request.  We display the data
+ *   provided by this result.
+ */
+qx.Proto.displayData = function(module, request)
+{
+  var gui = module.gui;
+  var fsm = module.fsm;
+  var result = request.getUserData("result")
+  var requestType = request.getUserData("requestType");
+
+  // Did the request fail?
+  if (result.type == "failed")
+  {
+    // Yup.  We're not going to do anything particularly elegant...
+    alert("Async(" + result.id + ") exception: " + result.data);
+    return;
+  }
+
+  // Dispatch to the appropriate handler, depending on the request type
+  switch(requestType)
+  {
+  case "find":
+    this._displayFindResults(module, request);
+    break;
+    
+  case "tree_open":
+    this._displayTreeOpenResults(module, request);
+    break;
+
+  case "tree_selection_changed":
+    this._displayTreeSelectionChangedResults(module, request);
+    break;
+
+  case "database_name_changed":
+    this._clearAllFields(module, request);
+    break;
+
+  default:
+    throw new Error("Unexpected request type: " + requestType);
+  }
+
+  // Force flushing of pending DOM updates.  This is actually a
+  // work-around for a bug.  Without this, occasionally, updates to the
+  // gui aren't displayed until some 'action' takes place, e.g. key
+  // press or mouse movement.
+  qx.ui.core.Widget.flushGlobalQueues();
+};
+
+
+qx.Proto._setAppearances = function()
+{
+    // Modify the default appearance of a ComboBox for use in Search tab:
+    //   use more of the available width.
+    //
+    // If we had multiple uses, we'd create a new appearance which didn't
+    // contain a width.  That way, we'd be able to assign a specific width to
+    // each ComboBox instance.  Since we don't have multiple of them, we can
+    // just modify this default appearance.
+    //
+    // See http://qooxdoo.org/documentation/user_manual/appearance for an
+    // explanation of what's going on here.  The missing significant point in
+    // the discussion is that in the current qooxdoo appearance
+    // implementation, it's not possible to override a specific widget's
+    // appearance with explicit settings just for that widget (stupid!).  I
+    // expect that to change in a future version.
+    var appMgr = qx.manager.object.AppearanceManager.getInstance();
+    var theme = appMgr.getAppearanceTheme();
+    var appearance = theme._appearances["combo-box"];
+    if (! appearance)
+    {
+        return;
+    }
+    var oldInitial = appearance.initial;
+    appearance.initial = function(vTheme)
+    {
+        var res = oldInitial ? oldInitial.apply(this, arguments) : {};
+        res.width = "80%";
+        return res;
+    }
+};
+
+
+qx.Proto._buildPageSearch = function(module, page)
+{
+  var fsm = module.fsm;
+
+  // We need a vertical box layout for the various input fields
+  var vlayout = new qx.ui.layout.VerticalBoxLayout();
+  vlayout.setWidth("100%");
+
+  // We need a horizontal box layout for the search combo box and its label
+  var hlayout = new qx.ui.layout.HorizontalBoxLayout();
+  hlayout.setWidth("100%");
+  hlayout.setHeight(25);
+
+  // Create a label for the list of required attributes
+  var label = new qx.ui.basic.Atom("Search Expression:");
+  label.setWidth(100);
+  label.setHorizontalChildrenAlign("right");
+
+  // Add the label to the horizontal layout
+  hlayout.add(label);
+
+  // Create a combo box for entry of the search expression
+  var search = new qx.ui.form.ComboBox();
+  search.getField().setWidth("100%");
+  search.setEditable(true);
+  fsm.addObject("searchExpr", search);
+    
+  // Add the combo box to the horizontal layout
+  hlayout.add(search);
+
+  // Add the horizontal layout to the vertical layout
+  vlayout.add(hlayout);
+
+  // We need a horizontal box layout for the base combo box and its label
+  hlayout = new qx.ui.layout.HorizontalBoxLayout();
+  hlayout.setWidth("100%");
+  hlayout.setHeight(25);
+
+  // Create a label for the list of required attributes
+  var label = new qx.ui.basic.Atom("Base:");
+  label.setWidth(100);
+  label.setHorizontalChildrenAlign("right");
+
+  // Add the label to the horizontal layout
+  hlayout.add(label);
+
+  // Create a combo box for entry of the search expression
+  var base = new qx.ui.form.ComboBox();
+  base.getField().setWidth("100%");
+  base.setEditable(true);
+  fsm.addObject("baseDN", base);
+    
+  // Add the combo box to the horizontal layout
+  hlayout.add(base);
+
+  // Add the horizontal layout to the vertical layout
+  vlayout.add(hlayout);
+
+  // We need a horizontal box layout for scope radio buttons
+  hlayout = new qx.ui.layout.HorizontalBoxLayout();
+  hlayout.setWidth("100%");
+  hlayout.setHeight(25);
+
+  // Create a label for the list of required attributes
+  var label = new qx.ui.basic.Atom("Scope:");
+  label.setWidth(100);
+  label.setHorizontalChildrenAlign("right");
+
+  // Add the label to the horizontal layout
+  hlayout.add(label);
+
+  // Create a radio button for each scope
+  var rbDefault = new qx.ui.form.RadioButton("Default",   "default");
+  var rbBase    = new qx.ui.form.RadioButton("Base",      "base");
+  var rbOne     = new qx.ui.form.RadioButton("One Level", "one");
+  var rbSubtree = new qx.ui.form.RadioButton("Subtree",   "subtree");
+
+  // Use a default of "Default"
+  rbBase.setChecked(true);
+
+  // Add the radio buttons to the horizontal layout
+  hlayout.add(rbDefault, rbBase, rbOne, rbSubtree);
+
+  // Group the radio buttons so only one in the group may be selected
+  var scope = new qx.manager.selection.RadioManager("scope",
+                                                    [
+                                                        rbDefault,
+                                                        rbBase,
+                                                        rbOne,
+                                                        rbSubtree
+                                                    ]);
+  fsm.addObject("scope", scope);
+    
+  // Right-justify the 'Find' button
+  var spacer = new qx.ui.basic.HorizontalSpacer;
+  hlayout.add(spacer);
+
+  // Create the 'Find' button
+  var find = new qx.ui.form.Button('Find');
+  find.setWidth(100);
+  find.addEventListener("execute", fsm.eventListener, fsm);
+
+  // We'll be receiving events on the find object, so save its friendly name
+  fsm.addObject("find", find, "swat.module.fsmUtils.disable_during_rpc");
+
+  hlayout.add(find);
+
+  // Add the Find button line to the vertical layout
+  vlayout.add(hlayout);
+
+  // Add the horizontal box layout to the page
+  page.add(vlayout);
+
+  // Create a simple table model
+  var tableModel = new qx.ui.table.SimpleTableModel();
+  tableModel.setColumns([ "Distinguished Name", "Attribute", "Value" ]);
+
+  tableModel.setColumnEditable(0, false);
+  tableModel.setColumnEditable(1, false);
+  tableModel.setColumnEditable(2, false);
+  fsm.addObject("tableModel:search", tableModel);
+
+  // Create a table
+  var table = new qx.ui.table.Table(tableModel);
+  table.set({
+                top: 80,
+                left: 0,
+                right: 0,
+                bottom: 10,
+                statusBarVisible: false,
+                columnVisibilityButtonVisible: false
+            });
+  table.setColumnWidth(0, 300);
+  table.setColumnWidth(1, 180);
+  table.setColumnWidth(2, 240);
+  table.setMetaColumnCounts([ 1, -1 ]);// h-scroll attribute and value together
+  fsm.addObject("table:search", table);
+
+  page.add(table);
+};
+
+qx.Proto._buildPageBrowse = function(module, page)
+{
+  var fsm = module.fsm;
+
+  // Create a vertical splitpane for tree (top) and table (bottom)
+  var splitpane = new qx.ui.splitpane.VerticalSplitPane("1*", "2*");
+  splitpane.setEdge(0);
+
+  // Create a tree row structure for the tree root
+  var trsInstance = qx.ui.treefullcontrol.TreeRowStructure.getInstance();
+  var trs = trsInstance.standard(module.dbFile);
+
+  // Create the tree and set its characteristics
+  var tree = new qx.ui.treefullcontrol.Tree(trs);
+  tree.set({
+               backgroundColor: 255,
+               border: qx.renderer.border.BorderPresets.getInstance().inset,
+               overflow: "auto",
+               height: null,
+               top: 10,
+               left: 0,
+               right: 0,
+               bottom: 10,
+               open: false,
+               alwaysShowPlusMinusSymbol: true
+           });
+
+  // All subtrees will use this root node's event listeners.  Create an event
+  // listener for an open while empty.
+  tree.addEventListener("treeOpenWhileEmpty", fsm.eventListener, fsm);
+
+  // All subtrees will use this root node's event listeners.  Create an event
+  // listener for selection changed, to populate attribute/value table
+  tree.getManager().addEventListener("changeSelection",
+                                     fsm.eventListener,
+                                     fsm);
+
+  // We'll be receiving events on the tree object, so save its friendly name
+  fsm.addObject("tree", tree);
+  fsm.addObject("tree:manager", tree.getManager());
+
+  // Add the tree to the page.
+  splitpane.addTop(tree);
+
+  // Create a simple table model
+  var tableModel = new qx.ui.table.SimpleTableModel();
+  tableModel.setColumns([ "Attribute", "Value" ]);
+
+  tableModel.setColumnEditable(0, false);
+  tableModel.setColumnEditable(1, false);
+  fsm.addObject("tableModel:browse", tableModel);
+
+  // Create a table
+  var table = new qx.ui.table.Table(tableModel);
+  table.set({
+                top: 10,
+                left: 0,
+                right: 0,
+                bottom: 10,
+                statusBarVisible: false,
+                columnVisibilityButtonVisible: false
+            });
+  table.setColumnWidth(0, 200);
+  table.setColumnWidth(1, 440);
+  table.setMetaColumnCounts([1, -1]);
+  fsm.addObject("table:browse", table);
+
+  // Add the table to the bottom portion of the splitpane
+  splitpane.addBottom(table);
+
+  // Add the first splitpane to the page
+  page.add(splitpane);
+};
+
+
+qx.Proto._displayFindResults = function(module, request)
+{
+  var rowData = [];
+  var fsm = module.fsm;
+
+  // Track the maximum length of the attribute values
+  var maxLen = 0;
+
+  // Obtain the result object
+  result = request.getUserData("result").data;
+
+  if (result && result["length"])
+  {
+    len = result["length"];
+    for (var i = 0; i < result["length"]; i++)
+    {
+      var o = result[i];
+      if (typeof(o) != "object")
+      {
+        alert("Found unexpected result, type " +
+              typeof(o) +
+              ", " +
+              o +
+              "\n");
+        continue;
+      }
+      for (var field in o)
+      {
+        // skip dn and distinguishedName fields;
+        // they're shown in each row anyway.
+        if (field == "dn" || field == "distinguishedName")
+        {
+          continue;
+        }
+
+        // If it's multi-valued (type is an array)...
+        if (typeof(o[field]) == "object")
+        {
+          // ... then add each value with same name
+          var a = o[field];
+          for (var i = 0; i < a.length; i++)
+          {
+            if (a[i].length > maxLen)
+            {
+              maxLen = a[i].length;
+            }
+            rowData.push( [
+                            o["dn"],
+                            field,
+                            a[i]
+                            ] );
+          }
+        }
+        else    // single-valued
+        {
+          // ... add its name and value to the table
+          // dataset
+          if (o[field].length > maxLen)
+          {
+            maxLen = o[field].length;
+          }
+          rowData.push( [
+                          o["dn"],
+                          field,
+                          o[field]
+                          ] );
+        }
+      }
+
+      // Obtain the table and tableModel objects
+      var table = fsm.getObject("table:search");
+      var tableModel = fsm.getObject("tableModel:search");
+
+      // Adjust the width of the value column based on
+      // maxLen
+      table.setColumnWidth(2, maxLen * 7);
+
+      // Tell the table to use the new data
+      tableModel.setData(rowData);
+    }
+  }
+  else
+  {
+    alert("No rows returned.");
+  }
+};
+
+
+qx.Proto._displayTreeOpenResults = function(module, request)
+{
+  var t;
+  var trs;
+  var child;
+
+  // Obtain the result object
+  var result = request.getUserData("result").data;
+
+  // We also need some of the original parameters passed to the request
+  var parent = request.getUserData("parent");
+  var attributes = request.getUserData("attributes");
+
+  // Any children?
+  if (! result || result["length"] == 0)
+  {
+    // Nope.  Allow parent's expand/contract button to be removed
+    parent.setAlwaysShowPlusMinusSymbol(false);
+    return;
+  }
+
+  for (var i = 0; i < result.length; i++)
+  {
+    var name;
+
+    child = result[i];
+
+    // Determine name for new tree row.  If first level, use entire
+    // DN.  Otherwise, strip off first additional component.
+    if (attributes == "defaultNamingContext")
+    {
+      name = child["defaultNamingContext"];
+    }
+    else
+    {
+      name = child["dn"].split(",")[0];
+    }
+
+    // Build a standard tree row
+    trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard(name);
+
+    // This row is a "folder" (it can have children)
+    t = new qx.ui.treefullcontrol.TreeFolder(trs);
+    t.setAlwaysShowPlusMinusSymbol(true);
+
+    // Add this row to its parent
+    parent.add(t);
+  }
+};
+
+
+qx.Proto._displayTreeSelectionChangedResults = function(module, request)
+{
+  var fsm = module.fsm;
+
+  // Obtain the result object
+  var result = request.getUserData("result").data;
+
+  // If we received an empty list, ...
+  if (result == null)
+  {
+    // ... then just clear the attribute/value table.
+    tableModel.setData([ ]);
+    return;
+  }
+
+  // Start with an empty table dataset
+  var rowData = [ ];
+
+  // The result contains a single object: attributes
+  var attributes = result[0];
+
+  // Track the maximum length of the attribute values
+  var maxLen = 0;
+
+  // For each attribute we received...
+  for (var attr in attributes)
+  {
+    // If it's multi-valued (type is an array)...
+    if (typeof(attributes[attr]) == "object")
+    {
+      // ... then add each value with same name
+      var a = attributes[attr];
+      for (var i = 0; i < a.length; i++)
+      {
+        if (a[i].length > maxLen)
+        {
+          maxLen = a[i].length;
+        }
+        rowData.push([ attr, a[i] ]);
+      }
+    }
+    else    // single-valued
+    {
+      // ... add its name and value to the table dataset
+      if (attributes[attr].length > maxLen)
+      {
+        maxLen = attributes[attr].length;
+      }
+      rowData.push([ attr, attributes[attr] ]);
+    }
+  }
+
+  // Obtain the table and tableModel objects
+  var table = fsm.getObject("table:browse");
+  var tableModel = fsm.getObject("tableModel:browse");
+
+  // Adjust the width of the value column based on maxLen
+  table.setColumnWidth(1, maxLen * 7);
+
+  // Add the dataset to the table
+  tableModel.setData(rowData);
+};
+
+
+qx.Proto._clearAllFields = function(module, request)
+{
+  // Obtain the result object
+  var result = request.getUserData("result").data;
+
+  // Retrieve the database handle
+  module.dbHandle = result;
+
+  // In the future, when we support more than one database, we'll want to
+  // clear all fields here.  For now, there's no need.
+};
+
+
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/ldbbrowse/LdbBrowse.js b/webapps/swat/source/class/swat/module/ldbbrowse/LdbBrowse.js
new file mode 100644 (file)
index 0000000..45a4c48
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright:
+ *   (C) 2006 by Derrell Lipman
+ *       All rights reserved
+ *
+ * License:
+ *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
+ */
+
+/**
+ * Swat LDB Browser class
+ */
+qx.OO.defineClass("swat.module.ldbbrowse.LdbBrowse",
+                  swat.module.AbstractModule,
+function()
+{
+  swat.module.AbstractModule.call(this);
+});
+
+
+/**
+ * Create the module's finite state machine and graphical user interface.
+ *
+ * This function is called the first time a module is actually selected to
+ * appear.  Creation of the module's actual FSM and GUI have been deferred
+ * until they were actually needed (now) so we need to create them.
+ *
+ * @param module {swat.module.Module}
+ *   The module descriptor for the module.
+ */
+qx.Proto.initialAppear = function(module)
+{
+  // Initial database to open
+  module.dbFile = "sam.ldb";
+
+  // Replace the existing (temporary) finite state machine with the real one
+  swat.module.ldbbrowse.Fsm.getInstance().buildFsm(module);
+
+  // Create the real gui
+  swat.module.ldbbrowse.Gui.getInstance().buildGui(module);
+
+  // Force the global database to be opened
+  var dbName = module.fsm.getObject("dbName");
+  dbName.setSelected(dbName.getList().getFirstChild());
+  dbName.dispatchEvent(new qx.event.type.Event("changeSelection"), true);
+};
+
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/statistics/Fsm.js b/webapps/swat/source/class/swat/module/statistics/Fsm.js
new file mode 100644 (file)
index 0000000..7710441
--- /dev/null
@@ -0,0 +1,209 @@
+/*
+ * Copyright:
+ *   (C) 2006 by Derrell Lipman
+ *       All rights reserved
+ *
+ * License:
+ *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
+ */
+
+/**
+ * Swat statistics class finite state machine
+ */
+qx.OO.defineClass("swat.module.statistics.Fsm", swat.module.AbstractModuleFsm,
+function()
+{
+  swat.module.AbstractModuleFsm.call(this);
+});
+
+
+qx.Class._startTimer = function(fsm)
+{
+  // Create a timer instance to expire in a few seconds
+  var timer = new qx.client.Timer(5000);
+  timer.addEventListener("interval", fsm.eventListener, fsm);
+  fsm.addObject("timer", timer);
+  timer.start();
+};
+
+
+qx.Class._stopTimer = function(fsm)
+{
+  // ... then stop the timer.  Get the timer object.
+  var timer = fsm.getObject("timer");
+            
+  // If it still exists...
+  if (timer)
+  {
+    // ... then dispose of it.
+    timer.dispose();
+    fsm.removeObject("timer");
+  }
+};
+
+
+qx.Proto.buildFsm = function(module)
+{
+  var fsm = module.fsm;
+  var thisClass = this;
+
+  /*
+   * State: Idle
+   *
+   * Actions upon entry
+   *   - if returning from RPC, display the result
+   *   - start an interval timer to request statistics again in a while
+   *
+   * Transition on:
+   *  "interval" on interval_timer
+   */
+  var state = new qx.util.fsm.State(
+    "State_Idle",
+    {
+      "onentry" :
+        function(fsm, state)
+        {
+          // Did we just return from an RPC request?
+          if (fsm.getPreviousState() == "State_AwaitRpcResult")
+          {
+            // Yup.  Display the result.  We need to get the request object
+            var request = fsm.getObject("swat.module.fsmUtils.request");
+
+            // We don't need the request object to be saved any more
+            fsm.removeObject("swat.module.fsmUtils.request");
+
+            // Display the result
+            var gui = swat.module.statistics.Gui.getInstance();
+            gui.displayData(module, request.getUserData("result"));
+
+            // Dispose of the request
+            request.dispose();
+            request = null;
+
+            // Restart the timer.
+            swat.module.statistics.Fsm._startTimer(fsm);
+          }
+        },
+
+      "onexit" :
+        function(fsm, state)
+        {
+          // If we're not coming right back into this state...
+          if (fsm.getNextState() != "State_Idle")
+          {
+            // ... then stop the timer.
+            swat.module.statistics.Fsm._stopTimer(fsm);
+          }
+        },
+
+      "events" :
+        {
+          // If the timer expires, send a new statistics request
+          "interval" :
+          {
+            "timer" :
+              "Transition_Idle_to_AwaitRpcResult_via_request_statistics"
+          },
+
+          // When we get an appear event, start our timer
+          "appear" :
+          {
+            "swat.module.canvas" :
+              "Transition_Idle_to_Idle_via_appear"
+          },
+
+          // When we get a disappear event, stop our timer
+          "disappear" :
+          {
+            "swat.module.canvas" :
+              "Transition_Idle_to_Idle_via_disappear"
+          }
+        }
+    });
+
+  // Replace the initial Idle state with this one
+  fsm.replaceState(state, true);
+  
+  /*
+   * Transition: Idle to AwaitRpcResult
+   *
+   * Cause: "interval" on timer
+   *
+   * Action:
+   *  Issue a Get Statistics request
+   */
+  var trans = new qx.util.fsm.Transition(
+    "Transition_Idle_to_AwaitRpcResult_via_request_statistics",
+    {
+      "nextState" :
+        "State_AwaitRpcResult",
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          var rpc = fsm.getObject("swat.module.rpc");
+
+          rpc.setServiceName("samba.management");
+          var request = rpc.callAsyncListeners(true, // coalesce failure events
+                                               "get_statistics",
+                                               true,
+                                               true);
+          // Make the request object available to the AwaitRpcResult state
+          fsm.addObject("swat.module.fsmUtils.request", request);
+        }
+    });
+  state.addTransition(trans);
+
+  /*
+   * Transition: Idle to Idle
+   *
+   * Cause: "appear" on canvas
+   *
+   * Action:
+   *  Start our timer
+   */
+  var trans = new qx.util.fsm.Transition(
+    "Transition_Idle_to_Idle_via_appear",
+    {
+      "nextState" :
+        "State_Idle",
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          swat.module.statistics.Fsm._startTimer(fsm);
+        }
+    });
+  state.addTransition(trans);
+
+  /*
+   * Transition: Idle to Idle
+   *
+   * Cause: "disappear" on canvas
+   *
+   * Action:
+   *  Stop our timer
+   */
+  var trans = new qx.util.fsm.Transition(
+    "Transition_Idle_to_Idle_via_disappear",
+    {
+      "nextState" :
+        "State_Idle",
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          swat.module.statistics.Fsm._stopTimer(fsm);
+        }
+    });
+  state.addTransition(trans);
+
+  // Add the AwaitRpcResult state and all of its transitions
+  this.addAwaitRpcResultState(module);
+};
+
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/statistics/Gui.js b/webapps/swat/source/class/swat/module/statistics/Gui.js
new file mode 100644 (file)
index 0000000..777caa7
--- /dev/null
@@ -0,0 +1,464 @@
+/*
+ * Copyright:
+ *   (C) 2006 by Derrell Lipman
+ *       All rights reserved
+ *
+ * License:
+ *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
+ */
+
+/**
+ * Swat statistics class graphical user interface
+ */
+qx.OO.defineClass("swat.module.statistics.Gui", qx.core.Object,
+function()
+{
+  qx.core.Object.call(this);
+});
+
+
+/*
+ * The result of our request for statistics is in this form:
+ *
+ *     rpc: Object
+ *       status: INACTIVE
+ *     smb: Object
+ *       tcons: Array
+ *         0: Object
+ *           share_name: tmp
+ *           last_use_time: 1167186771
+ *           client_ip: 127.0.0.1
+ *           tid: 10928
+ *           connect_time: 1167186757
+ *       connections: 1
+ *       sessions: Array
+ *         0: Object
+ *           auth_time: 1167186757
+ *           vuid: 24588
+ *           last_use_time: 1167186771
+ *           client_ip: 127.0.0.1
+ *           connect_time: 1167186757
+ *           account_name: Administrator
+ *           domain_name: WORKGROUP
+ *       status: RUNNING
+ *     ldap: Object
+ *       status: INACTIVE
+ *     wins: Object
+ *       status: DISABLED
+ *     nbt: Object
+ *       status: RUNNING
+ *       statistics: Object
+ *         total_received: 32
+ *         total_sent: 4
+ *         query_count: 0
+ *         release_count: 0
+ *         register_count: 0
+ *     kdc: Object
+ *       status: INACTIVE
+ *     cldap: Object
+ *       status: RUNNING
+ */
+
+/**
+ * Build the raw graphical user interface.
+ */
+qx.Proto.buildGui = function(module)
+{
+  var o;
+  var fsm = module.fsm;
+  var canvas = module.canvas;
+
+  canvas.setOverflow("auto");
+
+  // Create a gui object where we'll put each widget handle that has varying
+  // data to be displayed.
+  module.gui = { };
+
+  var addCaptionedText = function(caption, dest)
+  {
+    // Add a row to the destination grid
+    dest.addRow();
+    var row = dest.getRowCount() - 1;
+    dest.setRowHeight(row, 16);
+
+    // Add the caption
+    o = new qx.ui.basic.Label(caption);
+    dest.add(o, 0, row);
+
+    // Add the text field that will contain varying data
+    o = new qx.ui.basic.Label("");
+    dest.add(o, 1, row);
+
+    // Give 'em the varying data label
+    return o;
+  };
+
+  var addGroup = function(legend, top, height, width, left, right, dest)
+  {
+    // Add a groupbox
+    var group = new qx.ui.groupbox.GroupBox(legend);
+    group.setTop(top);
+    if (left >= 0)
+    {
+      group.setLeft(left);
+    }
+    if (right >= 0)
+    {
+      group.setRight(right);
+    }
+    if (height >= 0)
+    {
+      group.setHeight(height);
+    }
+    if (typeof(width) == "string" || width >= 0)
+    {
+      group.setWidth(width);
+    }
+    group.setBackgroundColor("white");
+    group.getLegendObject().setBackgroundColor("white");
+
+    var grid = new qx.ui.layout.GridLayout();
+    grid.setLocation(0, 0);
+    grid.setDimension("100%", "100%");
+    grid.setPadding(0, 0);
+    grid.setRowCount(0);
+    grid.setColumnCount(2);
+    grid.setColumnWidth(0, 100);
+    grid.setColumnWidth(1, 200);
+
+    group.add(grid);
+    dest.add(group);
+    
+    return grid;
+  };
+
+  // Add the RPC Service group box and its status
+  var group = addGroup("RPC Service", 40, 60, "46%", 20, -1, canvas);
+  module.gui.rpc =
+  {
+    status : addCaptionedText("Status:", group)
+  };
+
+  // Add the KDC Service group box and its status
+  var group = addGroup("KDC Service", 40, 60, "46%", -1, 20, canvas);
+  module.gui.kdc =
+  {
+    status : addCaptionedText("Status:", group)
+  };
+
+  // Add the LDAP Service group box and its status
+  var group = addGroup("LDAP Service", 120, 60, "46%", 20, -1, canvas);
+  module.gui.ldap =
+  {
+    status : addCaptionedText("Status:", group)
+  };
+
+  // Add the CLDAP Service group box and its status
+  var group = addGroup("CLDAP Service", 120, 60, "46%", -1, 20, canvas);
+  module.gui.cldap =
+  {
+    status : addCaptionedText("Status:", group)
+  };
+
+  // Add the WINS Service group box and its status
+  var group = addGroup("WINS Service", 200, 60, "46%", 20, -1, canvas);
+  module.gui.wins =
+  {
+    status : addCaptionedText("Status:", group)
+  };
+
+  // Add the NBT Service group box and its status, and the statistics
+  var group = addGroup("NBT Service", 200, 140, "46%", -1, 20, canvas);
+  module.gui.nbt = 
+  {
+    status         : addCaptionedText("Status:", group),
+    total_received : addCaptionedText("Total received:", group),
+    total_sent     : addCaptionedText("Total sent:", group),
+    query_count    : addCaptionedText("Query count:", group),
+    release_count  : addCaptionedText("Release count:", group),
+    register_count : addCaptionedText("Register count:", group)
+  };
+
+  // Add the SMB Service group box (sans grid) and its status
+  var group = new qx.ui.groupbox.GroupBox("SMB Service");
+  group.set({
+                top:    360,
+                height: 400,
+                left:   20,
+                right:  20
+            });
+  group.setBackgroundColor("white");
+  group.getLegendObject().setBackgroundColor("white");
+
+  // Create the Status block
+  o = new qx.ui.basic.Label("Status:");
+  o.set({
+            top    : 0,
+            left   : 0,
+            width  : 100
+        });
+  group.add(o);
+
+  o = new qx.ui.basic.Label("");
+  o.set({
+            top    : 0,
+            left   : 100,
+            width  : 200
+        });
+  group.add(o);
+
+  // Add the status and create the table models for sessions and connections
+  module.gui.smb =
+  {
+    status   : o,
+    sessions : new qx.ui.table.SimpleTableModel(),
+    tcons    : new qx.ui.table.SimpleTableModel()
+  };
+
+  // Begin the Sessions section
+  o = new qx.ui.basic.Label("Sessions");
+  o.set({
+            top    : 20,
+            left   : 20
+        });
+  group.add(o);
+
+  // Set column labels
+  var tableModel = module.gui.smb.sessions;
+  tableModel.setColumns([
+                          "User",
+                          "Client",
+                          "Connected at",
+                          "Authenticated at",
+                          "Last used at",
+                          "VUID"
+                        ]);
+  tableModel.setData([ ]);
+
+  // Create the table for sessions
+  var table = new qx.ui.table.Table(tableModel);
+  table.set({
+                top    : 40,
+                left   : 20,
+                right  : 20,
+                height : 160
+            });
+  table.setMetaColumnCounts([1, -1]);
+  table.setStatusBarVisible(false);
+  table.setColumnVisibilityButtonVisible(false);
+  table.setColumnWidth(0, 260);
+  table.setColumnWidth(1, 80);
+  table.setColumnWidth(2, 120);
+  table.setColumnWidth(3, 120);
+  table.setColumnWidth(4, 120);
+  table.setColumnWidth(5, 60);
+
+  // Add the table to the groupbox
+  group.add(table);
+  canvas.add(group);
+
+  // Begin the Connections section
+  o = new qx.ui.basic.Label("Connections");
+  o.set({
+            top    : 220,
+            left   : 20
+        });
+  group.add(o);
+
+  // Create the table model for tcons
+  var tableModel = module.gui.smb.tcons;
+  tableModel.setColumns([
+                          "Share",
+                          "Client",
+                          "Connected at",
+                          "Last used at",
+                          "TID"
+                        ]);
+  tableModel.setData([ ]);
+
+  // Create the table for sessions
+  var table = new qx.ui.table.Table(tableModel);
+  table.set({
+                top    : 240,
+                left   : 20,
+                right  : 20,
+                bottom : 20
+            });
+  table.setMetaColumnCounts([1, -1]);
+  table.setStatusBarVisible(false);
+  table.setColumnVisibilityButtonVisible(false);
+  table.setColumnWidth(0, 260);
+  table.setColumnWidth(1, 80);
+  table.setColumnWidth(2, 120);
+  table.setColumnWidth(3, 120);
+  table.setColumnWidth(4, 60);
+
+  // Add the table to the groupbox
+  group.add(table);
+  canvas.add(group);
+
+};
+
+
+/**
+ * Populate the graphical user interface with the specified data
+ *
+ * @param module {swat.module.Module}
+ *   The module descriptor for the module.
+ *
+ * @result {Object}
+ *   The result returned by SAMBA to our request for statistics.  We display
+ *   the data provided by this result.
+ */
+qx.Proto.displayData = function(module, result)
+{
+  var gui = module.gui;
+
+  if (result.type == "failed")
+  {
+    // Have we already put up the FAILED message?
+    if (gui.failed)
+    {
+      // Yup.
+      gui.failed.setDisplay(true);
+      return;
+    }
+
+    // Create a semi-transparent layover o which to display a failure message
+    gui.failed = new qx.ui.layout.CanvasLayout();
+    gui.failed.set({
+                   top: 0,
+                   bottom: 0,
+                   left: 0,
+                   right: 0
+               });
+    gui.failed.setBackgroundColor("white");
+    gui.failed.setDisplay(true); // initially displayed
+    gui.failed.setOpacity(0.7);  // semi-transparent
+
+    // Add the failure message
+    var style =
+      "color: red;" +
+      "font-size: large;" +
+      "font-weight: bold;";
+    var o = new qx.ui.basic.Label("<span style='" + style + "'>" +
+                                  "Communication with SAMBA failed!",
+                                  "</span>");
+    o.set({
+              top    : 0,
+              left   : 20
+          });
+    gui.failed.add(o);
+
+    // Add the failed layover to the canvas
+    module.canvas.add(gui.failed);
+
+    return;
+  }
+
+  // Successful RPC request.
+  // If the failure message was displayed, we no longer need it.
+  if (gui.failed)
+  {
+    gui.failed.setDisplay(false);
+  }
+
+  // Create a function for formatting dates
+  var dateFormat = function(unixepoch)
+  {
+    var d = new Date(unixepoch * 1000);
+    return (d.getFullYear() + "-" +
+            ("0" + (d.getMonth() + 1)).substr(-2) + "-" +
+            ("0" + d.getDate()).substr(-2) + " " +
+            ("0" + d.getHours()).substr(-2) + ":" +
+            ("0" + d.getMinutes()).substr(-2));
+  }
+
+  // Set the status values
+  gui.rpc.status.setHtml(result.data.rpc.status);
+  gui.kdc.status.setHtml(result.data.kdc.status);
+  gui.ldap.status.setHtml(result.data.ldap.status);
+  gui.cldap.status.setHtml(result.data.cldap.status);
+  gui.wins.status.setHtml(result.data.wins.status);
+  gui.nbt.status.setHtml(result.data.nbt.status);
+  gui.smb.status.setHtml(result.data.smb.status);
+
+  // If the NBT service is running...
+  if (result.data.nbt.status == "RUNNING")
+  {
+    // ... then output the statistics
+    gui.nbt.total_received.setHtml(
+      result.data.nbt.statistics.total_received.toString());
+    gui.nbt.total_sent.setHtml(
+      result.data.nbt.statistics.total_sent.toString());
+    gui.nbt.query_count.setHtml(
+      result.data.nbt.statistics.query_count.toString());
+    gui.nbt.release_count.setHtml(
+      result.data.nbt.statistics.release_count.toString());
+    gui.nbt.register_count.setHtml(
+      result.data.nbt.statistics.register_count.toString());
+  }
+  else
+  {
+    // otherwise, clear the statistics fields
+    gui.nbt.total_received.setHtml("");
+    gui.nbt.total_sent.setHtml("");
+    gui.nbt.query_count.setHtml("");
+    gui.nbt.release_count.setHtml("");
+    gui.nbt.register_count.setHtml("");
+  }
+
+  // Initialize data for sessions list
+  var rowData = [];
+
+  // If there are any sessions...
+  if (result.data.smb.sessions instanceof Array)
+  {
+    // ... then for each session...
+    for (var i = 0; i < result.data.smb.sessions.length; i++)
+    {
+      // ... add its info to the table data
+      var sess = result.data.smb.sessions[i];
+      rowData.push([
+                     sess.account_name + "/" + sess.domain_name,
+                     sess.client_ip,
+                     dateFormat(sess.connect_time),
+                     dateFormat(sess.auth_time),
+                     dateFormat(sess.last_use_time),
+                     sess.vuid.toString()
+                   ]);
+    }
+  }
+
+  // Whether there were sessions or not, reset the session table data
+  gui.smb.sessions.setData(rowData);
+
+  // Initialize data for tcons list
+  var rowData = [];
+
+  // If there are any tcons...
+  if (result.data.smb.tcons instanceof Array)
+  {
+    // ... then for each tcon...
+    for (var i = 0; i < result.data.smb.tcons.length; i++)
+    {
+      // ... add its info to the table data
+      var conn = result.data.smb.tcons[i];
+      rowData.push([
+                     conn.share_name,
+                     conn.client_ip,
+                     dateFormat(conn.connect_time),
+                     dateFormat(conn.last_use_time),
+                     conn.tid.toString()
+                   ]);
+    }
+  }
+
+  // Whether there were tcons or not, reset the tcon table data
+  gui.smb.tcons.setData(rowData);
+};
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/statistics/Statistics.js b/webapps/swat/source/class/swat/module/statistics/Statistics.js
new file mode 100644 (file)
index 0000000..1618ab7
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright:
+ *   (C) 2006 by Derrell Lipman
+ *       All rights reserved
+ *
+ * License:
+ *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
+ */
+
+/**
+ * Swat statistics class
+ */
+qx.OO.defineClass("swat.module.statistics.Statistics",
+                  swat.module.AbstractModule,
+function()
+{
+  swat.module.AbstractModule.call(this);
+});
+
+
+/**
+ * Create the module's finite state machine and graphical user interface.
+ *
+ * This function is called the first time a module is actually selected to
+ * appear.  Creation of the module's actual FSM and GUI have been deferred
+ * until they were actually needed (now) so we need to create them.
+ *
+ * @param module {swat.module.Module}
+ *   The module descriptor for the module.
+ */
+qx.Proto.initialAppear = function(module)
+{
+  // Replace the existing (temporary) finite state machine with the real one
+  swat.module.statistics.Fsm.getInstance().buildFsm(module);
+
+  // Create the real gui
+  swat.module.statistics.Gui.getInstance().buildGui(module);
+};
+
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/webapps/swat/source/index.html b/webapps/swat/source/index.html
new file mode 100644 (file)
index 0000000..ea7bcfe
--- /dev/null
@@ -0,0 +1,14 @@
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Swat</title>
+    <script type="text/javascript" src="script/swat.js"></script>
+  </head>
+  <body>
+    <script type="text/javascript">
+
+    qx.core.Init.getInstance().setApplication(swat.main.Main);
+
+    </script>
+  </body>
+</html>